# Get a list of databases
syncevolution --print-databases
...
Maemo Tasks = maemo-tasks:
main (id:1) <default<
Private (id:2)
less important (id:5)
...
Of interest is the section Maemo Calendar which defines all calendars defined on local device. In this example, we have 3 calendars, one is named N900, and another one less important
PEER="n900"
SERVER="server"
SERVER_URL="https://www.hitchhiker.org.lu/caldav/caldav.php/alain/home/"
LOCAL_DB="main"
SERVER_USER="alain"
SERVER_PASSWORD="pass"
These variables are needed in the later steps,and have the following meaning:
syncevolution --configure --template webdav @$SERVER
syncevolution --configure \
database="$SERVER_URL" \
databaseUser="$SERVER_USER" databasePassword="$SERVER_PASSWORD" \
"@$SERVER" calendar
syncevolution --configure --template SyncEvolution_Client \
database="$LOCAL_DB" \
syncURL="local://@$SERVER" \
printChanges=false \
dumpData=false \
"$PEER" calendar
syncevolution --sync slow "$PEER" calendar
If your server is reached via SSL, it is possible that syncevolution won't be able to find your certification authority's key.
In that case, check whether /usr/lib/ssl/certs/ directory exists, and if not, symlink it to /etc/certs/common-ca (or copy contents from /etc/certs/common-ca to /usr/lib/ssl/certs/)
CALENDAR_NAME="calendar_less_important"
SERVER_URL="https://www.hitchhiker.org.lu/caldav/caldav.php/alain/unimportant/"
LOCAL_NAME="less important"
SERVER_USER="alain"
SERVER_PASSWORD="pass"
syncevolution --configure \
backend=CalDAV \
database="$SERVER_URL" \
databaseUser="$SERVER_USER" databasePassword="$SERVER_PASSWORD" \
"@$SERVER" "$CALENDAR_NAME"
syncevolution --configure \
sync=two-way \
uri="$CALENDAR_NAME" \
backend=calendar \
database="$LOCAL_NAME" \
"$PEER" "$CALENDAR_NAME"
syncevolution --sync slow "$PEER" "$CALENDAR_NAME"
If you have many remote sources with a same user name and password, you may specify these credentials on the local peer rather than repeating them on each source:
syncevolution --configure \
username="$SERVER_USER" password="$SERVER_PASS" \
"$PEER"
Although specified on the local peer, this user name and password applies to the server sources (only for those sources that don't have their own databaseUser and databasePassword set)
#!/bin/sh
echo Syncing calendar
syncevolution n900 calendar calendar_less_important && exit 0
echo Error
read a
You may also bind this to a desktop icon as described here. It is intended to be set up to run in a terminal, and the final read a makes sure that the terminal stays up after the command, so that you can look at error messages, if there are any.
On the other hand, if the calendar was not running, you may need to start it, exit it, and start it again. It looks as if, for some strange reason, the calendar refreshes its overview display from its database on exit rather than on start ...
The bug has been reported to Meego and Maemo, but apparently nobody is willing any more to do anything about it (... and this was before the takeover of Nokia by Microsoft...).