The Prog Blog
Saturday, May 14, 2005
 
Synchronizing Calendar & Addressbook in Evolution
I've often hard a hard time synchronizing my calendar, tasks, and addressbook data between copies of Evolution on my laptop and on my desktop. Multisync seemed like a promising solution, but I could never get it to work right between two instances of the Evolution plugin, and it seemed to be more geared towards synchronizing between Evolution and a wireless or handheld device. Their current release doesn't support Evolution 2, although support is now in CVS (but I'm not sure when they're going to release again).

Here's what I'm using now. On both computers I have a directory called "syncfiles", and I use rsync to keep them synchronized (you could also use unison). I put copies of the directories in the .evolution tree corresponding to my contacts, calendar, and tasks "folders" in there, and then replace the actual directories under .evolution with symlinks back to the syncfiles directory.

Step-by-step instructions:
  1. Move the directory $HOME/.evolution/local/calendar/local/system (this is your "Personal" calendar) to $HOME/syncfiles, then rename it to "calendar".

  2. Make a link back in the .evolution directory:

    ln -s $HOME/syncfiles/calendar $HOME/.evolution/calendar/local/system

  3. If you have other calendars, you need to find which directory contains them. Try grepping the calendar/local directory for a unique string in one fo the calendar's events.

  4. Once you have the string (I'll refer to it as "blah@hostname"), move the directory $HOME/evolution/calendar/local/blah@hostname to $HOME/syncfiles, and rename it to an easy-to-remember name.

  5. Make a link back in the evolution directory:

    ln -s $HOME/syncfiles/easy-to-remember-name $HOME/.evolution/calendar/local/blah@hostname

  6. Repeat for Addressbooks and Tasks.
When you move from laptop to desktop, use rsync like this:
rsync -av --delete you@laptop:$HOME/syncfiles you@desktop:$HOME/syncfiles
Similarly, when moving from desktop to laptop, use rysnc like this:
rsync -av --delete you@desktop:$HOME/syncfiles you@laptop:$HOME/syncfiles
Update: After screwing something up with rsync, I gave Unison another try. It works a lot better, especially with the GUI.
Comments: Post a Comment

<< Home

Powered by Blogger