This work is licenced under a Creative Commons Licence.
I sat down earlier today and decided that I really should be able to sync my calendar and contacts between my phone (Nokia E71) and my email client of choice Thunderbird. This was more complex in design, and yet simpler to achieve, than expected. I believe the method detailed would work for any Symbian S60 phone, and Funambol itself supports far many more devices than this and I suspect the procedure for those would be nearly identical.
Now, Funambol is a feature-filled, enterprise-grade, piece of software that could be used to sync all the hundreds of phones in a company with calendars and the like - and to push out email to every device (I also think it can do something with SMS messages too, but wasn't bothered about that so ignored it). They market themselves in a similar way to the Blackberry Enterprise Server I believe.
We don't need all these bells and whistles, but we can use it to do what we want; plus it's open source (there are paid licences and versions I believe)! What I have done is to install and configure the Funambol server on a machine on my home network and configured port forwarding on my (very basic) home ADSL router to point all traffic on the specified port to my Funambol server. This means that my phone can sync to it over the internet, as can any Thunderbird clients.
This sounds quite daunting to set up and I was not expecting to get it to work. I was definitely not expecting to get it to work in an afternoon by clicking around in the background while waiting for compilations of software and the like. This was made easy because there is fantastically detailed documentation available here. It gives instructions on how to install Funambol on both Windows and Linux, and steps you through various testing procedures. Basically, it's a case of downloading the binary from here, running the install script, and stepping through the instructions in the earlier linked manual. Don't be afraid to read it, it looks a lot scarier than it is.
If you don't wish to run and maintain your own Funambol instance, you can subscribe to one run by the commercial arm of Funambol itself. I have no idea how reliable or cost-effective this is, but I suspect it's not unreasonable.
So, after configuring the Funambol server, you simply create a new 'sync' on your phone that will connect over the internet to your Funambol server. It is possible to do this at a regular interval by using the Swim application on your phone. I'm amazed that Symbian phones don't have an inbuilt cron-like facility, but this does what we need this time. And there we go, we have our phone syncing to our Funambol server.
This is largely pointless until we install Lightning which integrates a calendar into Thunderbird (the 64bit version for Linux can be a little tricky to find, so here it is). This gives Thunderbird the capability to have calendars and tasks etc, which you can then sync with your Funambol server using the Funambol add-on for Thunderbird.
This is very much not a "how-to" guide, partly because I believe the documentation that exists is all rather good. This is meant to let you know that it's not as hard as you think!
If you want to use MySQL as your backend like the very end of the manual suggests, you can get the MySQL connector (which is not included) from here. Also, you'll notice that the install command shown in the manual is windows only; for a linux box you need to omit the file extension and run plain old './install'.