For a long time, I’ve been trying to synchronize contacts and calendar entries between my mobile phone and evolution. The right way to do this is obviously SyncML, as most modern mobile phones support it, and there are a lot of webservices who will provide you a SyncML-server for free. However I always had issues getting SyncML to work with evolution (thunderbird/sunbird would be nice, too but I guess that’s impossible at the moment). Neither multisync, nor opensync worked for me in any way.

Now I finally found a solution that really works. There is a project called SyncEvolution. You will find the sources at http://www.estamos.de/projects/SyncML/index.html Debian packages do not seem to be available right now. Compiling and installing worked for me without problems. However you need some libraries and headers to compile it. On debian etch, you need to install these packages:

libecal1.2-dev
libecal1.2-6
evolution-dev
evolution-data-server-dev
libedata-book1.2-dev
libedataserver1.2-dev
libdb3-dev
libcurl3
libcurl3-dev

Then you can compile and install it with the usual ./configure; make; make install

The configuration is a bit weird:

basically you will have to create these files in your home directory:

.sync4j/evolution/<server>/spds/syncml/config.txt
.sync4j/evolution/<server>/spds/sources/addressbook/config.txt
.sync4j/evolution/<server>/spds/sources/calendar/config.txt
.sync4j/evolution/<server>/spds/sources/memo/config.txt
.sync4j/evolution/<server>/spds/sources/todo/config.txt

The last 4 files are optional, depending on which items you want to synchronize.

<server> is the identifier, just in case you have more than one SyncML-server.

syncml/config.txt contains the server configuration.

You can use etc/syncml-config.txt in the source directory as a template. There are also templates for funambol and scheduleworld in the same directory. I’m using www.scheduleworld.com. mobical.net didn’t work for unknown reasons. See http://www.estamos.de/projects/SyncML/Compatibility.html for a list of compatible servers.

The configuration templates are well-commented, so I didn’t need any further documentation.

I sometimes have problems, when syncing calendar entries that last a few days and are marked as ‘all day’-events. Just enter a start and end time and it will work fine.