It was supposed to be easy. All I wanted to do was to synchronise Microsoft Outlook 2007 (at work) with Apple iCal or Microsoft Entourage 2004 (at home) using Google Calendar (GCal) as a broker (also allowing access from the web, wherever I am). I know that there are three software companies there who are largely competitors, but surely someone has done this before and anyway, isn’t that what iCalendar (RFC 2445) all about – the exchange of calendar data between applications?
Outlook 2007 also includes the ability to subscribe to other calendars using a process known as Internet Calendar Subscriptions but it’s a one-way process. The reverse process is known as publishing a calendar, either to WebDAV server (which I don’t have) or to Microsoft Office Online, which (in theory) is accessible from anywhere. This works, sort of, as long as I log in with a Windows Live ID or make my information public. The Windows Live ID option is fine from a browser but doesn’t work for other applications, such as iCal, which returns the following:
Error subscribing to the calendar
Unexpected secure name resolution error (code -9813). The server name calendars.office.microsoft.com may be incorrect.
Meanwhile, making my information available publicly is not a great idea (although iCal can subscribe to this, albeit read-only).
Next up, I tried getting GCal to subscribe to my Office Online calendar. Google refuses to read the webcal:// version of the address:
Error
Could not fetch the URL
and if I try the https:// variant then it says:
Error
Could not fetch the URL because robots.txt prevents us from crawling the URL
So that rules out the Office Online calendar.
I had some success with RemoteCalendars following the advice on Jake Ludington’s Mediablab site with a couple of changes for Windows Vista/Office 2007:
- Microsoft .NET framework 2.0 is already included within Windows Vista.
- There is a later version of the redistributable Primary Interop Assembles (PIA) available for Office 2007.
Unfortunately there wasn’t anything coming back the other way even though I was using version 6.3, which does include support for two way synchronisation and, despite checking the advice in the Grinn Productions post on incorporating Google Calendar into Outlook (there are lots of useful comments on this post), I didn’t get very far (the advice is to use a separate calendar in Outlook for a 2-way sync and that defeats the object of merging my individual work and private calendars into one universal calendar that I can access anywhere). I also noticed that somewhere along the way, my GCal entries were getting bumped forward an hour, probably as a result of timezone differences somewhere along the chain.
Next I looked at GCALDaemon (complex configuration and lots of articles for how to use it with other mail clients but not Outlook… which I suspect illustrates a contempt for working with anything from Microsoft).
SyncMyCal seemed to need me to make my GCal public (the opposite problem to syncing iCal with Office Online), so that’s a non-starter. It also threw an error during installation (probably because I had missed one of the many prerequisite applications that it requires) but then said installation had completed successfully, not exactly filling me with confidence in the error checking built into the product. Uninstallation also seemed to remove the buttons from the RemoteCalendars toolbar – possibly something to do with the fact that they both use the Microsoft Visual Studio Tools for Office (VSTO) second edition runtime.
SyncUpwards seems to be a dead project as the website says the latest version is 7 August 2006 (over a year ago) and that it doesn’t work with the Outlook 2007 beta.
I’d been avoiding one approach that appeared to be the holy grail of calendar synchronisation – using ScheduleWorld/Funambol to manage the synchronisation. it did look pretty good, but I didn’t really want ScheduleWorld (or any other Funambol server) in the middle of my architecture. Nevertheless, I gave it a go and it was reasonably successful but I had some issues with the Funambol client (v6.0.14), which seemed a little problematic with unhelpful error messages like:
Sync not completed. Network Error.
Most critically the Funambol Outlook Plugin kept on prompting me for agreement to use or register a product called Outlook Redemption which it was obviously using to work around some of the Outlook security restrictions. That meant three products working together… as well as Outlook, GCal and the others – this was all starting to look a bit too Heath Robinson.
Then I panicked – all of a sudden Outlook had duplicate appointments, all an hour out of place and without any category information. It seemed that despite having supposedly uninstalled RemoteCalendars it was still working (I hadn’t rebooted) and I had a synchronisation loop from Outlook to Funambol/ScheduleWorld to GCal and back to Outlook. I quickly stopped Funambol and took full advantage of ScheduleWorld’s flexibility, deleting all entries in that calendar and forcing a one-way sync to GCal (effectively emptying that calendar too), which RemoteCalendars picked up and used to remove all the duplicates from Outlook. Phew! Once that was over, I rebooted the PC, removed Funambol and VSTO, and rebooted again, just to be sure that nothing was still running (I also manually deleted the RemoteCalendars VSTO toolbar from within Outlook).
Googling for other products that might help me, I looked at GMobileSync, Goosync and GCalSync, but they all seem to be primarily for synchronising between GCal and a mobile phone. There was also the cleverly-named Calgoo but it required me to register for an account and (much like ScheduleWorld that I tried earlier).
Then I found a link to David Levinson’s gSyncit. Not only is it a tidy Microsoft.NET application with minimal prerequisites that integrates well as an Outlook plug-in but its options appear to be well thought out and it is very clear about being able to perform single or bi-directional synchronisation between Outlook and GCal. I tried it out on a limited date range and synchronisation worked, including no timezone issues between the two platforms. Although I found the version that I used (v1.9.19) to be a little temperamental at times (sometimes clicking the sync button doesn’t seem to do anything, and annoyingly the GCal feed path changes of its own accord), when it works it does exactly what I need it to – bi-directional synchronisation between Outlook 2007 and a private GCal, although it would be nice if it also worked with Outlook in cached mode. I’ll was going to give it a bit longer and see if it settles down, thinking that if it works well enough then it would only be $9.99 to register but after waiting over an hour for it to synchronise almost 1500 entries with GCal, I noticed that some were missing. After a resync it didn’t copy the missing appointments to Google, instead it removed them from Outlook! Arghhh! If I can’t have 100% confidence in a synchronisation product then I might as well not bother.
I decided to have a look at another product I’d found – Oggsync. Oggsync tries to install the Office 2003 PIA (even if the Office 2007 PIA is already installed) as well as VSTO and shared add-in extensibility/support updates for Microsoft .NET framework 2.0 (see Microsoft knowledge base article 908002 for details) but unlike some of the products I tried earlier (RemoteCalendars and SyncMyCal), the OggSync installer does the work for me (much better than having to install a bunch of individual packages before installing the application I’m really after). I really wanted to like OggSync, and then it started doing weird things like moving events out of Outlook and into Google and syncing only a fraction of my entries across a wide time frame. I was not impressed. Thankfully I was able to pull them back from a PST export of my Calendar that I had made earlier today.
At this point, I was ready to give up on the whole process – but I decided to try one more option – CompanionLink for Google. Despite some initial synchronisation errors, the support team at CompanionLink were really helpful and I got it working quite well. I was seriously considering buying this product but my confidence in calendar synchronisation had been shattered by the earlier failures and I still hadn’t got everything working on the Mac end of things…
I found that Apple iCal can subscribe to a GCal calendar (to private calendars too – not just shared calendars as shown in the article) but I still needed to work out how to get iCal to sync with a GCal private calendar (iCal can subscribe to GCal calendars but only for read-only access). Calgoo or Spanning Sync may have been able to help me out there. iCal automatically detects the presence of Entourage and can edit the Entourage calendar but I still needed some further work on 2-way synchronisation (not just display) between iCal and Entourage (it looks as though there is another product that could help here)
In all, the whole experience was… problematic. I didn’t think I was trying to do anything difficult, but clearly there is still a long way to go before simple calendar synchronisation using the iCalendar protocol will be a reality for me.