I’ve been synchronising my calendars with the still-experimental rewrite of
vdirsyncer lately. vdirsyncer --sync --daemon
has been running for about
three days now. The --daemon
flag makes it run continuously, synchronising
changes every five minutes.
Eventually I want --daemon
to monitor for changes and immediately synchronise
when changes occur. Until monitoring of storages is actually implemented, it
simply syncs every five minutes.
This solves a long standing issue in vdirsyncer: there’s no way to continuously sync in background. Not unless credentials are available in plain-text form or available without user intervention in a similar way.
The results so far have been quite satisfactory. I’ve created multiple events on other devices, and they’ve shown up soon on my desktop. I even have a misconfigured storage that fails every time. Vdirsyncer keeps synchronising everything else just fine.
An alpha release
I still have heavy backups of my calendars and collections. And some more refinement is still required before I can publish an alpha release for others to use. But I’m still happy to have reached this point.
I’ll be winding down for the remainder of this year, but my general roadmap right now is:
- Draft a migration guide, mentioning all the little things that change between the previous implementation and this one.
- Finish writing clear instructions on how the configuration file needs to be upgraded (I’ve tried to keep these changes to a minimum).
- Write a lot more unit tests for some storages.
- Handle a failures to write the state to disk (this is a fatal error anyway).
- Ensure that all file-system writes are atomic.
- Publish an alpha release for others to test.
The initial alpha release will be in a state where it may lose or corrupt your data. I hope it doesn’t, but the word alpha means exactly this: it’s not a final version.
vparser
I have also published v1.0.0 of vparser
, the low level parser for icalendar
and vcard. I have a few other project for which I’ll use this in future too,
including normalising calendar entries and merging contacts.