The Two Mac Nightmare – Calendars

When I introduced this series of posts, I highlighted the main areas I wanted to keep in sync between my Macs and a web interface for use at work. This post aims to introduce you to the method I use to keep my calendar in sync across the three areas. On both my Macs I use iCal to keep things organised. On the web I have a Google Apps For Your Domain (GAFYD) account setup which includes a very nice calendar that mirrors iCal nicely. In my quest to find a syncing method I’ve tried many different routes but always felt that the combination of iCal and gCal was the way forward and there are quite a few tools available to enable this.

The Tools

The first tool that came available was of course the first tool I tried. It’s also probably the most well known, and goes by the name of Spanning Sync. It installs via a preference pane which enables you to configure it with your Google account and enable fully fledged bi-directional sync. I used it when it was in beta and for the free trial period once it was fully released, but something about it didn’t quite feel right to me.

I’m already trusting a 3rd party with my calendar information by enabling this sync, what I didn’t like about Spanning Sync was the fact it didn’t speak directly to Google. Everything was passed through the Spanning sync servers. I didn’t want yet another 3rd party server holding my information, and adding an extra step in the sync meant, at least in my eyes, adding another thing that could break. However, this wasn’t the only reason I didn’t like Spanning Sync. I didn’t like the pricing method they were using. A subscription basis didn’t sit right with me, especially at the price they were asking. $65 for a lifetime or $25 for a year. That felt expensive and turned me away in the search of another solution.

Fortunately for me this was at a time when a second option was just entering the market in a beta. gSync1 had become available and unlike Spanning Sync it spoke directly with Google and was not subscription based.

As with Spanning sync I tested it for the beta period and the free trial, but again I was left wanting. Whilst the utility seemed to work there were always a few hiccoughs with the sync. It didn’t always work and a couple of times I was left to restore from backups and spend time on Google sorting out broken calendars with surplus events. Not really the ideal solution. I quickly grew tired of this and gave up for several months, relying on one copy of iCal and my memory.

Just as I was beginning to get fed up and have ago at the all elusive sync, a new utility arrived on the market in the form of BusySync. At the time it was only able to sync between 2 Macs on a local network (LAN), but I still gave it ago. It worked very well. I was able to set my iMac up as my “server” and have it sync my iBook flawlessly. I was very impressed, but still a little reluctant to commit as the web interface I needed was still eluding me.

Thankfully only a few months after launch BusySync 2.0 was released and with it the ability to sync with a Google Calendar. I tried it again, and once again I was impressed. The same ease of use that was in version 1.0’s sync over LAN was present with 2.0’s sync to Google. A simple case of checking the right boxes after inputting my login details. Still I wasn’t sold instantly but after the 30 day trial ended I coughed up for a license.

The Setup

Initially I had my iMac setup, as before, as my “server”. It was publishing my calendars for my iBook to subscribe to as well as publishing them to my Google calendar. For a while this seemed to be working, but then I hit a few roadblocks. I wasn’t turning my iMac on as often as I needed, as a result I wasn’t getting identical sets of information on Google and my iBook. Things were getting a bit out of sync. I changed the way I was handling things so that my iBook was subscribed to my Google calendar which was in turn subscribed to my iMacs calendars. This worked, everything was staying in sync and identical. But it didn’t feel right to me. It didn’t feel like I had a central point which acted as the “master” so I changed things again. This time exporting my calendars from my iMac and importing them into my Google Calendar. Then using BusySync I subscribed to the calendars from Google on my iMac and on my iBook. This was it. It felt right. It felt like a “cloud” and my calendars remained in sync no matter what I did. Whether I was at work adding an event on my iBook adding an event or on my iMac adding an event. Everything came and went very nicely.

How does it work?

Stunningly, but that’s not what you want to know. BusySync uses technology built into Mac OS X called Sync Services. As I understand it that technology presents BusySync with the calendar data the moment you complete entering it, and BusySync pushes it to Google. That means usually within a minute of making a change in iCal it is reflected on Google. Unfortunately the other direction doesn’t quite work the same way. Getting events from Google is still a pull system, checking at a specified intervals for new events and changes. However, setting it to check every minute pretty much enables the same feeling, and events feel like they appear almost instantly2. It can’t get much better than that!

Please stay tuned for the next two installments of my series on keeping two Macs in sync. I’ll be tackling emails and contacts as well as those few important files you need in multiple places.

  1. After I'd written the main body of this post I couldn't find a link to gSync. It was created by a company called Macness but their website no longer seems to be alive. I guess the project died.?
  2. I have this setup on both my iMac and iBook. As the battery on my iBook is foobar'd and I have it permanently plugged in I don't know how this would impact battery life. Having spoken with John, one of BusySync's developers, I thought I would pass on this piece of information regarding battery life.
    If you have BusySync set to sync every minute with Google Calendar, it could very well be keeping your Mac from going to sleep, and will run down your battery. I recommend that you change the Google Sync interval to be greater than your sleep interval. Setting Google to sync every minute doesn't buy you much. Any changes you make locally will sync immediately, and if you're concerned that something has changed on Google since the last pull, you can select the Sync Now menu command from the BusySync Menu bar icon.