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.

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:
- .NET Framework 2.0 installed
- iTunes installed (tested with 7.6.1)
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:
- manzana (.NET API for interacting with the Apple iPhone)
- managed-sqlite (A Managed SQLite implementation)
- Google APIs and Tools
Tags: .NET, Calendar, Google Calendar, Synchronization, iPhone
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.
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
Arg, is there any app converting .ics into an SQl db ?
Hi,
have a look at ical2sqlite utility. I haven’t tried that personally, though.
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.
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.
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…
[...] dolejsky.com Things good to know… « Two-way iPhone and Google Calendar synchronization [...]