(Offline) Calendar synchronization

Hi to all,
I’ve become accustomed to use calendar on my phone, so today I was wondering if there is any way to sync my calendar from Sailfish phone to Mozilla Thunderbird on my PC and vice-versa.
It would be great if this can be done automatically some way.
Does someone know any solution for this? I don´t want to use some third-party online calendar.
And so I’m thinking if there does exist some “server provider software”, which could run locally on my PC (as daemon) and my Thunderbird could connect to it and so Sailfish os (both clients on my home network), which could be the way for syncing that calendar :slight_smile: I don´t need calendar to be synced via mobile data.
Can someone help?
and if not, maybe someone can tell me at least, what are available options nowadays to sync calendar PC > cell phone.
Thanks :slight_smile:

1 Like

Thunderbird on Linux? There are a number of solutions:
for instance. But this is missing a newer release. I’m adding it to the list of things to be aarch64’d

EDIT: I think it was @nephros that pointed out:

devel-su -p vcardconverter -e contacts.vcf
devel-su -p vcardconverter --export contacts.vcf
Calendar: devel-su -p icalconverter export calendar.ics

with the last being ical export. That’s somthing you could just push (pull ssh) …

Ah, it was @peterleinchen

Thunderbird is a client, not a server.
For syncing (continuous data transfer between multiple devices) you need a server, and an account, which uses the CalDAV standard. (Google, MS, Nextcloud, etc. for example.) Then you can set up the account on every device you use.

I’m well aware of what thunderbird is. Syncml covers a use case of sharing via bluetooth, if I remember correctly. No server required.

Edit: I sync using rsync. And cron.

Edit 2: Networking | Sailfish OS Documentation SyncML client & server (SyncML) for synchronization of contact data and Calendar | Sailfish OS Documentation NO SERVER REQUIRED

Edit 3: I deal with this so often, I think I’ll write an app.

1 Like


Moved to ‘Feature Requests’.

And I would like to add besides calendar items the tasks, notes and of course contacts to be synchronized between phone and an instance of e.g. Firefox or Outlook on PC.
Something like the Nokia Suite did decades ago!

1 Like

It’s amazing how things USED to be easier. The technology more mature! And through 2 decades of fragmentation we’re back to square one :slight_smile:


oh, I forgot to say that I use Windows on my pc.i have got an idea, i completely forgot that I use raspberry pi with pi-hole.could it be done as caldav serever, so i can use it for syncing between thunderbird on pc and sailfish os on cellphone?

Radicale is a nice little CalDAV server written in Python.


+1. Radicale is minimal. If you just want sync it’s a good option to run on the pi. I use it for work where it’s a little ‘less’ than we need, but for a homogeneous team of up to 10 it was great.

so if I install Radicale on pi and configure it as server for thunderbird and my xperia x, it will work?

oh and one more thing - I want only sync calendar, not contacts.is this possible with radicale?

Yes. You can use Radicale just for it’s calendar functions. You can set up simple authentication and also setup calendars with a simple web interface. Depending on how your home network looks, it should be easy enough for devices at home to just connect to it’s ip on port 5232 (default). You can get a bit more fancy by setting up dns in your home network… does the pi have a proper hostname/dns?

Radicale can simply store the data in the file system (in ical/webcal format), so it can be kept a very simple install.

This install uses the packages available (so not pip install) an should be easy enough to understand …

1 Like

pi is configured as dns server for lan because pi-hole - it blocks ads in my network :slight_smile:

And by the way, thanks for that guide :slight_smile:

Hmm, maybe. But

from above guide at the very end.

Let us know if you manage and how-to…

This is not synchronization … but just one way copy of data.
Synchronization means comparing entries and resolving conflicts as described in the SyncML protocol that unfortunately is not implemented on the phones anymore.

I’ve been working on reviving the bluetooth syncml plugin that works with SyncEvolution, but was hit recently by a change in the API in Sailfish, that makes it impossible to sync.

In my opinion forcing users or supporting only CalDav and CardDav which are internet based protocols limits the users.

1 Like

That’s true. I did mention SyncML which is still documented in the SFOS docs. So it seems to be there but has had api changes AND the bluetooth plugin is not functional? You mean this plugin:

Yes, So I did updated buteo-syncfw source and it went into master, so that now it uses bluez5
I also had a working solution for buteo-sync-plugins syncml, but the Contacts API changed in 3.4.x and I did not have the time to update.
Meanwhile gitlab migrated to github and I had also no time to update.
If you want to join forces you are welcome

Ok, I just dug up my old syncevolution configs (I really do just use rsync !) I had this running with the N900 so it’s long ago. I started with a test on 3.4. and bluetooth obex generally and audio also works, but syncevolution doesn’t work:

syncevolution --configure --template Nokia_N900 --sync-property syncURL=obex-bt://58:9E:C6:24:7C:AB Volla3.4

Generates a config which seems reasonable but sync with devices paried generates:
[ERROR] transport problem: ObexTransportAgent: Bluetooth service search failed

Presumably, needs more work:)

I’ll have a look at buteo-syncfw… how can I help?

@poetaster : this was working with Sailfish < 2.x after this the bluez stack changed from bluez4 to bluez5
and now the API for handling Contacts changed