With Apple’s recent announcement regarding iCloud at this year’s WWDC it is perhaps worth remembering that until the service is released this autumn it’s still possible to sync your Address Book and Calendars among your Macs using another free service: Dropbox.
Before following these instructions you should back-up your Address Book and iCal data to ensure against potential data loss.
The method described below makes use of the Terminal application in Mac OS X. For information on entering file and folder paths in Terminal see Entering File and Folder Paths on the macOS Command Line.
Note also that, for those unfamiliar with it, the tilde character (~) is used as shorthand to denote the user’s home folder.
Table of Contents
Let’s assume we have two Macs. An iMac that I’ll call Computer A and a MacBook that I’ll refer to as Computer B. Computer A contains the latest, up-to-date Address Book and iCal data.
1. Address Book
Mac OS X stores Address Book data in the AddressBook folder contained in the folder ~/Library/Application Support/.
2. Configuring Address Book Sync on Computer A
The first thing to do is to move this AddressBook folder on Computer A to the Dropbox folder.
On Computer A, quit Address Book and open the Terminal application. Type the following command and press return.
cd ~/Library/Application\ Support
This changes the current directory to that containing the AddressBook folder. Next type the following command adding a space at the end. Don’t press return yet.
mv AddressBook
Now locate your Dropbox folder in the Finder and drag it to the Terminal window. This copies the full path to your Dropbox folder into the Terminal command like so:
mv AddressBook /Volumes/Data/Users/steve/Dropbox
Press return to move the AddressBook to the Dropbox folder.
Next we need to ensure that Address Book can find its data in the Dropbox folder as it expects it to be located in the ~/Library/Application Support/ folder. To do this, create a symbolic link named AddressBook in the ~/Library/Application Support/ folder which points to the ~/Dropbox/AddressBook/ folder.
To create the symbolic we must use the ln command in Terminal. This is not the same as creating an alias in the Finder using drag-and-drop while holding down the option and command keys. The latter should not be used as Address Book will be unable to find its data in the Dropbox folder and will create a new, empty address book.
ln -s /Volumes/Data/Users/steve/Dropbox/AddressBook /Volumes/Data/Users/steve/Library/Application\ Support
If we navigate to the ~/Library/Application Support/ folder in the Finder we’ll see what appears to be a folder named AddressBook. This is in fact the symbolic link we created in Terminal.
If we click on this symbolic link we’ll see that it’s actually pointing to the ~/Dropbox/AddressBook/ folder.
Open Address Book and confirm that the data is as it should be.
Next we’ll configure Address Book on Computer B.
3. Configuring Address Book Sync on Computer B
On Computer B locate the Dropbox folder in the Finder. You’ll see that it contains the synced AddressBook folder.
However, the Address Book on Computer B is currently using data in the ~/Library/Application Support/AddressBook/ folder.
First, we need to delete the ~/Library/Application Support/AddressBook folder. So, simply drag it to the Trash.
We’re now ready to create a symbolic link on Computer B named AddressBook in the ~/Library/Application Support/ folder which points to the ~/Dropbox/AddressBook/ folder.
ln -s /Users/steve/Dropbox/AddressBook /Users/steve/Library/Application\ Support
The Address Books on Computer A and Computer B should now remain in sync.
4. iCal
Apart from the location of the calendar data, the method for syncing iCal calendars is identical to that of Address Book. Mac OS X stores iCal calendar data in the~/Library/Calendars/ folder. For continuity, I’ll detail the entire process in its entirety.
5. Configuring iCal Sync on Computer A
The first thing to do is to move this Calendars folder on Computer A to the Dropbox folder.
On Computer A, quit iCal and open the Terminal application. Type the following command and press return.
cd ~/Library
This changes the current directory to that containing the Calendars folder. Next type the following command adding a space at the end. Don’t press return yet.
mv Calendars
Now locate your Dropbox folder in the Finder and drag it to the Terminal window. This copies the full path to your Dropbox folder into the Terminal command like so:
mv Calendars /Volumes/Data/Users/steve/Dropbox
Press return to move the Calendars to the Dropbox folder.
Next we need to ensure that iCal can find its data in the Dropbox folder as it expects it to be located in the ~/Library/ folder. To do this, create a symbolic link named Calendars in the ~/Library/ folder which points to the ~/Dropbox/Calendars/ folder.
To create the symbolic we must use the ln command in Terminal. This is not the same as creating an alias in the Finder using drag-and-drop while holding down the option and command keys. The latter should not be used as iCal will be unable to find its data in the Dropbox folder and will create new, empty calendars.
ln -s /Volumes/Data/Users/steve/Dropbox/Calendars /Volumes/Data/Users/steve/Library
If we navigate to the ~/Library/ folder in the Finder we’ll see what appears to be a folder named Calendars. This is in fact the symbolic link we created in Terminal.
If we click on this symbolic link we’ll see that it’s actually pointing to the ~/Dropbox/Calendars/ folder.
Open iCal and confirm that the data is as it should be.
Next we’ll configure iCal on Computer B.
6. Configuring iCal Sync on Computer B
On Computer B locate the Dropbox folder in the Finder. You’ll see that it contains the synced Calendars folder.
However, iCal on Computer B is currently using data in the ~/Library/Calendars/ folder.
First, we need to delete the ~/Library/Calendars/ folder. So, simply drag it to the Trash.
We’re now ready to create a symbolic link on Computer B named Calendars in the ~/Library/ folder which points to the ~/Dropbox/Calendars/ folder.
ln -s /Users/steve/Dropbox/Calendars /Users/steve/Library/
Your iCal calendars on Computer A and Computer B should now remain in sync.
Great information and I used it to great effect.
However, I need help in recovering iCal calendar which I setup using your the information over a year ago.
Just upgraded a computer in the system and an old calendar got uploaded and overwrote the calendar to a previous (without current event) date and time.
Need to recover the most accurate file how do I do this?
@Mark,
This method uses a single Calendars folder located in your Dropbox folder shared by selected computers by way of a symbolic link.
If you’ve overwritten this Calendars folder and don’t have a back-up, I can’t see how you’d be able to restore the original.
However, according to this article you may be able to recover an older version of the Calendars folder from Dropbox.
Good luck, Steve
HI Steve,
thanks for the great tutorial on using symbolic linking for Address Book. I have been interested in a solution that would allow me to continue to synch address book with a Snow Leopard laptop which is non-compliant with Lion. I thought your solution would be the answer until I read the previous 2 comments/replies. Can you tell me if I would use your solution, and I enable iCloud to synch address books with iPhones, and other macs — can I continue to use this solution to update the non-Lion laptop? Thanks in advance for the help…
Hi Tom
I guess the short answer is no.
As I recall, iCloud was unable to locate my address book data by following the symbolic link I had set up for the Dropbox sync. I had to move my address book data back to its original path: ~/Library/Application Support/AddresBook in order for the iCloud sync to work.
On your Snow Leopard machine you could have a symbolic link to your address book data in your Dropbox folder on that same machine, but this data will never sync with iCloud.
Regards, Steve.
Steve,
I followed this great tutorial some time ago. Now that I’m using iCloud the remnants of the sym link seem to be causing sync problems. Tho I have deleted the physical sym links themselves there seems to be some hidden problem. If you could be so kind as to give me Terminal language to reverse the AddesssBook sym link I would be very appreciative.
Many thanks,
John
Hi John,
Deleting the AddressBook and Calendars symbolic links and emptying the trash should suffice.
I recently switched from Dropbox to iCloud too. Having deleted the symbolic links I moved the AddressBook and Calendars folders from Dropbox back to their original locations before configuring iCloud. I’ve not had any sync problems that I’m aware of.
Regards, Steve.