(X) caution: The method described here is applicable for desktop(Unity 7) only. It may not work properly on Ubuntu Touch(Unity 8)

This section explains how to use local syncing for CalDAV and CardDAV. Both protocols are based on WebDAV and are provided by the same backend. They share username/password/syncURL properties defined in their target config.


* Syncevolution >=1.32

* A remote caldav/carddav server with a valid root sync-url(i.e generally

* If the server has one URL as starting point instead of DNS auto-discovery then root sync-url is required.

(i) Fruux caldav/carddav server is used in this example.

Setup (Calendar-Sync-FRUUX)

Sync Scenario

Fruux Calendar Name

Evolution Calendar













(i) One can choose any arbitrary peer name.

(OK) Some servers require proper ca-certificates to be installed. For example, If a self-signed certificate was used for ownCloud, this will have to first added to the list of trusted certificates. To do this calls via the browser ownCloud on, click on the lock next to the address bar and stores the certificate as meinserver.crt (replace your own server name). Now copy the certificate to /usr/share/ca-certificates/ and update the list with:

sudo dpkg-reconfigure ca-certificates

Synchronization between work calendars is shown here

1. Create a peer for fruux calendar

syncevolution --configure --template webdav syncURL= password=***** target-config@fruux

The syncURL is optional if the username is an email address and the server supports auto-discovery of its CalDAV and/or CardDAV services. However, the protocols do not uniquely identify this default collection. The backend tries to make an educated guess, but it might pick the wrong one if the server provides more than one address book or calendar. It is safer to scan for collections manually with --print-databases and then use the URL of the desired collection as value of database.

To scan for collection use following command:

syncevolution --print-databases backend=caldav username=yourusername "password=*****" syncURL=

(i) Fruux does't support auto discovery. One has to provide full remote address-book path for fruux. It may work for other calendar server.

2. Create a new source for work calendar

syncevolution --configure backend=evolution-calendar database=Work @default workcal

(i) If it is already created during other sync processes(i.e google-caledar), then this step is NOT required.

To list all local databases,one can run following command at terminal-prompt:

syncevolution --print-databases

3. Find remote calendar (i.e Work) source url in fruux

Login to fruux. click Calendars->Work (create a new calendar Work if necessary) . It will reveal the source url of the calendar.

Copy the source url.

4. Add a remote database to the source (workcal)

syncevolution --configure database=******/ backend=caldav target-config@fruux workcal

Replace database with the source url copied from previous step.

5. Connect remote calendars with local databases (sync-config)

syncevolution --configure --template SyncEvolution_Client syncURL=local://@Fruux username= password= fruux workcal

6. Add a local database to the source (workcal)

syncevolution --configure sync=two-way database=Work fruux workcal

7. Start syncing (First-Time)

syncevolution --sync refresh-from-remote fruux workcal

(i) For the first-time sync it is strongly recommended to use -- sync refresh-from-remote or --sync slow option during the sync to avoid duplicity.

(X) Caution: "refresh-from-client" option WILL DELETE EVERYTHING IN EVOLUTION CALENDAR (for caldav/carddav client is remote server & server is local client i.e. syncevolution) AND REPLACE WITH GOOGLE-CALENDAR.

To find all possible sync-option run following command at terminal-prompt:

syncevolution --sync ?

General sync-options are explained below:

Sync Option



Normal two-way sync


Exchange all data. Recommended for first time sync to avoid duplicity


Deletes everything on client & replaces with server


Deletes everything on server & replaces with client


Deletes everything on server & replaces with client (opposite for caldav/carddav)


Deletes everything on client & replaces with server (opposite for caldav/carddav)

8. Start Normal Sync (After first sync)

syncevolution fruux workcal

This will start two-way sync which is the default sync-option defined in step 6.

For other calendars repeat steps 2,3,4,5,6 & 7 with separate data-source & calendar-id for each calendar.Multiple data-sources can be synced at the same time:

syncevolution fruux workcal personalcal

To sync all sources under a peer run:

syncevolution fruux be continued.

SyncEvolution/Synchronize-evolution-data-with-caldav-cardav-server (last edited 2016-10-05 08:16:35 by khurshid-alam)