
One of the replies to the post about
Debian's last groupware meeting
was from Patrick Ohly of
syncevolution fame pointing out that
syncevolution already implements calendar autodetection for
CalDAV calendars as described in
draft-daboo-srv-caldav-10.
While looking at the code I noticed that there's a backend for
the N900s calendar by Ove K ven as well.
When I tried Ove's
latest package on my N900 it lead
to an immediate crash when doing a:
syncevolution --print-items target-config@webdav calendar
According to Patrick the bug was supposed to be fixed in recent versions so I set up
scratchbox and built a newer
git snapshot for maemo (
sources). This
wouldn't crash but didn't show up any items either. It turned out to
be a minor bug in
calypso returning no content
type for REPORT queries which resulted in libneon discarding the
whole reply (now already fixed in calypso upstream).
With this out of the way setting up synchronisation is quiet
simple:
# Configuration
CALDAV_SERVER=192.168.0.10
syncevolution --configure username=<username> password=<password> \
calendar/backend=caldav calendar/database=https://$ CALDAV_SERVER :5233/private/my_calendar \
target-config@webdav calendar
syncevolution --configure --template SyncEvolution_Client sync=none syncURL=local://@webdav username= password= webdav
syncevolution --configure sync=two-way backend=calendar webdav calendar
You should then be able to print the items on the local (N900) and from the remote (CalDAV server) end:
# This lists the current calendar items on the server
syncevolution --print-items target-config@webdav calendar
# This lists the current calendar items on the N900
syncevolution --print-items @default calendar
And from there on sync away:
# initial slow sync
syncevolution --sync slow webdav
# from there on
syncevolution webdav
The syncevolution source code has great documentation about debugging problems (e.g.
src/backends/webdav/README). So check that in case you run into problems. The tl;dr version is
SYNCEVOLUTION_DEBUG=1 src/syncevolution loglevel=10 --print-items target-config@webdav calendar
to debug CalDAV related problems. In case you need to run syncevoluton from source be sure to set
these beforehand:
export SYNCEVOLUTION_TEMPLATE_DIR=$PWD/src/templates/
export SYNCEVOLUTION_XML_CONFIG_DIR=$PWD/src/syncevo/configs/
On the CalDAV side I used current Calypso git which (with some additional minor fixes)
now also interoperates nicely with
Iceowl/
Icowl-Extension aka Sunbird/Lightning
on the desktop side. There's also an
ITP for it. So it'll hopefully end up in Debian soon.