I frequently get emails containing iCal .ics files from my colleagues to schedule meetings. In a perfect world, I’d double click the .ics and have it show up on my Outlook calendar. But as many of you know, Outlook and iCal don’t play nice and Outlook throws an error. iCal uses the Time Zone component defined in the iCalendar specification and Outlook doesn’t. Outlook uses GMT only.

I’m thinking about writing a small application to modify the .ics. It will parse the file removing or modifying any parameters Outlook finds offensive and also update the date and times to GMT. This is not a robust solution but it’s easy for me to implement.

Currently, I’ve been manually modifying the .ics files by opening the .ics in a text editor and removing the TZID parameters from DTSTART and DTEND components:
DTSTART;TZID=US/Pacific:20051103T110000
becomes
DTSTART:20051103T110000
This works because most of my colleagues are in California but if our Paris office sends an .ics then the time is wrong.

Before I code the app, are there any Outlook plugins or other tools that will solve this iCal .ics incompatibility in a more seamless manner? Perhaps patch for Outlook?

If there are, I haven’t found them. Here are some resources listed on Wikipedia for those looking for more information.

I’ve done some quick research on how to modify the iCal .ics so it works in Outlook and here are the steps I’m considering for my “ics Converter”:

In Mac .ics file:
1. Find BEGIN:VEVENT. Ignore everything before this tag.
2. Find DTSTART. e.g. DTSTART;TZID=US/Pacific:20051103T110000
3. Get TZID. e.g. US/Pacific
4. Get datetime string. e.g. 20051103T110000
5. Convert 3 and 4 to GMT datetime that Outlook likes. e.g. 20051103T190000Z
6. Replace DTSTART line with new DTSTART. e.g. DTSTART:20051103T030000Z
7. Do the same for DTEND

Again, is there a better way to solve this issue?