Two-way iPhone and Google Calendar synchronization

One thing I really missed about my iPhone was the ability to synchronize its internal calendar with my Google Calendar. I know it can be done via iTunes + MS Outlook + some iCal Outlook plugin, but I don’t use Outlook and would prefer more direct way. So I decided to write a simple utility called ics that’s able to do the 2-way sync of events.

ics - iPhone and Google Calendar Synchronization utility

Features:

  • Synchronizes events from all of your calendars – both ways
  • Works with jailbroken 1.1.3 and 2.0 firmware (not yet tested with other versions)

Requirements:

Installation:

  • Download the package (400 kB) and unpack it somewhere. Newer version available here.
  • Copy iTunesMobileDevice.dll (usually resides at c:\Program Files\Common Files\Apple\Mobile Device Support\bin\) to the directory with ics executable
  • Be sure to have your Google Calendar’s time zone set to the same zone as your iPhone – note that there are two places where Google Calendar’s time zone can be set – first is under Settings/Your current time zone. But the one important for us is really under Settings/Calendars/[Calendar]/Calendar Time Zone. If you have multiple calendars be sure to check time zone of each.

How to synchronize:

  • Connect your iPhone using USB cable
  • Be sure not to have Calendar application running on iPhone
  • Run the executable (ics.exe)
  • Enter your email and password which you use to log in to Google Calendar
  • Click Synchronize button
  • Review changes and confirm/reject them
  • That’s it :)

Known limitations:

  • Limited support for recurring events – recurring events coming from Google Calendar are shown in iPhone but not vice versa (only first occurence will be shown). Also editing/deleting recurring event coming from Google Calendar in iPhone won’t work and the change gets lost at the time of next synchronization.
  • No notifications at the time (although if you manually add notification to an event in iPhone it will remain functional after synchronization)
  • Events created in iPhone go always to default (usually the first) user’s Google Calendar
  • In case of conflict (e.g. event edited both in iPhone and Google Calendar and then synchronized), Google Calendar is the source of truth
  • Synchronizes events in range: [Now – 3 months; Now + 1 year], maximum of 10000 events
  • This utility is distributed without any guarantee, i.e. don’t blame me if it destroys your iPhone or deletes all your calendar events and so on :-)

I would like to thank to:

Tags: , , , ,

8 Responses to “Two-way iPhone and Google Calendar synchronization”

  1. Maxoo says:

    Hi,

    Good job man !
    I have a question… I actually use Mozilla Sunbird as my main Calendar app. It can create .ics files, and what I do now is a bit complicated : I upload my calendar at Google calendar, and launch tour app.
    But I tried ManzanaUI, and would like to know where is located the .ics file… It seems pretty much easier in my case…

    Thanks,
    Maxoo.

  2. ludek says:

    Hi,

    thanks. Unfortunately, there is no ics file in iPhone. In fact, calendar data is stored in SQL table (in a SQLite database file).

    Ludek

  3. Maxoo says:

    Arg, is there any app converting .ics into an SQl db ?

  4. ludek says:

    Hi,

    have a look at ical2sqlite utility. I haven’t tried that personally, though.

  5. Maxoo says:

    It looks like it’s for Ubuntu… and I’m a windows user…
    If I miss, I apologize me, but please give me a link.

  6. ludek says:

    Yes, I’m afraid it is for linux. However, the C source code seems to be available, maybe it would be possible to compile it under Windows.

  7. Maxoo says:

    Too difficult for me… I think I’ll continue using your app. Maybe you can just see if it’s compilable, plz, cause I’ve no compiler installed yet… I’ve not looked at an C source code for 3 or 4 years…

  8. […] dolejsky.com Things good to know… « Two-way iPhone and Google Calendar synchronization […]