I’ve been doing a lot of research, and suffice it to say, the information on this topic is difficult to track down. The companies that want you to buy their software for this seem to have a good hold on the Google search results. At long last, I figured out a free solution to get all my calendars to sync over the air for free–with CalDAV, not ActiveSync. I prefer to keep my single iPhone ActiveSync configuration for Exchange at my day job. Keep in mind that the iPhone portion won’t work unless you’re using iPhone OS 3.0.
Instructions follow. This works for both Google Apps and Gmail. Post a comment if you have a question.
Step 1: Create Google Calendars
Your Google Calendars (gCals) need to be ready to feed everything else. They are the source of the data. If you have everything in iCal right now, then do this:
- Before you do anything in iCal, back it up. Better safe than sorry.
- Create calendars in gCal to match the ones in iCal.
- Change your primary calendar in gCal to the same name as one of the ones you have in iCal.
- Export each iCal calendar as a .ics file to your desktop.
- For each calendar in gCal, you’ll need to import the corresponding .ics file from iCal. To do this, go to Settings > Calendars > Import calendar
- Import the .ics file and assign it to the corresponding calendar. Do this for each calendar.
- You should now see your calendar data in gCal. Yay!
Step 2: Add Calendars to iCal
Now it may seem counter-intuitive, but you’re going to delete all your calendars out of iCal. This is why we made a backup just in case. You should have a clean slate. We’ll now add each calendar from gCal into iCal one at a time as a separate account.
- Go to iCal > Preferences
- Go to the Accounts tab.
- Click the plus sign to add a new account.
- Put in the calendar name, your username (Gmail email address or your Google Apps email address), and your password.
- The Account URL is
…for your primary calendar. For all the other calendars, it’s:
where CALENDARID is the funky ID found in the settings for each calendar. Go back to gCal, click on the calendar you’re adding (assuming it’s not the first, primary one, then copy and paste the ID down at the bottom. It’ll be a garbled mess, but it’s important. In the end, your Account URL will look something like
(this is all one string when you put it in, I just had to break the line so it fits on this website)
- Click Add and you’re all set. Repeat for each additional calendar using its specific Calendar ID as provided by gCal.
Step 3: Add Calendars to iPhone
At this point, you can just plug your iPhone in, open iTunes, go to the Info tab and tell it to sync all your calendars. The gCals should show up in the list. If you prefer to do it manually, continue reading.
This works much like it does in iCal. Before you begin, email yourself the Account URLs you used in the prior step with each individual Calendar ID. That way you can just copy and paste (w00t!) the URLs from Mail on your iPhone into the settings. This is much easier than typing them all out.
- Go to the Settings app.
- Select Mail, Contacts, Calendars
- Select Add account…
- Select the Other account type at the bottom.
- Then select Add CalDAV Account from the list.
- Put in www.google.com for the server, then your username, password.
- Put the calendar name in as the Description.
- In Advanced Settings, use SSL on port 443.
- Paste the Account URL from Mail that corresponds to this calendar.
- Repeat for each calendar you wish to add.
Once you have them all added, take a gander in the Calendar app. You notice that the colors are defined by gCal so go in there to pick the ones you want. Hopefully Google will eventually give us more granular control of these colors since I consider them to be rather drab. The good news is that the colors are consistent in all three areas: iCal, iPhone, and gCal. This is a great feature.
That’s all there is to it. You can go add an Exchange account to your iPhone now since you won’t need Google Sync anymore. In September 2009 with Snow Leopard, you’ll be able to add that same Exchange calendar to iCal. At that point, there will be nothing left to complain about in terms of the perfect calendaring configuration (or so I hope). Thanks for reading.