That "1 Hour Off" Support Ticket
We have all been there. You spend weeks perfecting a calendar integration only to get a message from a user complaining that every single meeting is showing up an hour late in Outlook.
Dealing with iCalendar (RFC 5545) is a rite of passage for many developers. Apple Calendar and Google Calendar are usually pretty forgiving, but Microsoft Outlook is a strict enforcer of the rules. If your feed is not exactly what it expects, Outlook defaults back to UTC or a random offset that ruins your schedule.
Why Your Feed is Actually Broken
The root of the problem is usually "Floating Time" versus UTC. Most broken feeds fail because they provide a DTSTART with a timezone ID (like America/New_York) but they do not actually include a VTIMEZONE definition at the top of the file.
Without that specific definition, Outlook has no idea when Daylight Savings Time starts or ends for that region. It sees a timestamp it cannot translate, so it makes a guess. That guess is almost always wrong by exactly 60 minutes.
Fixing it the Hard Way
To fix this manually, you have to do a lot of heavy lifting. You need to:
- Hard-code the
VTIMEZONEblock for every single region your users might live in. - Make sure every
DTSTARTproperty points correctly to theTZID. - Handle the 75-octet line folding rule, which is a classic Outlook quirk that breaks many feeds.
Test Your Feed Right Now
The Infrastructure Fix
Instead of manually patching legacy code or wrestling with complex timezone libraries, you can use Lokr as a "Calendar Firewall." When you proxy your feed through Lokr, the system handles the messy parts for you.
We automatically inject the missing VTIMEZONE definitions, normalize UTC offsets, and enforce strict RFC 5545 compliance before the data ever hits Outlook. It keeps your calendar accurate and your support inbox empty.
Stop fielding support tickets about shifted meetings.
Ship a compliant, timezone-aware feed in minutes without touching your legacy code
