Fusing Google Calendars with iCal

by

Many of our clients use a combination of communication tools to keep in touch — whether Outlook/Exchange, Apple Mail.app, Entourage, or Google Apps. Combining these tools can create some technical challenges, as technologies from different manufacturers don’t always play nicely together. Today I wanted to share a workaround that I use in my personal calendaring setup: using Google Calendars with Apple’s iCal. This necessitates figuring out how to get Google Calendar ‘delegate calendars’ to sync with iPhone/iPod Touch via iTunes.

Google Calendar is a great tool for managing appointments, accessible from anywhere (check out Colin’s thoughts on Google Apps). It is also very versatile as it offers the ability to import iCal .ics files and MS Outlook CSV calendar snapshots. A delegate calendar is an additional calendar you can add to your existing Google Calendar account. At the present time, it is not possible to sync/view delegate calendars when syncing an iPhone/iPod Touch from iTunes. They will not show up there as it looks like this feature is not supported/implemented at the present time. There is a simple workaround which will allow users to sync delegate calendars from within iTunes. The following steps will guide you through the process:

STEP 1: disable your delegate calendars from iCal

  1. Open iCal, then select ‘Preferences’ from the iCal dropdown menu
  2. Select your Google CalDAV account and open the ‘Delegation’ tab at the top of the window
  3. Uncheck each checkbox corresponding to each delegate calendar; they will disappear from the main calendar view where they were currently shown as delegates
Disable your delegate calendars from iCal

Disable your delegate calendars from iCal

STEP 2: create the necessary account(s) for each delegate calendar

A typical Google Account URL has the following form: https://www.google.com/calendar/dav/USERNAME@gmail.com/user

This should be already present on your existing CalDAV account (the one you expunged the delegates from). Replace ‘USERNAME’ with your Google Account username, then copy and paste the line above into a temporary text document for now.

  1. Open your browser and log in into your Google Account, then follow the Calendar link
  2. Select ‘Settings’ on the ‘My calendars’ box on the left column of the page
  3. Select the delegate calendar you want to keep in sync from the main page’s frame
  4. At the bottom of the next page (the with the selected calendar’s details), copy the Calendar ID value (shown as clear text) which can be found in the ‘Calendar Address’ section; the Calendar ID has the following sample structure: qwertyuiopasdfghjkl1234567@group.calendar.google.com
  5. Go back to the previous temporary text document where you saved your Google Account URL, paste the Calendar ID value you copied in the previous step and replace the ‘USERNAME@gmail.com’ part as follows (replace the Calendar ID with your correct value):https://www.google.com/calendar/dav/qwertyuiopasdfghjkl1234567@group.calendar.google.com/user
  6. Then copy the whole resulting string
  7. Go to iCal, select Preferences once again and add a new CalDAV account: please make sure you expand the ‘Server Option’ dropdown and paste the aforementioned string into the ‘Account URL’ field.
Create the necessary account(s) for each delegate calendar

Create the necessary account(s) for each delegate calendar

You will need to create a brand new iCal account for each delegate you have set up on Google Calendar. When done, your iCal software will display each delegate(s) as separate calendars, and each one of them will be shown into iTunes and will be available for synchronization in the Device’s Info tab.

Each delegate(s) as separate calendars

Each delegate(s) as separate calendars

34 Responses to “Fusing Google Calendars with iCal”

  • Randy says:

    Thanks. That’s just what I needed to know.

  • BaroqueW says:

    Wonderful! It worked like a charm!
    I don’t know how you figured that one out, but thanks for sharing!

    /Baroquew, on his way to getting his iPhone fully sync’ed

  • Theo says:

    yup, that’s the way to work around… i found out yesterday myself…

    another way to find the addresses of the delegate agenda’s…

    before removing them from the delegates tab, you can click on the delegat agenda at the left hand side where it is in the main window, under delegates, and check for their info; it will show the entire path and can be copy pasted from there

    still not satisfied, as i really do nit like to go through this, currently, i’m investigating the principals of deligating and see how it can be done nicely

    oh, under iPhone OS 3.x it is possible to sync live, without iTunes…

    Settings => Mail, Contacts, Calendars => Add Account => Other => Add CalDAV Account => ….

    and for each delagat… a new account but then, go to the account details and change the “Account URL” in “Advanced Settings”

  • Theo says:

    Actually, i just checked once again, if one wants to sync with an iPhone… live

    …then one does not need iTunes to synchronise, thus leave the the step of removing the delegates in iCal – which leaves no calendars to be checked in the syncronisation settings of iTunes

    and one only needs to figure out that URL-path…
    https://www.google.com/calendar/dav/xxxxxxxxxxx@group.calendar.google.com/user
    and enter that in in the iPhone

  • Jim says:

    Another, easier (I think) way!

    Stumbled onto this soltion because I couldn’t get any of the above to work…grrrr):

    Open your Google calendar: Click on SETTINGS > Click on the calendar you want to sync which should open ACCOUNT DETAILS….

    Under CALENDAR ADDRESS, click the ICAL button which should reveal a long URL ending in “.ics” Copy that URL. (Easier to do all this on your laptop or desktop machine; paste that URL into an email, mail it to yourself, open the email on your iPhone and copy the URL from the email)

    On the iPhone: Settings > Mail,Contacts, Calendars > ADD ACCOUNT > OTHER > ADD SUBSCRIBED CALENDAR > paste in the copied URL ending in “.ics”

    On the next page that opens, add your Google USERNAME and PASSWORD.

    At long last, I’ve got all my calendars showing on my iPhone’s iCal now!

  • Thib says:

    Help! This tip doesn’t work with the current Snow Leopard iCal edition. iCal says creating another same account is not supported. What is the new workaround?

    • Matteo Rinaudo says:

      Thib: on the iCal application in Snow Leopard, choose Preferences, click on the plus sign to add a new account and choose `CalDAV’ as the account type (not Google, even if you are about to add a Google Calendar). Enter the long string I have talked about before (items 5 and 6 on my post) in the Server address field. I am on Snow Leopard, I have tested this procedure and works fine.

      • peter says:

        Hey, what else should i paste in the fields?
        If i only fill in the long adress, iCal wants to know username and PW…
        if i fill it in, it won’t work, too…

        whats the problem?

      • Steve says:

        When I do this in Snow Leopard, it says “No CalDAV server was found at the specified address”.

        I am using:
        http://www.google.com/calendar/ical/XXXXXXXgroup.calendar.google.com/private-d5018ee60d02e2ecb8ffabe5bf56e4e0/basic.ics

        (XXXXX’s for privacy)
        The link that is given in the share settings on Google’s Calendar page does not have /dav/ in it, it has /ical/ in it. I have tried both ways and neither works. I have also tried with http and https. Neither works.

        Here is the message I get from all variants of above:
        https:—–/ical/xxxxxx -No CalDAV server

        https:—–/dav/xxxxxxx -No CalDAV server

        http:—–/ical/xxxxx -No CalDAV server

        http:—–/dav/xxxxx -iCal found the CalDAV server “www.google.com”, but couldn’t log in with the username “xxxxxx”. Make sure the user name and password you entered are correct, then try again.”
        (The password and user name I have are obviously correct, checked by retyping)

      • Steve says:

        Correction: Your method works, here’s what I did wrong.

        I was copying in, or using variants of the calendar address that one will get from the little [XML] [iCal] [HTML] buttons. This obviously does not work.

        Just to the right of those buttons is the place that actually says “Calendar ID”. If you use that, inserted into the normal url convention that you gave above, it does work.

        If you wanted to update this page, you could add a screenshot of the Gcal settings page, with a circle or an arrow showing where the Calendar ID is. I have used the XML link so much in the past, I thought that was what I was looking for.

        Thanks for posting this solution. I can confirm this works in Snow Leopard.

    • .jsber says:

      hej, on Snow Leopard (10.6.3) I used CalDAV as Account type and pasted the Calendar ID of the calendar I wanted to use (as qwertyuiopasdfghjkl1234567@group.calendar.google.com in this explanatory) as user name, used my password and in Server Address I put http://www.google.com.
      Click on Create and you get the following error:
      “iCal found the CalCAV server “www.google.com”, but couldn’t log in with the user name “qwertyuiopasdfghjkl1234567@group.calendar.google.com”. Make sure the user name and password you entered are correct, then try again.”

      But right with the error and if you don’t wait to long, the button “Create” changes to “Continue” and if you click it, you can change “user name” to your google user name, hit the Create button and voila, its done. This “simple” ;-)

  • jb says:

    great! thanks a lot!

  • bernie says:

    great – thanks it works.
    now the next problem: How can I sync my Iphone so that a a new Calendar entry from the iphone shows up in a google calendar. The only option I get from Isync is to sync it with an ical calendar.

  • Svein Are says:

    I have a different problem. I want to:
    – Create a shared calendar on Google Calendar
    – Import historical events (from a ics-file I have, I have checked and it validates (http://severinghaus.org/projects/icv/)
    – Edit events in iCal (Snow Leopard)

    What I successfully managed was:
    – Created the shared calendar
    – Imported historical events (tried importing at Google Calendar and importing in iCal)
    – Events can be viewed in Google Calendar
    – Events are NOT visible in iCal (delegate-view)
    – Events ARE visible in iCal if I subscribe to the public feed

    Anyone else have experienced this? If anyone want to look at this, I can invite you to edit the calendar (Google account).

  • Ruth says:

    I keep hitting a snag in Step 2, #7 and I can’t figure out what I am doing wrong. I keep getting error messages saying either that my password was rejected (I have checked it several times) or that the server is not recognized. Is there a step-by-step for making a new account for delegates in iCal (snow leopard)?

    Thanks

  • Billzy says:

    Wicked Help!!! Thanks for the tips, you saved me a lot of time with my calendars.

    Cheers!

  • David says:

    THANK YOU! GREAT POST. Solved a huge headache for me. Apple shouldn’t create a problem like this! That is why we use Apple and not Microsoft! This is such a Microsoft like problem!

  • Benny Powers says:

    well done! thanks for the info

  • Eric Brown says:

    Awesome solution! You rock. Thanks for taking the time to post this.

  • spike says:

    awesome! that worked perfectly for me, thanks!!!

  • Marco says:

    It no longer works. You cannot create a new Google Account that is the same as an existing one. You cannot create it as a WebDAV account, cause iCal 4.0.3 tells you “the server didn’t defined a calendar home”. It sucks! :-\

  • Matteo Rinaudo says:

    Hello Marco – I actually tried on my iCal (version 4.0.3) and it still works. Please make sure you specify `CalDAV’ for the Account type and you input the right Server address (as described in the post) whenever you add a new CalDAV account for your other calendar(s). I have two CalDAV accounts: my primary Google Calendar and an additional calendar I did set up. If I go to `Server settings’ on my iCal, I see two different `Server path’ values for each one of those calendars, but the same values for Server address: this means that I have two different CalDAV accounts of mine set up on the same server, but with different paths (main calendar and additional calendar).
    I hope this helps.

  • Matteo Rinaudo says:

    Hello BaroqueW: at the very beginning, I tried to sync my primary CalDAV account and its delegates many times, I also deleted and reconfigured my main CalDAV account again, but no luck: iTunes was only displaying my primary CalDAV account with no delegates at all.
    I thought that would have been better to let iTunes browse `real’ CalDAV accounts configured on the system, rather than `logical’ ones (delegates).
    Then I looked into my Google Calendar account (web browser) and I noticed the email-like pattern in the `Calendar Address’ setting value (Calendar ID) for one of my secondary calendars. I compared it to the value on my primary calendar, and I noticed it was just my email address. At this point I tried to create a new CalDAV account with a different server address, basically I replaced my email address (Calendar ID of my main account) with the Calendar ID of the second calendar, and it worked.

  • kevin says:

    I just did this to avoid having everything listed as a delegate, but I ran into another problem. Now, each individual calendar I have is listed under my google account name separately. For instance, I’ll have a group titled “myemail@gmail.com” and under that I’ll have one calendar. Then I’ll have another group titled “myemail@gmail.com” and under that another calendar. Every one of my calendars is listed individually like that. Any ideas?

  • Ian Shulman says:

    I’d like to say first that this is a great fix for the delegate calendar issue. It works really well for reading events on delegate calendars. However, when I go to create a new event in iCal (on my iPod Touch) the event only shows up in the primary calendar, which I don’t even use.

    Is there any way to set up iCal on the Touch so I can select which calendar I want to create the event in?

    Ian

  • Matteo Rinaudo says:

    Hello Kevin: since the main calendar and your delegate(s) have been configured as separate accounts, iCal seems to be listing them separately on the left column. As per my understanding, I am not sure if it is actually possible to group them (since they are configured as separate CalDAV accounts, even if they belong to the same one), but you can modify each description field for each account such as instead of (e.g.) `myemail@gmail.com’ for all of them, it reads its specific description, for instance `Main Calendar’, or `TODO’ or `MY OTHER CALENDAR’. To do so, open iCal, go to `Preferences’, select the `Accounts’ tab and click on each account entry on the left column to select it and to edit the `Description’ field.

  • Matteo Rinaudo says:

    Hello Ian – when you create a new event: open the `Calendar’ application on your device and tap on the `plus’ sign, the `Add Event’ form should have a field called `Calendar’. This field holds the `Default Calendar’ setting that is configured in the `Mail, Contacts, Calendar’ form of the `Settings’ application on your device. When you create an event, you should be able to tap on the aforementioned `Calendar’ field, and then a list of the available calendars which are set up on your device should appear: at this point you should be able to select the desired calendar for your event. Also, if you do not use your default calendar as you mentioned, you might consider changing the `Default Calendar’ setting the `Mail, Contacts, Calendar’ section mentioned before: there you can choose the calendar you use most often as the default calendar.

  • Matteo Rinaudo says:

    Hello again Ian – actually the option to choose which calendar to create an event in seems to be offered only when calendar accounts are created on the device itself.

  • Angela says:

    Hi,

    I have Ian’s concern, too. With this method, you are unable to add the event created on an iPhone/iPad/iPod Touch to a calendar that’s synced with Google. You can only select a ‘local’ calendar.

    That then defeats the purpose of having separate (organized) calendars if you end up with an ‘Unfiled’ calendar anyway, storing all events entered on your device/s. If you’re not feeling lazy, you sort them out when you’re on your Mac, but that’s very tedious and inefficient. :(

    Might as well go back to my no-sync iCal for now.

    Thanks, still, Matteo.

  • Dan says:

    Thanks,

    You saved the day for me. Very accurate, clear, easy to follow instructions for this task. Thanks!

  • Really like your approach.You’re providing information I can use at this moment, and fixin’ to. Thanks!.

  • Simon says:

    Thanks for your help, no-one else explained this way!

  • ALE says:

    I cannot work it out in OS X Lion!

  • JSB says:

    I would like to see an updated version of these instructions as of Nov 2012 to address new OS/software versions.

Comments are closed.