Akonadi is a program that sits between applications and enables them to share calendar and contact information in an application indepdendent way.
I have used it to sync Kontact (KMail etc...) with Google Mail contacts / calendar and in turn, synced that with my Nexus One Android phone.
This note describes how to get Kontact to sync with Google, however, for me, there is still a significant bug: When I change contact details within Kontact, Akonadi crashes, and the contact information is removed from Google (although it stays in Kontact).
There is currently a known bug in libgcal / akonadi-userdata (versions 0.93 & 1.0.1), which are used to synchronise with Google. The bug means that any contact with more than one email address or telephone number, won't synchronise correctly. More information can be found here.
By default, Mandrive 2010 comes pre-installed with Akonadi, but if your system hasn't got it, here is what I am using:
Launch AkonadiTray from the start menu
Get mysqld to Work Correctly
In a terminal or console, type the following
akonadictl stopAdd Your Google Account
On the Akonadi Resource Configuration tab, select Add, and add the Google Calendar Resource.
When prompted, enter your google username (ignoring the @gmail.com or @googlemail.com), and your google password - select OK.
The system immediately connects, and if your username or password is wrong, you will be told so here.
Repeat the activity for the Google Contacts Resource, and that's it, Akonadi is configured.
Open Kontact, and go to the Calendar application. Near the bottom of the screen, is the area where you can select which calendar to use. Click on the green '+' to add a new one.
Now, select the Akonadi entry, which will probably be at the top of the list.
Give the entry a meaningful name (e.g. Google Calendar), and create it.
Make sure the calendar is enabled - you can also set it to be the default one if you wish.
That's it - everything synced.
The procedure for adding Contacts is identical (but the process is performed on the Contacts page, of course).
To automatically launch the akonadi server when you start Kontact, it is essential that you make sure that Akonadi is the default for Contacts and Calendar.
If you have been messing around, and wish to start over, this is what you need to do:
Shut down Akonadi (shut down the tray application, and kill all the akonadi processes).
Shutdown Kontact and its applications (KMail, KOrganizer etc...)
Shutdown the Kontact systray application (e.g. KOrganizer Reminder)
Remove the akonadi files in the hidden directories:
Typical SQL Errors
These errors may be seen in the SQL log, and are addressed by the blog above:
100206 10:25:29 InnoDB: Started; log sequence number 0 1055498
100206 10:25:29 [Warning] Can't open and lock time zone table: Table 'mysql.time_zone_leap_second' doesn't exist trying to live without them
100206 10:25:29 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
100206 10:25:29 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.42-log' socket: '/home/user/.local/share/akonadi/db_misc/mysql.socket' port: 0 Mandriva Linux - MySQL Standard Edition (GPL)