You can try Spanning Sync free for up to 15 days. After the trial period, the software will stop synchronizing your data and prompt you to either register or uninstall.

To register, open the Spanning Sync preference pane, wait for the prompt, and click the "Buy" link. You must login to Spanning Sync using a valid Google Account and password in order for the prompt to appear.

Important: Before syncing any calendars, make sure that there are no calendar events which exist in multiple calendars. Having the same calendar events in multiple calendars confuses Apple Sync Services and can result in data loss. Spanning Tools for Mac includes a tool which can identify such events.

Note: The first sync session always takes much longer than subsequent syncs because every single calendar event and contact has to be sent over the network. 10 minutes for each large calendar and/or a large Address Book is typical.

That's it! Your calendars and contacts are now automatically synchronized in both directions. If you are syncing any other devices or applications with calendars or contacts on your Mac, they will reflect new and updated events in Google Calendar.

Use the menu bar icon to manually start a sync, to check the time of the last sync, or as a shortcut to the preference pane. To turn the menu bar icon off, uncheck the "Show status in menu bar" checkbox in the preference pane.

Calendars and contacts can be among the most important things on your computer. While we've rigorously tested Spanning Sync, it's difficult to predict what will happen when several applications and devices are syncing the same data at the same time. For this reason, we highly recommend backing up your data.

Note: When first opened, Spanning Sync creates backups of your calendars and contacts and stores them at ~/Library/Application Support/Spanning Sync.

Choose an ICS file on your Mac and a Google calendar to which they'll be added, then click Import. (Note that events will be added to the calendar you select, so you need to create a new calendar first to wind up with a calendar with only the events from your backup.)

Syncing calendars from Apple's iCal to Google Calendar is easy. Before starting, you should already have created the iCal calendars and Google calendars that you wish to sync with each other.

In the Calendars tab of the Spanning Sync preference pane, you'll see a list of iCal calendars on the left and Google calendars on the right. To begin syncing a pair of calendars, select the checkbox next to the iCal calendar you want to sync and then choose the corresponding Google calendar from the pop-up menu.

Calendar pairs are always one-to-one. That is, each iCal calendar syncs with at most one Google calendar. Synchronization occurs in both directions unless one of the calendars is read-only (like a calendar of holidays or a shared calendar to which you have read-only access).

When you sync a calendar for the first time, all events from iCal are sent to Google and all events from Google are sent to iCal (assuming the sync method is set to "Sync both directions"; more about this later). Naturally, this kind of sync will take much longer than normal. 5-10 minutes is typical but a very large calendar with many thousands of events can take up to 30 minutes. Subsequent syncs will only take a few seconds.

Spanning Sync allows you to sync two calendars in a single direction, protecting one calendar from ever being modified by the syncing process. To do so, double-click the calendar pair to bring up the options panel and choose either "Sync to iCal" or "Sync to Google" from the "Sync method" popup menu. "Sync to iCal" means that data will only flow to iCal and the data on Google will never be modified. "Sync to Google" means that data will only flow to Google and the data in iCal will never be modified. Choosing "Sync both directions" enables traditional synchronization between both calendars. You can also change the sync method from the button bar at the bottom of the calendar list.

For large, older calendars you may be able to speed up the sync process by skipping over older events. To do so, double-click the calendar pair to bring up the options panel, check the "Do not sync events older than" checkbox and choose a number of days. Events older than that will not be synced, with one exception: recurring events are always synced.

iCal and Google Calendar both offer a variety of alarm options. If alarm syncing is enabled in the calendar options panel, then Spanning Sync will map existing iCal alarms to your choice of popup alarms, email messages, or SMS messages on Google Calendar. Existing Google Calendar popup alarms will sync to iCal as a message+sound alarm. Existing Google Calendar email message and SMS alarms will not sync since it's unlikely that you'd want to receive those alarms twice.

You can replace all existing events in a Google calendar with the contents of an iCal calendar by selecting "Replace Data on Google" from the Advanced tab of the Spanning Sync preference pane. However, care should be used when doing this as Google does not completely delete the calendar events for up to a week. Doing this more than once during that period can lead to a situation where the calendar account has gone "over-quota" with Google and further syncs will fail until Google purges the old data.

You cannot replace an iCal calendar with the contents of a Google calendar during a sync since Apple doesn't allow it. Instead, you can delete the existing iCal calendar, create a new one with the same name, pair it in the Spanning Sync preference pane, and sync.

Duplication can be a serious concern when synchronizing data across servers and devices. Spanning Sync uses specialized technology to prevent duplicate calendar events from appearing in iCal or Google. If duplicates do appear, there may be an issue with time zones or other devices and services that you sync with. Please see the troubleshooting section at the end of this document.

One great way to keep duplicates in check is to use the Calendar Cleaner program, which is part of Spanning Tools for Mac. Spanning Sync customers get $5 off the regular price.

If you only want a subset of your Address Book contacts to sync, use the contact group feature of Spanning Sync.

In the above example, only contacts in the Address Book group "Businesses" will sync to Google and all new contacts from Google will be placed in the "Businesses" group. In this mode, contacts are deleted from Google only when they are completely deleted from Address Book, not when they are deleted from the Address Book group.

Spanning Sync allows you to sync contacts in a single direction, protecting either your Mac or your Google contacts from ever being modified by the syncing process. To do so, choose either "Sync to Address Book" or "Sync to Google" from the popup menu in the upper-right corner of the Contacts pane. "Sync to Address Book" means that data will only flow to Address Book and the data on Google will never be modified. "Sync to Google" means that data will only flow to Google and the data in Address Book will never be modified. Choosing "Sync both directions" enables traditional synchronization between both sets of contacts.

Duplication can be a serious concern when synchronizing data across servers and devices. Spanning Sync uses specialized technology to prevent duplicate contacts from appearing in Address Book or Google. If duplicates do appear, it's probably because a contact with an unusual name (e.g. no last name) existed in both Address Book and Google that couldn't be matched up with one another.

One great way to keep duplicates in check is to use the Contacts Cleaner program, which is part of Spanning Tools for Mac. Spanning Sync customers get $5 off the regular price.

Spanning Sync can do much more than just sync your calendars and contacts with Google. By using Google as a "hub," you can sync data on multiple Macs to each other.

Syncing multiple Macs is easy.

Create new Google calendars for each of the iCal calendars you wish to sync.

If you haven't done so already, create matching iCal calendars on all of the Macs that you want to sync.

Install Spanning Sync on each of the Macs.

On each Mac, enter the same Google account name and password and pair the same iCal calendars to the same Google calendars. The Spanning Sync preference pane should look nearly identical on each computer.

Begin syncing each Mac with Spanning Sync.

Note: If you're syncing multiple Macs with the same Google account, you only need to purchase a single Spanning Sync license.

The log window can help provide detailed information about status of the syncing process and which calendar events and contacts are changing. You can open the log window from the Advanced tab of the Spanning Sync preference pane.

The Account & Schedule tab offers some basic scheduling options, however advanced users might want to customize the sync schedule. To do so, copy and paste these lines into Terminal (located in the Utilities folder), replacing seconds with the number of seconds you want between each sync:

Spanning Sync will notify you if five or more contacts or calendar events are to be deleted from your Mac or from Google and give you a chance to skip them so the data isn't deleted. If you'd like to be notified when Spanning Sync is about to delete any data, then set the threshold to one by copy and pasting this line into Terminal (located in the Utilities folder):

By option-clicking the "Start Over" button in the Advanced tab of the pref pane, you can cause the next sync to merge all of the selected data between your Mac and Google. This is like starting over without losing your preferences.

Copying an event and then pasting it into the same calendar creates a duplicate event. Even if you plan to change the pasted event, iCal will probably sync the pasted event to other sync clients on the computer (including Spanning Sync) before you've changed it. When this happens, the pasted event can become incorrectly linked to the existing event in Google Calendar. If you want to use one event as a template for another, paste it into a new "scratch" calendar, make the modifications, then move it back to the desired calendar.

Deleting an iCal calendar that you sync is fine, however if you then create a new iCal calendar and pair it with the same Google Calendar that was paired with the deleted calendar, there could be unexpected side effects such as deleted events. If you really need to do this, you should do a "Start Over" from the Advanced tab of the Spanning Sync pref pane before syncing with the new calendar.

Spotlight may try to index some of Spanning Sync's data files, causing unnecessary CPU usage after each sync. To prevent this, open the Spotlight pref pane and drag this folder to the list in the Privacy tab:

Some users find that Entourage causes Spanning Sync to sync every 10 seconds. This occurs because Entourage is "trickle syncing" every 10 seconds and, since Spanning Sync trickle syncs too, Apple Sync Services asks Spanning Sync to sync each time. To prevent the problem, you can turn off trickle syncing in Spanning Sync by copy and pasting the below lines into Terminal (located in the Utilities folder):

defaults write com.spanningsync noTrickleSyncing -bool YES

Note: Place a "~" at the beginning of the above path if you installed the pref pane for only the current user.

Note: With trickle syncing turned off, Spanning Sync will only sync on its schedule and won't sync immediately when changes are made to Address Book or iCal.

Some users have reported issues between Spanning Sync and Little Snitch, while others have reported that the two work fine together. The trick seems to be that you need to allow port 80 and port 443 access to the following:

Spanning Tools for Mac is a suite of utilities that analyzes, reports, and fixes dozens of problems with iCal, Address Book, and Apple Sync Services—problems ranging from the obvious, such as duplicated calendar events, to the subtle, such as invalid calendar dates and poorly formatted contact names. A discount is available for Spanning Sync customers.

Some of the topics below suggest "starting over" with Spanning Sync. "Starting over" with Spanning Sync will never cause data to be lost; it will only cause the next sync to take a long time. Here's how:

If information in iCal is correct but information in Google Calendar is wrong, you can replace calendar data on Google with calendar data in iCal:

Open the Spanning Sync preference pane.

Click the "Reset…" button.

Check "Replace info on Google Calendar with info from this computer".

Click "OK".

Sync.

Important: Resetting Google Calendar will remove attendee information and non-default alarms from synced Google calendars. Don't do this more than once a week as it can cause your Google Calendars account to go over-quota.

Duplicates can occur due to time zone mismatch issues where two or more of your calendar sources have different time zone settings. For example, the calendar on an iPhone can have time zone support turned on while iCal on the computer has time zone support turned off. If you create an event in a different time zone and then do a "refresh" sync, you could end up with duplicates or time shifts. It's also a good idea to check each of your Google calendars to make sure their time zones are set the same as your iCal calendars, and the same for any other device or server that you sync with.

We recommend that you verify that all four of these time zone settings are the same:

Your Mac (System Preferences > Date & Time > Time Zone)

Each iCal Calendar (If iCal > Preferences > Advanced > Time zone support is turned on, then in the calendar view check the setting above the search box in the upper-right corner of the window)

Non-Apple phone-syncing software is also known to duplicate calendar events. In this case, you should use Spanning Tools for Mac to remove the duplicates and then contact the developer of the software.

It's also possible that iCal is syncing new events before you're done editing them, which can cause a duplicate. To prevent this from happening, you can turn off trickle syncing in Spanning Sync by copy and pasting the below lines into Terminal (located in the Utilities folder):

defaults write com.spanningsync noTrickleSyncing -bool YES

Note: Spanning Tools for Mac includes tools for removing duplicates from both iCal and Address Book, and also solves dozens of other common problems. A discount is available for Spanning Sync customers.

Google can occasionally get confused about a calendar and stop sending us its name, so it shows up as "Unknown" in the Spanning Sync preference pane. To fix the problem, just log into Google Calendar, change the name of the affected calendar, save it, then change it back, and save again. Then refresh Spanning Sync by quitting System Preferences, reopening it, and reopening Spanning Sync. The correct calendar name should be listed.

If you're still running Mac OS X 10.4 "Tiger", you can't update to Spanning Sync 3 (which requires Leopard or better). But each time you launch the Spanning Sync pref pane it will prompt you to upgrade.
You can prevent the Spanning Sync pref pane from prompting you to upgrade by copy this line and pasting it into a Terminal window: