Kmail/Korganizer and Nokia phone synchronization

When Nokia bought Trolltech, the makers of QT, one could assume that Nokia PC-Suite for Linux was on the horizon… But so far nothing has happened. So how do I synchronize my phone contacts and agenda with KDE software? Easy…

In my case I’m using KDE and Kmail/Korganizer, so the following post is how to accomplish this syncronization with Kmail address book and Korganizer Calendar using the Opensync syncronization framework. I’m using Opensync version that comes with Kubuntu 9.10, that’s 0.22.

Requirements: Latest KDE SC 4.4 release, a bluetooth dongle (in my case I’ll synchronize using BT), Akonadi and Kmail/Korganizer

1st) Make sure that your phone is detected. In my case it’s an Nokia 6280, and using one of these: on my desktop PC, that works on Linux/Kubuntu 9.10 without any issue (and cheaper than this is probably impossible…):

Let’s see if the bluetooth dongle is detected: lsusb

Bus 008 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Detected and Kbluetooth works, now execute the command: hcitool scan and the detected phones should appear:

Scanning ...
 00:3B:34:91:9A:56       Nokia 6280
 00:75:1F:88:08:AF       VF541

Take note of the hexadecimal address for the phones.

We also need to make sure that the phones do have the SyncML client, using the sdptool command browse: For example: sdptool browse 00:3B:34:91:9A:56

And on the output a section like this:

Service Name: SyncML Client
Service RecHandle: 0x1000e
Service Class ID List:
 UUID 128: 00000002-0000-1000-8000-0002ee000002
Protocol Descriptor List:
 "L2CAP" (0x0100)
 "RFCOMM" (0x0003)
 Channel: 11
 "OBEX" (0x0008)
Language Base Attr List:
 code_ISO639: 0x656e
 encoding:    0x6a
 base_offset: 0x100

should appear. In my case, only the Nokia 6280 has the SyncML client. The Vodafone 541 does not have this client so synchronization will be impossible. I also have a Nokia 2630, and it has BT and the SyncML client.

So you need now to take note of the following information: The phone address and the channel address of the SyncML client, in my example 11 (see above).

2nd) Make sure that you have the following msynctool plugins installed: file-sync and syncml-obex-client.

For that just execute the following command: msynctool –listplugins

If they are not available, install them using: sudo apt-get install opensync-plugin-file opensync-plugin-syncml

3rd) Create a directory on your home directory for storing information related to the synchronization. Please note that you never, EVER, should delete any information on this directory. If you do its the same as deleting data on the phone.

mkdir ~/nokiasync

4rd) Create the opensync syncronization configuration:

     msynctool --addgroup nokiasync
     msynctool --addmember nokiasync file-sync
     msynctool --addmember nokiasync syncml-obex-client

5th) Edit the configuration for each member of the synchronization group:

  • On the file-sync member we need to put the full path to the syn directory
  • On the syncml-obex client we need to put the MAC address of the phone (the hexadecimal numbers that we’ve found above) and the channel number.

So execute the following commands:

Edit the first member file-sync: msynctool –configure nokiasync 1

The text editor will show something like:


Make sure that USERNAME is your Linux username, namely bob, alice, whatever. A command like ls -l /home/USERNAME/nokiasync should return NO error.

Just press CTRL-X to exit and Y + ENTER to save.

Let’s configure now the Syncml client: msynctool –configure nokiasync 2

The file shown should look like:

<identifier>PC Suite</identifier>

Just make sure that XX:XX… is EXACTLY your mobile phone address, and YY is the channel shown by the sdptool. In the above case it’s  00:3B:34:91:9A:56  and 11 respectively. So the file should look like:

<identifier>PC Suite</identifier>

Then CTRL-X, Y and Enter to save, and we are ready.

6th) Now is a good idea to backup your phone address list and agenda. Do it now! If things go wrong you need a backup. Also the first rule of good a good backup is that restores are more important than backups, so backup AND restore first so see IF you have a VALID backup. You’ve been warned… 🙂

7th) Now we are ready:

msynctool –sync nokiasync

Because I’m using bluetooth I’ll be asked for a PIN by my phone, and I’ll need to provide it to the PIN question dialog on the computer. After the pin, synchronization takes place, the first one is from the phone to the computer.

After this, on the directory nokiasync you should have some files. These files are your contacts and calendar from the mobile phone. DO NOT DELETE THEM.

8th) Akonadi configuration.

We need to configure Akonadi now. It’s quite easy. Just run akonaditray, and right click on the globe icon that appears on the KDE system tray, and select configure.

For the calendar:

  • On the Akonadi resources tab, press ADD and select the KDE Calendar (Traditional) plugin. A wizard will appear. Press next.
  • Then select more or less at the middle: Calendar in Local Directory and press Next
  • Give as the location the nokiasync directory that we’ve created, and where the opensync works for syncing with our mobile phone. Press Next
  • Give it a name, in my case Nokia Calendar, and press Finish.

OPTIONAL: For the Contacts (For reference only, Korganizer will not use this. See below) :

  • On the Akonadi resources tab, press ADD and select the KDE Adress book (Traditional) plugin. A wizard will appear. Press next.
  • Then select the first option: Folder and press Next
  • Give as the location the nokiasync directory that we’ve created, and where the opensync works for syncing with our mobile phone. Keep the format as vcard, and press Next
  • Give it a name, in my case Nokia Contacts, and press Finish.

That’s it. The akonadi resources are configured.

8th) Korganizer configuration.

For adding the calendar follow these instructions on this post: but instead of adding the Google resources add the Nokia Calendar resource

For the address book, just go to the Contacts section, and on the Address book, select Add Address Book with a right click on the mouse.

  • Select the KDE Adress book (Traditional) plugin. A wizard will appear. Press next.
  • Then select the first option: Folder and press Next
  • Give as the location the nokiasync directory that we’ve created, and where the opensync works for syncing with our mobile phone. Keep the format as vcard, and press Next
  • Give it a name, in my case Nokia Contacts, and press Finish.

And that’s it Nokia<->Korganizer syncronization…

9th) Testing:

Create a contact and a calendar event on Korganizer, but for the Nokia resources. Execute the synchronization command: msynctool –sync nokiasync

Your mobile phone should report that it synchronized 1 or two items. Check your contact list for the new contact. Check your agenda for the new event.

Now repeat the opposite: Create a phone contact and event, and synchronize. It should appear on Korganizer.

Last thoughts:

What happens if the syncronization directory is a sub-directory of your Dropbox folder…???? 🙂

Automatic synchronization of all your agenda and contacts on all your computers! This in fact completely implements the purpose of plugins like akunambol and the Funambol server at this level of functionality…

You can now: Create a contact on your mobile phone, sync it, your local computer sees the change, but Dropbox also sees it sync’s it into the cloud, and into your other computers…

The phone synchronization ideas and howto’s where based on this post:

Finally, this also just brought to my ancient phone a new lease of life. No new Android phone for me… and by the way, after synchronization, the Nokia 6280 screensaver just fails to start…. and the Vodafone VF541 needed a restart… Nothing is perfect.

Korganizer and Google Calendar on Kubuntu 9.10

These are the simplest instructions for making Kmail/Korganizer to syncronize with Google Calendar.

What we will achieve with this setup: Two things:

  • Events created online on the Goggle Calendar will appear on your Korganizer interface
  • Events that you create on Korganizer associated to the Google Calendar provider will appear online on Google Calendar Web site


I’m running Kubuntu 9.10 with the latest KDE 4.4 release available from the backports.

First, install the akonadi-kde-resources-googledata: sudo apt-get install akonadi-kde-resource-googledata

Then we need start the Akonadi Configuration application:  ALT-F2 to show the run window, and the write akonadi and then the suggested akonadi configuration command  should appear. Another way, is to open a shell session and run akonaditray and a blue globe sould appear on the System Tray. Right click and select configure.

On the configuration Window, select ADD.

You should have the Akonadi Google Calendar Resource and Google Contact Resource. If these resources do not appear, you need to restart Akonadi, just go to the other tab Akonadi Server Configuration and hit the restart button.

Add these sources to your list of  Akonadi Resources, and make sure that you configure your username and password correctly. A green icon next to the resource will show that connection to Google is active. Right after the setting of your username and password, a rapid text message will show the synchronization process is going on.

Next we will need to configure Korganizer.

Open it up and make sure that you can see the window Calendars: The next screenshot already shows the configured calendar sources:

Press the green plus button, and select Akonadi.

On this window you can now add the sources that where configured previously on the akonadi configuration console. Give it a good name. In my case it’s Akonadi Resources, but if the only source is only the Google Calendar data, then a name like Google Calendar is good. This is because it will simplify the context menu for copying and moving, just like Copy -> Google Calendar instead of Copy -> Akonadi Resources like my case.

Add to this Akonadi Resource all the sources that you want to appear on Korganizer, namely the Google Calendar.

Press Ok, and that’s it.

All your Google Calendar Data should appear on your Korganizer.

For making an event from Korganizer  to appear on Gcal, just right click it and  select Copy or Move to the Akonadi Resource. then select the Google Calendar provider.

Thats’ it.

What we can do now:

Two things: Synchronize one way only the MS-Exchange Calendar with Korganizer. A nice solution is here:

Then (!) you can copy these events to Google Calendar… Cool

The other thing is to use OpenSync with akonadi to sync your mobile phone with Korganizer, but so far I haven’t try this.