Syncing OS X Address Books and iCal Calendars across Multiple Macs using Dropbox

S

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.

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.

The symbolic link to the AddressBook folder

The symbolic link to the AddressBook folder

 

 

If we click on this symbolic link we’ll see that it’s actually pointing to the ~/Dropbox/AddressBook/ folder.

The actual AddressBook folder

The actual 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.

The AddressBook folder on Computer B synced from Computer A

The AddressBook folder on Computer B synced from Computer A

 

 

However, the Address Book on Computer B is currently using data in the ~/Library/Application Support/AddressBook/ folder.

The AddressBook folder currently used by Computer B

The AddressBook folder currently used by Computer B

 

 

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.

The symbolic link to the Calendars folder

The symbolic link to the Calendars folder

 

 

If we click on this symbolic link we’ll see that it’s actually pointing to the ~/Dropbox/Calendars/ folder.

The actual Calendars folder

The actual 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.

The Calendars folder on Computer B synced from Computer A

The Calendars folder on Computer B synced from Computer A

 

 

However, iCal on Computer B is currently using data in the ~/Library/Calendars/ folder.

The Calendars folder currently used by Computer B

The Calendars folder currently used by Computer B

 

 

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.

About the author

A native Brit exiled in Japan, Steve spends too much of his time struggling with the Japanese language, dreaming of fish & chips and writing the occasional blog post he hopes others will find helpful.

6 responses

Leave a Reply to Steve Cancel reply

6 Comments

  • 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.

Steve

Recent Comments

Recent Posts