For many of us, our calendar is our lifeblood. Without it, we would be lost, perhaps both literally and figuratively.
While some people can get away with a wall calendar or a paper day planner to organize their schedule, a whole lot of us have turned over the process of managing time allotments to a digital calendar. In truth, most of us are juggling quite a few calendars from both our work and personal lives, and often a few other organizations that we’re involved with, including anything from non-profits to tech meetups to social clubs.
Most of the major vendor ecosystems provide some sort of calendaring solution which can sync across devices. Among them, Google Calendar is perhaps the most prevalent. For many people, it just works, making it easy to keep track of their schedule across multiple computer and mobile devices, and to share appropriate information with others with whom they need to coordinate.
As with countless other tools, though, you don’t have to use a proprietary hosted solution for your calendar needs. There might just be an open source project that works for you. But before we dive in, let’s take a look at what a calendar actually is.
If you are using a tool like Google Calendar, you may have never thought about it before, but you’re actually using two separate tools. First, you’re using some sort of a user interface, whether that takes the form of a web page or a mobile app. But that user interface isn’t much of anything without the data that powers it. You’re also using a calendaring server behind the scenes to actually store and deliver the data to each device which connects to it.
Calendaring, fortunately, is one area where open standards have made it easier to build software tools which can more easily talk to one another. To understand how digital calendars share information, there are two standards you should be familiar with: iCalendar and CalDav.
iCalendar provides a file format for delivering meeting invites and other calendar requests. If your email client doesn’t manage this format automatically for you, you may have seen it as an attachment to an email in .ics format, which is then handled by the default calendaring application on your computer if you try to download and open it.
CalDAV is a standard for sharing calendar information in iCalendar format. Essentially, it allows people to share and collaboratively author a calendar. CalDAV is an extension of WebDAV, a protocol for making edits of remote files across HTTP.
So now that we know what we’re looking for, let’s take a look at a few of the tools in each space.
We’ll start with the desktop calendaring tools, because you’re probably already familiar with these if you’ve ever tried using desktop email client in any modern Linux distribution. Gnome users have Evolution, and KDE users have KOrganizer which are likely already installed in your distribution, and if they aren’t, you can find them in your default repositories. And Thunderbird/Seamonkey provide calendar support through the Lightning addition, which many Linux users prefer but also provide support for Windows and Mac.
On a mobile device, you’ve got a few options, assuming you’re running Android or a derivative. The stock Android calendar itself is actually open source; if your device didn’t ship with it, you can pick it up in the F-Droid repository or check out the source on GitHub. Another tool to look at is DAVdroid, which provides CalDAV syncing from any server of your choice, including a self-hosted one, and will also pull contacts and tasks in addition to events.
In the modern world, many of us depend on being able to access our calendar from anywhere, regardless of what device we happen to have in hand, and there’s little substitute for a solid web calendar. While there are many web tools that can pull in data from CalDAV, my favorite is AgenDAV, which has a similar look and feel to Google Calendar. But there are others worth checking out too: CalDavZAP, for example, has an online demo that looks compelling. Either should be able to access any standard calendar back-end. You might also look at an open source groupware solution, but that’s a bigger commitment for someone just looking to move their own personal calendar.
While self-hosting your own calendar server is not for the uncommitted, it’s perhaps the best way to ensure that your personal calendar is easily synced across all of your devices using only open source tools that you trust. Two popular options in this space include Baïkal and DAViCal. If you are already using ownCloud, you might take a look at its integrated CalDAV app, although it appears to now be unmaintained. There are many others as well that are probably worth evaluating before you jump in.
These are far from the only tools you might consider for keeping a calendar using open source. There are plenty of others offering their own selection of features. Which open source tools do you use for keeping a calendar, and why? Let us know in the comment below.