Calendars and contact databases



There are two problems with event scheduling to solve:

  1. The technical end of getting calendars and reminders on your phone and desktop machine
  2. The social problem of discovering and coordinating events with your contacts

That’s the raw logistical end; there is also the question of social event discovery. What is the social platform that allows us to collectively discover events? Facebook has made a bid to be a monopoly provider of these services, about which I feel negative.

Jargon to know here: CalDAV and CardDAV are the de facto standards to sync your calendar and contact information (respectively) in a machine readable form. All you need is a server which talks those standards and you can use whatever calendar client you’d like. In principle. In principle this is all you need to get your smartphone telling you to leave your house now to get to dinner with your grandmother. In practice, there are various confusions, tweaks, failures and standards wars.

Another sometimes-useful keyword here is “groupware” which AFAICT is a buzzword left over from the mid 2000s which meant “collective calendars+contacts+email+other cruft”, which is approximately what we want here I suppose, but only enterprise procurement staff can say it with a straight face.

GUI Calendar clients

Minetime

Not quite a GUI but an interface nonetheless, minetime uses machine learning to optimise appointments/scheduling etc.

Evolution

I’m not a massive fan of GNOME mail client Evolution because it leaks memory and uses astonishing amounts of CPU to do the contact syncing. You can hear my CPU fan across the room and watch the battery meter drop every hour on the hour while this damned thing is installed.

Evolution data server has an inscrutable demarcation of responsibilities between itself and the GNOME desktop. Evolution seems to support generic caldav/carddav servers if you go in through evolution’s own settings; However it would like you to go into the GNOME “online accounts” settings, which do not seems to support that. They lean heavily on brand-name services (M$, google, Nextcloud). However, caldav/carddav including icloud will percolate its way into the system if you set it up via Evolution..

So that’s annoying but good enough, right? Wrong! this system does not support photos, and breaks when you use them. See the following bug reports: #100, #101. Those have been untouched since the 2018 version came out; No once cares enough about this problem to fix it.

GNOME Contacts

A GNOME desktop contact management Contacts seems well-integrated. Its documentation is meagre, presumably because it is supposed to be intuitively friendly, but it is not friendly to me. Maybe I offended it? Or perhaps the authors imagine I already know that many details have been palmed off to evolution-data-server which does all the work. Which I now do, after much googling. Also, non-obviously, I need to fire up a different app, Evolution, to even configure this app — there is no actual way to enter carddav/caldav servers in GNOME contacts directly. That I know of, I mean. Maybe I can edit some textual config file somewhere.

Have you foreseen the evil twist? That’s right, evolution is installed per default as a flatpak which means it is somewhat sandboxed, which means such a cross app config no longer works.

So I needed to uninstall evolution and re-install as a traditional deb to get this working. This kind of nonsense leaves me pretty sure that no one is actually using this configuration.

Thunderbird

The too-configurable poor-cousin-to-firefox option Thunderbird supports several optional CardDAV/CalDAV plugins.

tbsync

TBSync is a recent light and modular CalDAV/CardDAV option for thunderbird. I think it uses a thunderbird calendar extension called Lightning for calendars.

For now, this seems to be the simplest option for getting contact and calendar syncing, and the user experience is a good as it can be in the frame of thunderbird, which is to say, adequate if not delightful.

CardBook

Cardbook is a CardDAV sync client enabling contact syncing. It looks nice and simple also, but I have not tried it. It does not handle calendars.

SOGo

Thunderbird also gets CardDAV support, I think, via a plugin, SOGo Connector, which comes bundled with the calendar extension lightning? Confusingly there is also Sogo integrator, which targets their groupware server specifically:

First of all, the SOGo Connector extension transforms Thunderbird into a full DAV client for groupware servers such as SOGo, eGroupware or Citadel. It does this by adding support for remote DAV address books and by adding features to be used along with the Lightning calendar extension. …

On the other hand, the SOGo Integrator extension transforms Thunderbird into a pure “heavy” client for SOGo. Whereas the SOGo Connector is meant for portability (horizontal integration), the SOGo Integrator makes use of the features and layout only available from SOGo (vertical integration).

For some versions Lightning is integrated into integrator and sometimes connector is connected to connector but in other versions they are not integrated. The entire thing is so tedious that I am going to go for a run to restart my brain.

It is of course not immediately obvious how to configure it this hairball of technology and enterprise buzzwords. AFAICT one either needs to

  1. give the CalDAV URL … access to all your contacts(?) to the sogo web service, is that right? seems insane. Or,
  2. install a local copy of the SOGo backend which is heavy and onerous.

Nah, I think I will set this one aside.

Syncevolution

Syncevolution is a contact-syncing app which supports various CardDAV implementations with some restrictions.

Mulberry

Mulberry is a defunct open source client for calddav and carddav and mail.

Calendar client code libraries

You want to do something really geeky with your caldav and some server. OK.

Calendar servers

So who gets to have your previous calendar and contacts data? Which jurisdiction gets to harvest your contacts? Do you trust ’em? Should you run your own server? That’s a legitimate use of your precious free time, right? I do not have really good answers here in terms of trading off confidentiality versus convenience.

Practically, the only contact syncing that works well with iOs is iCloud. They claim to support any CardDAV server, but in practice I have had glitches and failures with all other servers that I have tried. iCloud is compatible with non-Apple clients, so if you are an Apple user and you trust them enough the convenience is worth it.

iCloud

iCloud setup for non-apple clients is easy, or requires a few steps, depending on the client.

Log in to https://appleid.apple.com/#!&page=signin (as opposed to the icloud page) to set up an app password. Then you can use that password plus the usual icloud username to work with other clients. As we learn from the Blackberry docs, CardDAV URL is https://contacts.icloud.com and contacts URL is https://caldav.icloud.com. If the caldav client does not negotiate the correct server correctly, there is a complicated manual setup to try.

There is an iOS app Contact mover which brute-force synchronises icloud contacts to other CardDAV servers.

Outlook

🏗

Apple Calendar Server

Apple’s open-source Calendar Server. Does contacts too. I don’t think that Apple any longer dogfoods this particular bit of software, but it might work OK. It is bloated.

Radicale

macOS/Windows/Linux: Radicale seems to be less bloated than the Apple thingy.

Radicale is a small but powerful CalDAV (calendars, todo-lists) and CardDAV (contacts) server, that:

  • Shares calendars through CalDAV, WebDAV and HTTP.
  • Shares contacts through CardDAV, WebDAV and HTTP.
  • Supports events, todos, journal entries and business cards.
  • Works out-of-the-box, no installation nor configuration required. […]
  • Is GPLv3-licensed free software.

DAVmail

davmail

Ever wanted to get rid of Outlook? DavMail is a POP/IMAP/SMTP/CalDAV/CardDAV/LDAP exchange gateway allowing users to use any mail/calendar client (e.g. Thunderbird with Lightning or Apple iCal) with an Exchange server, even from the internet or behind a firewall through Outlook Web Access.

DavMail also supports the CardDAV protocol to sync address books. This new feature is sponsored by French Defense / DGA through project Trustedbird. […]

DavMail gateway is implemented in java and should run on any platform. Releases are tested on Windows, Linux (Ubuntu) and Mac macOS. Tested successfully with the Iphone (gateway running on a server).

Nextcloud calendar plugin

nextcloud, the file sync server, also optionally supports CardDAV and a Calendar GUI.

Kolab

kolab is the open-source backend of, e.g., kolabnow and used by such apps as kube.

Sogo

sogo

SOGo is a fully supported and trusted groupware server with a focus on scalability and open standards. SOGo is released under the GNU GPL/LGPL v2 and above.

SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV, CardDAV and GroupDAV, as well as Microsoft ActiveSync.

SOGo is the missing component of your infrastructure; it sits in the middle of your servers to offer your users a uniform and complete interface to access their information. It has been deployed in production environments where thousands of users are involved.

iRedMail

iRedMail is a packaged system for some of these projects

With iRedMail, you can deploy an OPEN SOURCE, FULLY FLEDGED, FULL-FEATURED mail server in several minutes, for free.

We did the heavy lifting of putting all the open source components together and applying best practices. Our product does all the major tasks for you. Furthermore we offer professional support to back you up in case you have some problems. […] Manage your calendars (CalDAV), address books (CardDAV), tasks on a easy to use web UI or your mobile devices (iOS, Android, BlackBerry 10, Windows Phone).

In particular the calendar/contacts server comes from sogo.

Social event discovery

This one is the real weak spot. Facebook has an effective monopoly on this in the west.

Calgator is an open source community calendar platform written in Ruby on Rails that runs calagator.org, a Portland tech calendar.

Gigtripper looks interesting.

calndr.link creates calendar links.

I built calndr.link after I had multiple clients request the exact same thing — a simple and easy way to generate calendar links, for adding to their website or in email newsletters.

There’s a few existing providers out there, but they’re extremely pricey for what they do — take some basic data (title/date/etc) and reformat it into a url for a calendar provider (be it google or apple).

Bonus: Calendars that are not Gregorian


No comments yet. Why not leave one?

GitHub-flavored Markdown & a sane subset of HTML is supported.