How to synchronize Evolution with your PDA?

January 5th, 2007

Being a complete Ubuntu newbie, I did not know about the synchronization issues between PDA’s and evolution. I knew Evolution Logothat there was a program called Multisync, and I naively thougth that all I had to do was to install this application and then go! That was the way good old Microsoft had been able to make it with ActiveSync. But alas! After roaming around on the internet and reading lots of advice about how to make it work, I still was not able to synchronise flawlessly. I could get it to work, and I even know there are a lot of them out there who did not. But when it does not function perfectly, it does not work. So I almost decided to switch back to Microsoft, when something came to the rescue…

iPAQ 4150The name is Scheduleworld. Scheduleworld is a free server where PIM-data can be stored. PIM stands for Personal Information Management, and it just means calendars, to do lists and contact information. Scheduleworld uses some sort of standard to store this data, so it is possible for other people to create their own application to sync with scheduleworld.

The whole idea is to forget multisync and other ways to try to make Evolution communicate with my PDA. This server is the heart of the setup, and Evolution only has to communicate with that. Also my PDA has to communicate with this server, so then voilá! My PDA and Evolution will be synced…

The thing that makes this such a good idea, is that there exist a lot of very good third party applications that allow you to sync everything with Scheduleworld: you could sync Outlook, mobile phones, Google Calendar, your Ipod and if only it had a calendar, you probably could sync your coffeemachine.

But we just want to sync Evolution with our PDA. So we need:

1) A way to synchronise Evolution with Scheduleworld. It exists and works great! And its called SyncEvolution.

2) A way to synchronise your PDA with Scheduleworld. It exists and works! And its called Funambol.

Both applications are reliable, is my experience. There is one drawback: Funambol does not support exceptions to recurrent events (so if you have to go to college every monday except for the holidays, you have to accept that your calendar will remind you of college, even if you actually have holiday. There is another option available instead of Funambol, but costs money. I’ll tell you about it later.
I’ll try to be as verbose as I can when writing down the installation guide. Be patient, it will take you an hour or so to get everything to work, but then you will have the best way of keeping all your data everywhere always up to date!

There is one thing that I have to mention first: you have to install something on your PDA by running an *.exe file on your pc. I could not get it to work without booting into windows and then run the executable. There has to be a way to circumvent the use of good old Microsoft but I could not find it. If you know, let me know. But keep in mind that when you don’t have access to a Windows installation with a working ActiveSync connection, I cannot help you right now. If you have this access: after you’ve installed this nifty program, you will not need Microsoft anymore -ever-. And is that not what every stupid linux-is-so-much-better-than-windows-linux-geek wants?

Well then, there we go…

STEP ONE: REGISTER AT SCHEDULEWORLD

Go to www.scheduleworld.com and sign up for a free account. Login and go to preferences. You will see a title saying “General Preferences for number / email”. Write down the number: this is your unique usernumber and you will need this when you configure everything.

STEP TWO: SET UP EVOLUTION TO SYNC WITH SCHEDULEWORLD

2.1 Compile and install Syncevolution

We will have to compile our own application. I had never done this before but with the help of other guides, I managed to do it. To be honest, I didn’t have a clue of what I was doing so don’t be afraid: you also don’t have to understand anything if only you follow the directions.

We first need some packages to prepare our system. Open Synaptic Package Manager (System ->Administration) and search for all these files, one by one, and mark the checkbox to mark them for installation:

  • libcurl3-dev

  • evolution-data-server-dev
  • libdb3-dev
  • checkinstall

If you are done, press Apply and confirm. The package manager will now install the package files.

Now download the source code of syncevolution here.

In my examples, I suppose that you download everything to your desktop, as that is how my Firefox is configured. Go to your desktop (or another place where you stored your download), rightclick the downloaded file and press Extract.

Now open a terminal (Applications->Accessoires->Terminal) and enter the commands below:

cd Desktop/syncevolution-0.5/ ./configure --prefix=/usr

You’ll see a whole bunch of things you do not want to understand. Just wait until finished and notice the last few lines. If it says that you are missing some packages (e.g. libcurl3-dev but every packagename is possible), go back to step two and search the Synaptic Package Manager for the missing package, install it and start again with step three.

I assume that everything went fine. So now enter

make

This can take some time, in my case it took at least three minutes.

Then finish everything by entering:

sudo checkinstall

You have to enter ‘y’ and then you may choose a name for your package. Choose ‘Syncevolution’ and press enter twice. Another question will pop up: press enter to confirm the default settings. If everything went fine, you’ll find on your desktop a freshly created package named syncevolution_0.5-1_i386.deb.

Congratulations! (I remember the time that I could just download and install ActiveSync from the microsoft website… but hey we wanted to be stupid geeks-linux-freaks after all!)

2.2 Configure Syncevolution

First we need to copy some configurationfiles. Enter in the terminal (just copy/paste the whole bunch at once):

cp ~/Desktop/syncevolution-0.5/etc/scheduleworld_1 ~/.sync4j/evolution -r

Now there are four configuration files, each of which you have to edit manually. Type in the terminal:

gedit ~/.sync4j/evolution/scheduleworld_1/spds/sources/addressbook_1/config.txt

A texteditor named GEdit will pop-up. Find the word “SyncEvolution test #1” and change it into the name of your addressbook (default is ‘Personal’). It now will look like this:

evolutionsource = Personal

If your addressbook is protected with a username/password, you can enter these in this textfile too, somewhere at the end. Save and exit.

Do the same with the following commands, for your calendar:

gedit ~/.sync4j/evolution/scheduleworld_1/spds/sources/calendar_1/config.txt

And your todo list:

gedit ~/.sync4j/evolution/scheduleworld_1/spds/sources/todo_1/config.txt

We’re almost done. Just one more textfile to edit:

gedit ~/.sync4j/evolution/scheduleworld_1/spds/syncml/config.txt

In this file, find ‘deviceId = sc-api-nat’ and change it to ‘deviceId = sc-api-nat-yourname‘ where you may fill in your name or something unique.

Next fill in your usernumber and password which you got in step one, when you were signing up to scheduleworld.

You’re done!

To start the synchronisation, type in:

syncevolution scheduleworld_1

This can take a while, I did not see any output the first two minutes. If everything works out right, you now have your evolution-calendar synced with the schedule-world server. Check it out for yourself at www. scheduleworld.com. But remember: you will have to run the last command everytime to sync! You could of course make a script that would synchronise before you start Evolution…

STEP THREE: SYNC YOUR PDA WITH SCHEDULEWORLD

The last step we have to take is to setup our PDA to work with Scheduleworld. We therefore need to install an application named Funambol on our PDA.

Download Funambol here

There are modules for Blackberries, iPods, Palmtops and Windows Mobile PPC’s. I downloaded the Windows Mobile module (version 3.0.31) because that’s what I have (HP iPAQ 4150)

Unfortunately, it comes packaged in a windows installer file, with the extension .exe. So you have to boot into Windows (if you have a dual-boot setup) and install this file via ActiveSync. If you don’t have Windows (or if you want to be a really freakish Linux geek, and who doesn’t?), you can try to find a way to extract the .cab file from the exe file. It should go with a program named ‘orange’ but I did not manage to get it working on this file. If someone knows how to do this, or if someone manages to get the cab-file, I could probably make it available for download here.

I assume you succeed in installing your software on your pda. Now start the application. Go to Edit-Communication Settings. Enter your username (remember: the number) and password, and enter as server:

http://sync.scheduleworld.com/funambol.ds

Press OK.

Then go to Edit-Synchronization Settings and select Tasks (at least I did that, but feel free to try the other options). Press OK.

Now press Synchronize. The first time will take a minute or so (probably depending on the amount of events and contacts that you have). After that my experience is that it takes no more than six seconds to synchronize. You can of course log in into scheduleworld to see if your calendar indeed is updated. But if you are a real daredevil, you could of course run syncevolution immediately (remember: open a terminal and enter ’syncevolution scheduleworld_1′) and see if your PDA is synchronized with Evolution.

If so, you could easily make the last step: sync your PDA and Evolution with Google Calendars…. This is easily done via the preferences page at scheduleworld.com.

Update: Better alternative to Funambol?

As mentioned earlier, Funambol does not at this time support exceptions to recurrent events. This is a major drawback to me, because I use them a lot. If you don’t, be happy with Funambol if it works Ok. If you want to use recurrent events, or if you are in any way not content with Funambol, you could try out a Synthesis SyncML client. This program costs $25 but has a 30-day trial available. At this time I am within my 30 days. It seems to me that this client is somewhat more userfriendly. And what is important: it handles exceptions to recurrent events. So check it out for yourself. Installation is easier than funambol because you can download a CAB-file which you can copy to your PDA and then run and install. Goto extras->settings and give the url of scheduleworld mentions above. Enter your username (number) and password. Finally goto the tab Organizer and set the serverpaths to “card” for contacts, “cal” for events, “task” for.. tasks. Now sync. Thats it.

Good luck!

I did not find this out on my own. I would be nowhere without these forums:

An Ubuntuforum about Scheduleworld

A Scheduleworld forum about Evolution

A blog about a very complex sync-setup with Scheduleworld