Renato Filho | 11 Aug 01:04 2015


Hey guys,

I am using the DBUS API for a while do to simple syncs, but now I want
to sync all remote calendars from Google(Webdav) into individual local
calendars (EDS-calendars).

I am trying to reproduce the steps of this tutorial[1] with DBUS API.
Until now I think I did it right since I can sync it manually in the
end using:
    syncevolution --sync refresh-from-remote <peer-name> <source-name>

But I fail to sync it using the DBUS API. Probably I am missing
something during the implementation. Could you guys help me with that?

These are a high level commands of the translation from command line to DBUS API

Syncevolution --configure
--template Google username=uoa:ACCOUNT_ID,google-calendar
target-config <at> gcal

syncevolution --configure
database= <at>
backend=caldav target-config <at> gcal workcal

// create a new session with name "gcal"
session = Server.StartSessionWithFlags("gcal", ["all-configs"])
// get Google Template
(Continue reading)

Téglás János | 29 Jul 18:09 2015

bluetooth error

After upgrading to fedora 22, a SonyEricsson v640 phone cannot sync with evolution via bluetooth. Under
Fedora19 it has been working well. No hardware has been changed. Bluez file transfer is working. In the
syncevolution 1.5.1-1 GUI window no device can be found, neither a button to add one. I copied the old
backup config files to .config/syncevolution/... and I get this error:
SAN datastore todo uri Task type 6 mode 206
Connecting Bluetooth device with address (the device address ) and channel 10
OBEX progress
OBEX Transport: get header who from connect response with value SYNCML-SYNC
Server sending SAN
ObexTransport send is called
OBEX progress
OBEX Request 2 got a failed response Bad Request
Server Alerted Sync init with SANFormat 12 failed, trying with legacy format
starting SAN 11 auth (a long alfanumeric here)== nonce SyncEvolution session 1 server PC Suite
SAN datastore addressbook uri Contact type text/x-vcard
SAN datastore calendar uri Calendar type text/x-vcalendar
SAN datastore memo uri Memo type
SAN datastore todo uri Task type text/x-vcalendar
SAN with overall sync mode 206
Here the sync terminates.

What can I do?

Thank You for your help,

Marc Bantle | 27 Jul 18:30 2015

Comparison was impossible.

Hi all,

since early May I am using syncevolution from command line to sync my bq
E4.5 against my desktop machine syncevolution syncml-http-server.
Everything was working as expected.

Since mid of June (according to the logs) I permanently get the 

  'Comparison was impossible.' 

warning for all (memo, contacts, calendar, todo).

I additionally set logdir and maxlogdir entries as suggested in [1]
(which where commented out before). This mainly changed the location
where the dumps are written to and prevented log directories from being
auto-deleted during the following update, if they do not contain
changes. This makes analysis easier.

If I look at the previous database dumps, that are given as comparison
sources in the log files [2], all the files (e.g. VCARD-entries for
addressbook) seem to be there and contain reasonable data. A diff of a
previous *.after-dump and its successor *.before-dump will show the
expected changes, if an entry was modified.

So for me its not obvious, why I get the above message.

Any ideas what else can be causing the message?


(Continue reading)

Vincent | 13 Jul 12:02 2015

Caldav notes, memos, tasks and todo support

Hello, here are my two questions:

1- First, what kind of different storages the Caldav RFC accepts? I was not able to retrieve this information, because lot of people seem confused between these four words: notes, memos, tasks and todo.

2- Second, SyncEvolution support two different backends for the things I understand to be the same concept, and give this description in the documentation:
  • memo: plain text notes
  • todo: task list
    So what is the difference between memo and todo? ownCloud and Thunderbird Lightning seem to call "task" the todo concept, and I've never seen a "memo" implemented.

Enlight me please!

SyncEvolution mailing list
Graham Cobb | 10 Jul 16:12 2015

Handling event changes from Exchange

I have just noticed that events are being corrupted when syncing from

The problem is that when an event changes, EAS can send a "change"
notification, with only the fields that have changed, not the whole new
event.  activesyncd then creates a partial (and invalid!) VEVENT with
only the changed fields.

Syncevolution then replaces the event with just the information from the
partial VEVENT, losing all the rest of the information.

To make it clearer, here is an extract from the EAS protocol message
sent when one attendee's status has to be updated for an existing event:

            <Attendees xmlns="Calendar:">

activesyncd generates:

PRODID:-//Meego//ActiveSyncD 1.0//EN

And syncevolution ends up replacing the whole event with:

PRODID:-//Synthesis AG//NONSGML SyncML Engine V3.4.0.47//EN

The question is, what do I do about this?  Is there any way for
syncevolution to process updates and merge them with the existing
object?  If not, does activesyncd have to go and refetch the entire
updated object from Exchange?

Vincent | 1 Jul 23:28 2015

Sync contacts and calendar on Ubuntu Phone with SyncEvolution (CardDav & CalDav protocols) from an Owncloud instance under self-signed certificate


I've tried to follow this tutorial for Ubuntu Touch:

But I met an error from syncevolution:
PROPFIND: Neon error code 3 = NE_AUTH, HTTP status 401: Could not authenticate to server: rejected Basic challenge

Any idea?

SyncEvolution mailing list
Graham Cobb | 19 Jun 01:02 2015

Valid VEVENT from activesyncd being converted to invalid VEVENT somewhere in syncevolution?

I have been trying to track down a problem that occurs when syncing my
Exchange calendar with local files.  I am ending up with a few events
with missing DTSTART (which is invalid, of course).

It looks as though activesyncd is providing a valid VEVENT to
syncevolution: [I have removed ATTENDEE and PARTICIPANT lines and
modified my email address]

PRODID:-//Meego//ActiveSyncD 1.0//EN
TZID:(UTC) Dublin\, Edinburgh\, Lisbon\,
TZNAME:(UTC) Dublin\, Edinburgh\, Lisbon\,
TZNAME:(UTC) Dublin\, Edinburgh\, Lisbon\,
DTSTART;TZID="(UTC) Dublin, Edinburgh, Lisbon,":20141007T140000
LOCATION:Online Meeting
DTEND;TZID="(UTC) Dublin, Edinburgh, Lisbon,":20141007T170000
 property. Removing entire property:
ORGANIZER;CN=Graham Cobb:graham.cobb@...

I believe that is a valid VEVENT, although note that it has neither a
SUMMARY: nor DESCRIPTION: line. [The UID has wrapped in the email but is
really formatted correctly]

When the event is saved as a file it has become:

PRODID:-//Synthesis AG//NONSGML SyncML Engine V3.4.0.47//EN
LOCATION:Online Meeting
ORGANIZER;CN="Graham Cobb":mailto:graham.cobb@...

Note that there is no DTSTART! (And the DTSTAMP has been set to the
current time, and a fake SUMMARY has been created).  The missing DTSTART
makes the VEVENT invalid.

Looking through the logs, I found this section during the parsing of the

[...lots of timezone parsing...]
          <li><i>[2015-06-18 23:06:36.192]</i>&nbsp;<span
class="exotic">parseMimeDir: VTIMEZONE with ID='(UTC) Dublin, Edinburgh,
Lisbon,' parsed to internal time zone 'GMT'</span></li>
          <li><i>[2015-06-18 23:06:36.192]</i>&nbsp;<span
class="exotic">parseMimeDir: property DTSTART parsing delayed,
          <li><i>[2015-06-18 23:06:36.192]</i>&nbsp;<span
class="exotic">parseMimeDir: property DTEND parsing delayed,
          <li><i>[2015-06-18 23:06:36.192]</i>&nbsp;<span
class="incoming">parseMimeDir: property not parsed (unknown or not
storable): X-LIC-ERROR;X-LIC-ERRORTYPE=VA</span></li>
          <li><i>[2015-06-18 23:06:36.192]</i>&nbsp;<span
class="incoming">parseMimeDir: property not parsed (unknown or not
storable): X-MEEGO-ACTIVESYNCD-MeetingSta</span></li>
          <li><i>[2015-06-18 23:06:36.192]</i>&nbsp;<span
class="incoming">parseMimeDir: property not parsed (unknown or not
storable): X-MEEGO-ACTIVESYNCD-NativeBody</span></li>
          <li><i>[2015-06-18 23:06:36.192]</i>&nbsp;<span
class="error">parseMimeDir: missing 1 of 1 mandatory properies</span></li>
          <li><i>[2015-06-18 23:06:36.192]</i>&nbsp;<span
class="error">Failed parsing item</span></li>
          <li><i>[2015-06-18 23:06:36.192]</i>&nbsp;<span
class="script">- PARSETEXTWITHPROFILE() function result = <span
class="value">0</span> (integer)</span></li>
          <li><i>[2015-06-18 23:06:36.192]</i>&nbsp;<span
class="exotic">- Evaluated unstored expression</span></li>

The two lines with class="error" don't look good!

I think this is a syncevolution bug, not an activesyncd bug.  Do you
agree, or am I missing something?

Graham Cobb | 18 Jun 00:11 2015

Error: cannot store password in GNOME keyring, not enough attributes

I am trying to move a configuration which works on my desktop system
(running KDE) to a headless system.

I know about running DBUS and gnome-keyring -- I am using Patrick's to do the heavy lifting.  In fact, I can successfully
sync between my Exchange account and a local filestore.

So, I moved on to what I thought would be the easy part: syncing the
local filestore with an Owncloud server (i.e. webdav).

However, attempting to configure that is giving me an error message:

syncevolution --configure --template none username=aaa password=bbb
printChanges=1 loglevel=4 target-config <at> Owncloud
[ERROR] sync password for target-config <at> owncloud: cannot store password
in GNOME keyring, not enough attributes (user=grc). Try setting syncURL
or remoteDeviceID if this is a sync password.

The exact same configure command works fine on my desktop system (where
I am using KDE keyring).

Here is a slightly simplified list of the commands I am using...

[The  <at> FilesMaster context is already set up to provide access to the
local filestore -- it has been used for the Exchange sync]

syncevolution --configure --template none username= password=
printChanges=1 loglevel=4 Owncloud <at> FilesMaster

syncevolution --configure syncUrl=local:// <at> Owncloud peerIsClient=1
loglevel=4 Owncloud <at> FilesMaster

syncevolution --configure sync=two-way uri=contacts loglevel=4
Owncloud <at> FilesMaster contacts

syncevolution --configure --template none username=aaa password=bbb
printChanges=1 loglevel=4 target-config <at> Owncloud

^^^^This is the command generating the error.  If that had worked I
would have gone on to do:

syncevolution --configure sync=two-way uri=contacts loglevel=4
target-config <at> Owncloud contacts

syncevolution --configure --template none backend=carddav
 <at> Owncloud contacts

These all work on my KDE system.  Any idea what I need to do to get
GNOME keyring to store my password?

By the way, leaving the password=bbb off the --configure command and
adding it to the --sync command works.  But I am trying to store the
password in the keyring so it doesn't have to be included in the cron
command line itself.

Daniel CLEMENT | 16 Jun 14:27 2015

Some remarks about online SyncML services

I was more or less forced to try the various SyncML services supported
by Syncevolution lately. I thought perhaps I could share some remarks I
have made about them.

1) OVI (for reference - dead and buried thanks to Microsoft)

2) Mobical
... has become Everdroid, which in turn has become Keep
( ). But it's now nothing more than an
addressbook backup service. It no longer handles calendar, tasks nor
memos (so they could well be removed from the Mobical template).

3) Funambol
... (AKA OneMediaHub) was my favorite until they played a bad trick on
some of their users two months ago. 1st, they began rejecting normal
(non-SSL) connections--which makes some sense after all. But 2nd (and
there I'm guessing), without telling anyone, they switched from SHA1
signing scheme to SHA2. While Syncevolution handles this easily, that
was not the case of my aging Nokia E72 which has never heard of SHA2. So
along with several old phone users I was cut off from Funambol on the
smartphone side.

4) Memotoo
... is not free, but the small fee is much less than a new phone. They
have been smart enough to devise a fallback address
( ) so that legacy (not SHA2-compliant)
devices can still take advantage of SSL connections. (But the normal
http address is still working.) I also appreciate that the one-way sync
can be triggered directly from their server (of course I can do that
from Syncevolution, but not from my phone). It's my best choice so far.

Best regards,

Patrick Ohly | 8 Jun 16:00 2015

SyncEvolution 1.5.1 released

About SyncEvolution

SyncEvolution synchronizes personal information management (PIM) data
via various protocols (SyncML, CalDAV/CardDAV, ActiveSync). It syncs
contacts, appointments, tasks and memos. It syncs to web services or to
SyncML-capable phones via Bluetooth. 

Binaries are available for Linux desktops (using GNOME Evolution, or
KDE's Akonadi), for Maemo (Nokia N900, N9) and Sailfish OS (Jolla

About 1.5.1

Maintenance release. Binaries now also get compiled for Debian 8.0


* avoid time zone issue with Funambol server

  The Funambol iCalendar 2.0 parser fails to handle time zones
  with quotation marks around the TZID value, which is something
  that SyncEvolution started to add in While it is valid
  to quote like that, it is not necessary, so avoid quoting in
  this case to restore interoperability.

* syncevo-http-server: stop using deprecated twisted.web.error (FDO #90419)

  This has become a real problem for example on Fedora 22 where the
  old name is no longer available.

* syncevo-http-server: use TLS instead of SSLv3

  This fixes a potential security risk and connection problems with clients
  that don't support SSLv3 anymore.

* syncing: avoid segfault for invalid text inside items (FDO #90118)

  As reported by Canonical, syncing fails if data items contain
  text which is not correct UTF-8 in one of the fields that
  SyncEvolution logs in the command line output (like SUMMARY of
  a calendar event).

  That is because the byte string coming from the item is passed
  unchecked to the D-Bus implementation for transmission via D-Bus. But
  D-Bus strings must be correct UTF-8, so depending on the D-Bus library
  in use, one gets a segfault (GIO D-Bus, due to an unchecked NULL
  pointer access) or an "out of memory" error (libdbus, which checks for

  SyncEvolution now replaces invalid bytes with a question mark in its
  output while preserving the rest of the text.

* file backend: log item manipulation

  Extracting a meaningful description of each item from the Synthesis
  engine when updating and adding items is easy to do for items of
  certain known types (contacts and calendar items).

* command line: preserve log prefix of target side of local sync

  In some cases, the prefix which was supposed to be embedded
  in the log messages from the target side of a local sync got
  lost on the way to the command line tool.

  Primarily this affected the added/updated/deleted messages, as in:

  [INFO remote <at> client]  <at> client/addressbook: started
  [INFO remote <at> client] updating "Joan Doe"
  [INFO remote <at> client]  <at> client/addressbook: received 1/1

* compile fix: use ${PKG_CONFIG} instead of pkg-config.

  This fixes the build on Exherbo that only has prefixed versions of

* WebDAV: handle 403 during Google OAuth authentication

  When sending an access token with insufficient scope (for example,
  because the Ubuntu Online Accounts service definition was incomplete,
  as documented in FDO #86824), Google responds with a 403 "service
  denied" error.

  This is now dealt with by retrying, just as for a transient 401 error.

* CalDAV: more efficient "is empty" check (FDO #86335)

  Since, syncing WebDAV collections always checks first
  whether there are items in the collections. This was partly done for
  slow sync prevention (which is not necessary for empty collections),
  partly for the "is the datastore usable" check.

  However, this did not take into account that for CalDAV collections,
  the entire content gets downloaded for this check. That is because
  filtering by item type (VEVENT vs. VJOURNAL) is not implemented
  correctly by all servers. So now all CalDAV syncs, whether incremental
  or slow, always transfered all items, which is not the
  intention (incremental syncs should be fast and efficient).

  This release adds a more efficient isEmpty() check: for simple CardDAV
  collections, only luid and etag get transferred, as in
  listAllItems(). This is the behavior from 1.5.

  For CalDAV, a report with a filter for the content type is used and
  the transfer gets aborted after the first item, without actually
  double-checking the content of the item. This is different from
  listAllItems(), which really transfers the content. This extra content
  check would only be needed for some old servers (Radical 0.7) and is
  not essential, because reporting "not empty" even when empty is safe.

* WebDAV: send Basic Auth via http in some cases (FDO #57248)

  It turned out that finding databases on an Apple Calendar server accessed via
  http depends on sending Basic Auth even when the server does not ask for it:
  without authentication, there is no information about the current principal,
  which is necessary for finding the user's databases.

  To make this work again, sending the authentication header is now forced for
  plain http if (and only if) the request which should have returned the
  principal URL fails to include it. This implies sending the same request
  twice, but as this scenario should be rare in practise (was only done for
  testing), this is acceptable.

* Ubuntu Online Accounts: support plain text credentials

  The backend for UOA was rewritten by Alberto Mardegan and now also
  can use plain username/password credentials stored in UOA.

* various compiler error and warning fixes

Source, Installation, Further information

Source code bundles for users are available in
and the original source is in the git repositories

i386, lpia and amd64 binaries for Debian-based distributions are
available via the "stable" repository. Add the
following entry to your /etc/apt/source.list:
  deb stable main

The GPG key for the repository needs to be imported as root with:
  apt-key adv --keyserver --recv-keys B2EC3981

Then install "syncevolution-evolution", "syncevolution-kde" and/or

These binaries include the "sync-ui" GTK GUI and were compiled for
Ubuntu 10.04 LTS (Lucid), except for ActiveSync binaries which were
compiled for Debian Wheezy, Ubuntu Saucy, Ubuntu Trusty an Debian
Jessie. The packages mentioned above are meta-packages which pull in
suitable packages matching the distro during installation.

Older distributions like Debian 4.0 (Etch) can no longer be supported
with precompiled binaries because of missing libraries, but the source
still compiles when not enabling the GUI (the default).

The same binaries are also available as .tar.gz and .rpm archives in In contrast
to 0.8.x archives, the 1.x .tar.gz archives have to be unpacked and the
content must be moved to /usr, because several files would not be found

After installation, follow the steps.


Patrick Ohly, on behalf of everyone who has helped
to make SyncEvolution possible:
Graham Cobb | 31 May 00:50 2015

Packages for jessie?

Now that jessie is the new Debian Stable, is anyone planning to build
packages for jessie?  I am particularly keen on an activesync
configuration -- none of the activesyncd packages on seem to be installable.

I realise the answer may be that neither Patrick nor anyone else has
time/interest/inclination but before I build them myself, it would be
nice to know if there will be a standard version.  I try to use standard
packages on my internet server when possible and keep the home built
versions just for my personal machines (partly to avoid the sorts of
problems Daniel has just been having!).