I have been having a strange issue lately. My iCal event alarms all go off one hour late. Through doing a bit of research I found that my iPhone, which I sync to my iCal, was set to a different timezone, a timezone one hour behind me. That explains why the events on my iCal went off late, while my iPhone was right on. To fix this problem make sure the timezones on your Mac and iPhone are the same.
On a Mac:
- Apple Menu
- System Preferences
- Date & Time
- Timezone Tab
On an iPhone
- Settings
- Mail, Contacts, Calendars
- Time Zone Support
This solution was eventually found on the Apple Support Forum