Funambol

Since SyncEvolution 0.9 with calendar and task support. Funambol supports iCalendar 2.0 in the current server, so this is enabled in the configuration template. Not all iCalendar 2.0 features are supported by the server, most notably support for meetings (drops attendees), meeting invitations (drops UID), detached recurrences (drops RECURRENCE-ID). See README.funambol for details.

Interoperability with the Funambol server was improved in SyncEvolution 0.9 by adding support for some vCard extensions (X-MANAGER/ASSISTANT/SPOUSE/ANNIVERSARY, #2418). Lost ACTION property has a work around (#2422).

To enable the full support for all data in a configuration created with SyncEvolution < 0.9, so that it exchanges items in the more suitable iCalendar 2.0 format, use:

  syncevolution --configure \
                --source-property sync=two-way \
                funambol calendar todo
  syncevolution --configure \
                --source-property type='calendar:text/calendar!' \
                funambol calendar
  syncevolution --configure \
                --source-property type='todo:text/calendar!' \
                funambol todo

Without the exclamation mark, format auto-negotiation would pick the less capable vCalendar 1.0 format because that is marked as preferred by the server.

Starting from Scratch

I was pretty flummoxed by the maze of advice and instructions as a new user of both Funambol and Syncevolution. Perhaps this will help the next person? Here's what I did to get a new syncevolution instance talking to funambol. Syncevolution installs with a funambol template. Copy the funambol settings from the template into an active config with: syncevolution -c funambol

You could use command line options for this next step, but I just edited the config to use my username and password (and to connect over https). If you don't like vim, use another text editor: vim .config/syncevolution/default/peers/funambol/config.ini -- the options are pretty self explanatory. Run syncevolution to see your available sources. Mine included this tidbit:

Evolution Address Book = Evolution Contacts = evolution-contacts:
   Personal (file:///home/myself/.evolution/addressbook/local/system) 
   Ubuntu One (couchdb://127.0.0.1)

I want to sync my couchdb addressbook, not my (empty) Personal address book, so I used syncevolution --configure --source-property 'evolutionsource=couchdb://127.0.0.1' funambol addressbook to designate CouchDB as the addressbook to sync. I could also have edited the config.ini file in sources/addressbook manually. I had to run syncevolution with syncevolution --sync slow funambol addressbook

UPDATE: there's something wrong with my setup. Sync would never complete and I found myself with over ten thousand contacts most of them in quadruplicate.