iPhone, iCal, and Google Calendar 3-Way Sync

DISCLAIMER: The following method is what I used on my personal computer and iPhone and found to be successful. I take no responsibility for anything bad that happens to your system. Always backup your data before doing anything. I use a Powerbook G4 – OS X 10.5.8 – with an iPhone 3Gs – OS 3.0.1. (I wish I had Snow Leopard, but, alas, it’s Intel only).

I just got an iPhone and wanted all my calendars to sync together. I had previously set up a 2-way sync between iCal and Google Calendar (gCal) using CalDAV, a free, open-source way to sync calendars. I also wanted to continue to use iCal as a live calendar and not have it function as a “read-only Master Calendar.” (See INSTRUCTIONS: The iPhone-iCal-gCal Sync Setup). Below are the instructions I used to successfully allow a three-way sync without duplicating calendar entries:

1. If you currently use a standalone iCal that you now want to be synced to gCal, then backup your current iCal: To export go to File > Export. And then save to your Desktop. Import this calendar into gCal to save all your current iCal events. If you don’t use iCal currently (or already have it set up to sync with gCal using CalDAV), then go to the next step.

2. Turn on iCal < -> gCal syncing. Follow Google’s directions to set up CalDAV support for Google Calendar in Apple’s iCal. Create an entry to verify that changes made in iCal are reflected in gCal, and vice versa.

3. Turn off calendar syncing in iTunes. Since I only have a single calendar that is shared between my iPhone, iCal and gCal, I unchecked “Sync iCal calendars” under the Info tab in my iPhone device. It is fine to select other calendars that you only want to sync between iCal and your iPhone, but DO NOT select the newly created CalDAV calendar.

4. Turn on iPhone < -> gCal syncing. Here you have two options: Option 1, Google Sync (Exchange ActiveSync). Option 2, CalDAV. The thread on the Google Calendar support form compares these two methods. The gist of the comparison is that with ActiveSync your calendar appointments are “pushed” to you. Updates made to a calendar will be reflected instantly on your iPhone or any other device which supports ActiveSync. Currently there can only be a single ActiveSync account on the iPhone, so if you already have one from work, then CalDAV is your only option at this time. Google Sync allows you to sync contacts and calendar. CalDAV can only fetch appointment data on scheduled intervals or manually whenever the iPhone Calendar app is run. It does, however, allow up to 25 calendars with colors matching the gCal scheme.

Both ActiveSync and CalDAV worked great. I chose to stick with CalDAV because I don’t need appointments pushed to me. Running iPhone Calendar and having it quickly refresh is fine with me.

Option 1, Google Sync
Option 2, CalDAV

5. Try it out. Changes made on any of the calendars will now be synced. Let me know if this works for you. Thanks!

Enable Google Calendar in Apple’s iCal
How to configure Google Calendar CalDAV in iPhone 3.0
Which is preferred on iPhone CalDAV or Exchange?
Sharing calendars with Google Calendar, iCal, and the iPhone
CalDAV: CalDAV Calendar Sync
Calendar & Contacts Sync: Set Up Your iPhone or iPod Touch
INSTRUCTIONS: The iPhone-iCal-gCal Sync Setup

15 thoughts on “iPhone, iCal, and Google Calendar 3-Way Sync

  1. robert r

    My caldav events still do not appear in ical? I have followed the instructions to the T is a problem with mobile me or maybe with snow leopard?

  2. Luke

    This is great, except I can’t get the delegates to appear in my iPhone when using the calDAV method. The main calendar works fine, but I have several other calendars which I use to keep things color coded (classes, work, personal, etc…). Google Sync method will allow me to show all the calendars, but it mixes up the color scheme (annoying, but usable). Are there any fixes for these issues?

  3. Scott K

    @robert r, Not sure. I’m running Leopard (unfortunately need to upgrade my Powerbook before getting Snow Leopard) so can’t comment on that. Did you try it with Google Sync and see if it could work that way?

  4. Curious

    Thanks for the awesome instructions. However, I have a question about this.

    I, too, have CalDAV sync between gCal and iCal on my Mac. It’s working great. But I start to question how reliable a three way sync with CalDAV is.

    For instance, say I create an even in iCal, let’s call it “Event 1”. This will automatically get uploaded to gCal, and when I open up Calendar on my iPod or iPhone, “Event 1” will get synced there, too (since it looks like a new event to the iPod). So, right now, “Event 1” is in each of the three locations.

    Now, let’s say I delete “Event 1” in iCal. It uploads the delete to gCal which then deletes it on gCal. However, what happens when I go to sync my iPod or iPhone’s calendar since “Event 1” still remains on there? Won’t gCal interpret it as a new event that was created on the iPod and recreate it in gCal instead of deleting it on the iPhone or iPod? Do you get what I am trying to say? Have you ran into anything like this where it doesn’t delete correctly or you get duplicates?

  5. dottyau

    hi. it works. thanks. the link i got your instructions was crap. Yours was easy to understand and able to work without duplication.

  6. Scott K

    @Curious, Good thoughts. Makes sense that duplicates could be made that way. I’m not sure exactly how the CalDAV protocol handles these things. It might try to get around this by associating a timestamp with each entry. Then it would compare timestamps when syncing to make sure it is updating with the latest version. I haven’t run into this problem. This may because I do not use iTunes to sync the calendar. (I purposely left that box unchecked in iTunes.) I completely allow it to update through the “cloud.” But, it seems to do a great job of caching the entries when not on a 3g or wifi network. I can create entries when offline too. Here’s a link to a page from 2004 that explains how conflicting changes can be handled: http://lists.osafoundation.org/pipermail/ietf-caldav/2004-August/000021.html

    Let me know if this helps.

  7. Dottyau

    I worked it out. The previous instructions I was following duplicated the sync when google and iCal merged. I just stop syncing iCal.

  8. Martin

    so..i have agonized over this! I am doing it to the “T”. its not doin it. I need some clarification..PLEASE 🙂 I bought an iphone first.. (april 2009) got the iphone calendar filled with stuff. I loved the apple look and feel so much… I bought an iMAC our home (nov 2009) (I am the only “named user account” my wife and kids don’t have a “side”). I sync right now with itunes and set itunes to sync with ical. At this particular point in time, I only had one calendar on the side pane of ical….it was from my iphone and it was called “Calendar.” I then started rock in rollin. Inside the ical program, I named the “Calendar” “Family” and then I added 4 new “SUB” calendars to the left side pane under the arrowed “CALENDARS.” Called them work, wife, son, daughter. I made them all different colors and added events to the correct one when needed. I.E. my work schedules to “work” & baseball practice to “son” etc… Well then I find out that there is this great thing called Google Cal!!! And how cool would it be to get all 3 talking together. BUT!!!! I have never used google cal before…it is blank white. When I export as the instructions say to… I then import the data and what do ya know??? there’s not 5 calendars….ITs only One big one and it green????? is the problem not being able to separate the export data?? If so, how do you import each of the 5 calendars I have separately to google? Also will the duplication be avoided… When i did the process the first time, once ical fetched to google (one min refresh like you suggested) I had duplicated events for all my events. I have snow leopard and its all up to date. Sorry for the long post but this would be great to figure out. Hope you can help

  9. Alex

    Thanks, Scott!

    This is working great and I’ve no need to purchase spanning sync. I was a gcal user and haven’t used my iCal really at all (though I’m a Mac user). But, having purchased an iPhone I really wanted a decent calendar app and getting the iPhone calendar to sync with all my gCals is exactly what I needed.

    I’d just like to emphasize for those gCal users that have a variety of gCals linked to their account that you have to go to:


    when you’re logged in to Google to make sure you tell your account which of the calendars to push to your phone, otherwise only the top level gCal will show up.

    Thanks for writing clear instructions for this!

  10. John Link

    There’s no need to export calendars from iCal and import them into gGal. Instead, just follow the directions found on http://www.google.com/support/mobile/bin/answer.py?answer=151674

    By default only your primary calendar will be synced to your device. You can sync additional calendars by visiting the following page from any web browser:

    (Google Apps users can go to https://www.google.com/calendar/hosted/your_domain/iphoneselect, replacing ‘your_domain’ with your actual domain name.)

    Select the calendars you’d like to sync, and click Save. The selected calendars will display on your device at the time of the next sync.

  11. Jo

    How i wish i would have found this article before i (just) spent the past two days trying to figure this out!
    I inadvertently synced, i believe, two ways by using both the exchange and caldav.
    I was hoping you could shed some light on a question i have. I already had my main gmail account connected to my phone although i never used it. But in the iphone system “settings” under “mail, contacts, calenders” i have two aacounts set up. One is the “exchange” with options to turn on syncing of “calender” and “contacts”. The other is “gmail”. This has the options to turn on syncing for “calendar”, “contacts”, and “notes”. Is this latter “gmail” option using caldav? I set this up so long ago not knowing anything about this process (i get it more now after spending two days on it) that i am unsure. It states that it is “caldav” but i believe that i went through the “gmail” option when i added the account when i first purhased my iphone. All ive done is ti turn the option for syncing is turning the calendar button on under this account. For me to be running caldav do i need to add another account and specifically specify caldav under “other” account to be running this? Or is this what im running but got there via a different method by using gmail?

  12. jenny

    Hi- Wondering how i can get the notifications for birthdays (i have like 10 per person per birthday) deleted from the ical calendar ? It seems like something went haywire in myfacebook/ical/google calendar sync up and now everyone’s birthdays show up like 10x on the same day! THanks 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

CommentLuv badge