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 : CalDAV and CardDAV are the de facto standards to sync your calendar and contact information (respectively) in a machine readable form. There is also some standard that some mail providers seem to use where contacts and calendars are stored in mailboxes; I do not know how that works or what it is called. 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 is “groupware” which AFAICT is a buzzword left over from the early 2000s which meant “collective calendars+contacts+email+other cruft”, which is approximately what we want I suppose, but only enterprise procurement staff can say it with a straight face, because saying “groupware” unironically is an interview question when recruiting for such roles.

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 when sync kicks in.

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. This is clearly not a feature that has much effort in 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 poor-cousin-to-firefox option Thunderbird supports several optional CardDAV/CalDAV plugins and, recently, a native option. The plugins are fractious and inconsistent in their UX but functional and for that matter the native support is not really much smoother.

Native

Thunderbird 91 released 2021-08-11, supports CardDAV and expanded CalDAV natively for integrated contacts and calendars. Or at least, so they claim. This might be less awful than the clunky plugin experience of the below options. Trying it out on icloud, I got calendar working after a struggle via the tedious manual method (server URL autodiscovery did not work) but carddav does not at all work, giving a login failure even though I generated a nice fresh app password for it. I gave up in disgust and tried the next option.

CardBook

Cardbook is an address book CardDAV sync client enabling contact syncing. Unlike Thunderbird’s built-in CardDAV support it supports icloud. You can run it in parallel with Thunderbird’s native contacts and it seems to work OK. It has a couple of unpleasant cosmetic features (icon scaling is funky).

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. This seems to be a simple 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 but not delightful, much like cardbook.

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. Understanding what is going on is so tedious that I am going to go for a run to restart my brain. Is it this confusing in the hope that I will accidentally install some packaged spyware or something?

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 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 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 calendar 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 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

Scheduling meetings

  • When2meet is a free no-frills doodle alternative
  • Rallly si an open-source app to vote on dates.

The next two are moe calendar automation/integration tools.

There are more on the various online listicles to this theme. One can alternatively just use any old survey tool such as google forms or jotforms.


No comments yet. Why not leave one?

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