Your rating: None Average: 4.9 (15 votes)

SyncEvolution allows you to sync your contacts and calendar with SyncML and CalDAV/CardDAV servers on the Internet.

This is a beta release and some features may not work properly. Please always keep a backup of your data.

This package contains a newly written GUI for SailfishOS. It is still a work in progress and some features are still missing.

SyncEvolution will not be available on Harbour for the foreseeable future, as it violates numerous Harbour rules, including the installation of libraries, daemons, D-Bus services, and access to privileged PIM data.

Application versions: 
File syncevolution- MB27/01/2014 - 09:33


Jogi9990's picture

After some reboots and the update of sailfish to 1.0.4 I managed to see the templates...

PJW2273's picture

Unfortunately doesn't work for me - there are no service templates? Every time I install/reinstall the same thing. Can anyone offer advice? or point me to a webpage I can read?

ovekaaven's picture

Templates are in /usr/share/syncevolution/templates, there should be many of them shipped in the rpm. However, they are accessed through a D-Bus service (syncevo-dbus-server), and perhaps that is failing for some reason. The service keeps running even if you exit the GUI, since it's supposed to be able to sync in the background. It might even continue to run if you uninstall/reinstall SyncEvolution (well, it seems syncevo-dbus-server has some checks for that, but who knows). So, it might be a good idea to try killing syncevo-dbus-server (e.g. by using an app like Crest). It should start again the next time you start the GUI.

If it still fails after killing syncevo-dbus-server, perhaps you can use dbus-monitor (from the terminal) to see what happens when the GUI is asking for a list of templates (note that the GUI does this when it starts up, not when you choose the menu option).

By the way, did you, by any chance, reboot the phone after installing SyncEvolution, but before configuring it? SyncEvolution does install a service file that starts syncevo-dbus-server automatically when the phone boots, but I'm not 100% sure it works as it should.

conradhughes's picture

Thanks so much for doing this!  It's the first time my mobile device has been able to accommodate my calendar since Evolution gave up on Palm six years ago :)

I found that my syncevolution server timed out while the phone backed up my (large) calendar before sync, so modified my phone's config to set dumpData=0 (the server still creates backups).  The relevant file will be something like


on the phone, where NAME is the sync/peer name.

dschwert's picture

I think that recent versions of SyncEvolution can be run as server as well.

Is this true for the Sailfish OS version as well? I could not find any configuration options.

I'm still looking for a viable solution to sync Outlook calendar on a PC and Sailfish OS.




ovekaaven's picture

To run a server, you'd typically start "syncevo-http-server", not "syncevolution". It is available in the Sailfish package, but I've never tried it. It's a Python script, so you may need to install some extra stuff.

dschwert's picture

I gave it a try with both a N900 running Syncevolution and a PC with "SyncML Client for MS Outlook" as clients. Both did connect, but not sync. The error messages are not helpful (e.g. "500 Internal Server Error")...

The dependencies are OK: if you throw out the SSL stuff from the server script, then you just need available packages like python-dbus or python-twisted. (I don't understand why the script depends on SSL even if it's started as http:// ...)



ovekaaven's picture

Have you looked at the howto? It's at (it seems to be a bit outdated, but the basic steps are probably still mostly valid)

dschwert's picture

Yes, but I did not do not all steps.

I did not configure the data sources, but I did not have the impression that the errors were linked to that.

What would be the datapath to be used to sync to the default calendar?

syncevolution --configure --source-property evolutionsource=file://${datapath}/calendar ${peer} calendar





ovekaaven's picture

I'd suggest not setting the type and evolutionsource properties at all (they have different names now anyway, I think "type" has been split into "backend" and "syncFormat", and "evolutionsource" has been renamed to "database"). Allowing SyncEvolution to use defaults is supposed to be enough to use the default calendar. But if you want to be sure, you can always explicitly set "backend=mkcal" and "database=Default", or whatever "syncevolution --print-databases backend=mkcal" shows.

ovekaaven's picture

Perhaps it's possible to make some user-friendly frontend for that. Do you think many users are going to want to do this?

dschwert's picture

I have no idea whether the Outlook plugin is working at all.

If yes, then I see a need for a nicer frontend.

I think that the use case is quite common:

  • company PC running Outlook connected to a company Exchange server
  • private Jolla phone without access to company network

Currently there's no solution for this...



ovekaaven's picture

I'm not convinced. If the company wanted you to be able to sync your Outlook, they would probably give your phone access to the Exchange server. If they don't, then you're probably breaking company rules by trying to sync anyway, and that doesn't sound like it would be very common (hopefully).

Anyway, what does the log files say?

dschwert's picture

You can always get a company phone if you want, but that won't be a Jolla. I doubt that you'll find many companies that would integrate a Jolla into the (W)LAN, while a Syncevolution server could be run over USB. Maybe, a kind of proxy server would be an option.

The output of the server script when I try a one-way transfer from the client to the server (as the Jolla calendar is empty)::

[INFO] syncevo-http: listening on port 9000
[INFO] syncevo-http: new SyncML session for
[INFO] syncevo-dbus-server: /org/syncevolution/Server: ready to run
[INFO] syncevo-dbus-server: /org/syncevolution/Server: matched deviceID FonlowSyncMLClient[snipped] against config x220 (/home/nemo/.config/syncevolution/default/peers/x220)
[INFO] sync: /org/syncevolution/Session/3928929341393155416: memo: inactive
[INFO] sync: /org/syncevolution/Session/3928929341393155416: todo: inactive
[INFO] sync: /org/syncevolution/Session/3928929341393155416: creating complete data backup of source calendar before sync (enabled with dumpData and needed for printChanges)
[INFO] sync: /org/syncevolution/Session/3928929341393155416: Local data changes to be applied during synchronization:

[INFO] sync: /org/syncevolution/Session/3928929341393155416: *** calendar ***
[INFO] sync: /org/syncevolution/Session/3928929341393155416: Comparison was impossible.
[INFO] sync: /org/syncevolution/Session/3928929341393155416:

[ERROR] sync: /org/syncevolution/Session/3928929341393155416: The connection is closed
[ERROR] syncevo-dbus-server: /org/syncevolution/Server: child process quit because of signal 11

On the client side I get this:

...Preparing local data...; Preparation completed; Total number of changes to be sent to server: 15; The connection fail. Please check the server URL; Sync is not complete

P.S.: When trying to sync the N900 calendar to the server script, it seems that there are two sync runs: the first is "aborted on behalf of user (local, status 20017)", the second one due to "signal 11".

Regards, Dietmar

ovekaaven's picture

Oh great. "signal 11" means "Segmentation fault". Might be hard to figure that one out, unless it's possible to dig up more clues (maybe with more logging or something). Hmm...

dschwert's picture

That's probably only possible by running syncevolution under a debugger, which is out of scope for me (I could do so for the Python script, but not for the C part).

If you want, I could send you the modified server script...

ovekaaven's picture

Sure (you can send to, but if you want to solve this problem, I suggest joining the SyncEvolution mailing list and get the experts there to help you out.

sfbsfb's picture

really great app, thank you so much

robomike's picture

Hi all, I followed the instructions and can receive data from my OC now. Calendar was syncing fine (I just tested one way), but failed on syncing contacts. SyncEvolution gets data from the OC, but is unable to access to the local database: "failed to Open QTContact database org.nemomobile.contacts.sqlite, error code 1". I wonder what to do now. The contact db seems to reside under /home/nemo/.local/share/system/privileged/Contacts/qtcontact-sqlite/contacts.db, but how to configure that? Please help!

ovekaaven's picture

I think "error code 1" is the "DoesNotExist" code. As far as I know, you cannot configure the file name directly, only which QtContact manager to use. The nemomobile manager has the file name hardcoded inside, I think. I'm not sure which instructions you followed, but if you're using command line, the local SyncEvolution database should be either configured as "qtcontacts:org.nemomobile.contacts.sqlite:" (without the quotes), or left empty to use the default. (Hmm. I could probably try to make it work to set the database to "org.nemomobile.contacts.sqlite" without the "qtcontacts:" part in some future update, assuming I remember it.)

robomike's picture

Yeah, THANKS! That was the essential hint. I left it empty before to use the defaults, but got the error. Now I changed configuration to "syncevolution --configure sync=two-way backend=contacts database=qtcontacts:org.nemomobile.contacts.sqlite owncloud contacts" and it works. Maybe the "qtcontacts:"-part was missing before? Great work, thank you all. 

Victorious's picture

Hello! Dear Ovekaaven! Please tell me step by step how I can sync contacts and calendar Jolla with ownCloud. Through the browser can go, set up synchronization with "ownNotes for SailfishOS", but using "SyncEvolution" - does not work ...

argonius_ch's picture


I succeeded by following these instructions: In case you use https you may be need to add the certificate to jolla:

After setting everything up I still got error messages. I then changed mode to Slow (Merge) for the first sync. After that it worked also in two-way mode.

Good luck!

Victorious's picture

Thank you very much! But I also tried ... I always gives an error ...

tanghus's picture

This is great Ove. I didn't dare asking if you were going to port it ;)

sremes's picture

It does not seem possible to edit (or delete) calendar events synced from a calendar configured with SyncEvolution (pulley menu is not simply there for some reason). In my case I have Owncloud i.e. CalDAV. Also new events created on phone cannot be synced to Owncloud (but that's probably because the calendar app won't use the same calendar for the new events, and you can't select default calendar for those). Calendar apps's "Manage calendar" menu actually shows now two "Default"-named calendars with different colors. 

This support for other calendars would probably really need to be provided by the native calendar app or some plugins :)

ovekaaven's picture

That's interesting (and should be impossible, SyncEvolution doesn't create new calendars by default, it uses the main calendar by default - hence, I can delete events synced by SyncEvolution just fine). How did you configure SyncEvolution, and how did you set the calendar it should use? What does "syncevolution --print-databases backend=calendar" say? (You can email me at

sremes's picture

Actually, this behaviour now changed with the latest update today. It now works as it should, correctly using the default calendar. Not sure what was happening before :).

Just for information to anyone who might be configuring this, I chose the WebDAV option to create calendar/contacts config, and there left the "Sync URL" empty, and filled Contacts/Calendar DB both with full URLs. Contacts as "https://host/owncloud/remote.php/carddav/addressbooks/username/contacts" and Calendar as "https://host/owncloud/remote.php/caldav/calendars/username/defaultcalendar/".

viq's picture

Where can I put my CA cert for it to be recognized by SyncEvolution?

ovekaaven's picture

SyncEvolution uses OpenSSL, so you could probably install CA certificates wherever OpenSSL looks for them (/etc/ssl/certs, I think, I'm not yet sure how to install certs on Jolla). (You could also try to configure SyncEvolution's "SSLServerCertificates" option, but I think that option only works for SyncML, not WebDAV.) Or maybe just take the easy route, keep certificate checking disabled in the config...