iPhone 3.0 beta 1: Weird google calendar CalDAV time zone issue

I have a feeling iPhone 3.0 beta does not know how to handle UTC time. For the past few days, i have been trying to get my work calendar in Outlook 2003 (Windows) to show up on my iPhone. I do not want to use iTunes to sync up the information because the last time i did it, it messed up my non-work calendar. So i thought that i could export my Outlook calendar into a CSV file and then import it into Google Calendar. When when i enable the CalDAV calendar i set up on my iPhone, all the events in my Outlook calendar will be synchronized to my iPhone. It’s easier said that done.

This is how i exported Outlook 2003 calendar:

  • In Outlook, click on File and select “Import and Export…”.
  • Choose “Export to a file” and click on “Next”.
  • Choose “Comma Separated Values (Windows)” and click on “Next”.
  • Choose “Calendar” and click on “Next”.
  • Enter an appropriate name for the CSV file and finally, click on “Finish”.

This is how i imported the CSV file into Google Calendar:

  • Click on “Settings”.
  • Click on “Calendars”.
  • Click on “Import calendar” and select the CSV file.

The Outlook calendar events showed up correctly in my Google Calendar. However, when i enabled the Google CalDAV calendar on my iPhone, the events from Outlook calendar were 7 hours late. For most, if not all, of the Outlook events, the end date/time were completely messed up. For example, i had an event that was supposed to start at 1500 and end at 1530 on Google Calendar. The same event on iPhone started at 2200 and ended at 0530 the next day. So i exported just that event from Google Calendar into a ICS file. Opening the ICS file with any text editor, i could see the following two relevant properties:

DTSTART:20090327T220000Z
DTEND:20090327T223000Z

This iCalendar date/time format is apparently in UTC, as indicated by the “Z” at the end of the date/time. The DTSTART property has a start date/time of March 27 2009 2200 UTC and that kind of explains why it showed up on iPhone’s calendar with a start time of 2200. However, the DTEND property shows an end date/time of March 27 2009 2230. The end date/time for this event on my iPhone was March 28 2009 0530!

For some reason, iPhone’s calendar is not able to recognize the UTC date/time. For events that i created in Google Calendar, they show up correctly on iPhone’s calendar. The really weird thing is when i exported those events and re-imported them back into Google Calendar, those same events would show up with incorrect date/time! Originally, i thought i could fix the Outlook events by exporting them from Google Calendar and editing the ICS file with a script to change all the UTC date/time to local date/time. However, it is now apparent to me that iPhone’s calendar will have a problem with any non-native Google calendar event. That is, any calendar event that is imported into Google calendar will have a problem with date/time being off on iPhone’s calendar.

You may be wondering why i did not use the native Google’s Calendar Sync tool for Windows to synchronize my Outlook calendar with Google’s. I did. I gave up after playing with it for several hours. Only a small fraction of my Outlook calendar showed up on Google Calendar and i could not figure out why the rest of my Outlook calendar refused to show up.

Related posts

Leave a comment

Your comment