The Five Best Open Source Calendar Servers for Linux

72008

 

Finding Linux-based calendar clients, like Evolution or Mozilla Lightning, is easy — but what about the server-side software? You’ll find some great calendar servers for Linux, if you know where to look. From light-weight to heavy duty, Cosmo to Darwin, we’ve picked five of the best open source calendar servers for Linux for you to try.

Calendaring software has come a long way on the client side in recent years; the Linux desktop has a healthy selection of apps to choose from, including Evolution, Mozilla Lightning, and KOrganizer. But, at the same time, much of their usefulness really stems from the popularity of the server-side calendar sharing protocols, iCalendar and CalDAV. Niche sites like Remember The Milk and big online service providers like Yahoo and Google have made shared calendars common place. Anyone can publish a calendar feed, confident that everyone on the Web can subscribe to it on the OS and device of their choosing and stay up-to-date.

But just like you don’t want a @gmail.com email address on your business card, serving up your business’s public calendar of events through Google Calendar or Windows Live Hotmail Calendar can make your organization look less-than-professional. Plus you run the persistent risk of leaving your data in someone else’s hands. Luckily there is no reason to do so — you have plenty of choices for self-hosting your calendar service, just like you do your Web site or your blog. Let’s take a look at the best open source calendar servers, and see what each offers.

Darwin Calendar Server

Apple has a spotty reputation for working with the broader open source community, but its Darwin Calendar Server (DCS) is a prime example of where the company gets it right. DCS originated as a Mac OS X Server component, but has continued to be developed in the open, and with broad support for other operating systems — most notably, Linux. It is packaged by several leading Linux distributions, including Debian and Ubuntu.

Those on other distributions will be happy to learn that it has modest package dependencies. It is written in Python, using the Twisted application framework, and the only out-of-the-ordinary dependency is its use of extended file attributes. Configuring support for extended attributes is a simple mount-time option on the file system DCS uses to store its data.

Feature-wise, DCS supports CalDAV as its connection protocol, includes built-in support for SSL authentication, and can be configured to send email reminders to “remote” users (i.e., subscribers to events that are not user accounts on the server itself). It does this through the IETF’s iCalendar Message-based Interoperability Protocol (iMIP). DCS can even be used as a “contacts server” using the CardDAV protocol for remote vCard address book storage.

DAViCal

After DCS, DAViCal is the leading open source calendaring solution. As the name suggests, it too uses CalDAV as the connection protocol, but it is also backwards-compatible with WebDAV. This means that a calendar client that cannot talk CalDAV to the server can also retrieve the events as if they were a static file on a WebDAV file server.

DAViCal manages that trick by storing the underlying iCalendar event data in a PostgreSQL database. In addition to Postgres, you will need PHP 5.1 or greater to run it. DAViCal is developed primarily for Linux, so packages are available at the project’s Web site for most popular distributions.

It supports alarms on the client-side (which might include pop-up notifications or email sent by the client app), though not direct email notifications, but it does support several extended iCalendar features, such as VTODO tasks, private events, and Free/Busy scheduling.

Bedework

Bedework is the most complex of the open source calendar servers; it not only provides the calendar event subscription and synchronization service, but it also implements a slick Web front-end end usable as a calendaring client in its own right. Bedework feeds can integrate server-provided RSS content as well, which could make it a good choice for a unified public portal.

That complexity does come at a price, though. Bedework has a comparatively heavy system requirements load. For starters, it is written in Java, and designed to run on the Apache Tomcat application server. In addition, it requires JBoss, Apache Directory Server (DS), Derby, ActiveMQ, and Ant.

Features-wise, Bedework can use either CalDAV or the iCalendar Transport-Independent Interoperability Protocol (iTIP) as its connection protocol, and it supports both the CalDAV Scheduling Extensions and VVENUE draft specifications, which are used for meeting and room scheduling. The front-end adds several advanced features, such as public event submissions and three types of calendar (private, public, and group). It supports Free/Busy information, but not VTODO, and it does not yet support email notification, although this is on the roadmap.

Radicale

At the other end of the complexity spectrum from Bedework is Radicale, an intentionally light-weight calendar server. Radicale offers no front-end, and in fact it does not do much more than store, update, and serve up CalDAV content to clients. There are no notifications or group synchronization features, because the server has no state engine — it just manages CalDAV requests.

Still, if you are looking for an easy-to-manage calendar server with low system overhead, Radicale represents a big step up over hosting raw calendar files on a WebDAV server: for example, it prevents accidentally overwriting events with access control. Radicale is written in Python, has no special dependencies, and is designed to be easy to configure and administer.

Cosmo

Rounding out the top five is Cosmo, the calendar server created by the Open Source Applications Foundation (OSAF) alongside its email-and-PIM client Chandler. Cosmo support three protocols: CalDAV connections, serving up “raw” .ics iCalendar files, and its own internal format, which is based on Atom and at the moment is only spoken by Chandler.

Like Bedework, Cosmo is written in Java, designed for Apache Tomcat and related technologies. But also like Bedework, it implements far more than a server back-end. There is an extremely slick Web front end, supporting multiple user accounts, subscription management, and subscribing to other, remote calendar feeds.

Cosmo supports a wide array of iCalendar and CalDAV extensions, including free/busy information, email notifications, and even CardDAV address book synchronization. Still, site administrators should give careful consideration to Cosmo because its future is uncertain. OSAF has halted development on Chandler, and while Cosmo is still in working order, if you run into trouble several years from now, you may have a harder time finding support.

Other Options to Consider

The five servers mentioned here were chosen in part because they represent the Unix philosophy well: do one thing, do it well. These open source projects allow you to focus on one task — letting users subscribe to your calendar feed. They won’t interfere with your site’s content management system, email server, or anything else.

But there are situations when you might want more, such as deploying a calendar server to unite an internal team. Serving that other large category of users are several well-honed open source groupware packages. Not all groupware systems include a calendaring component, but these do: Zimbra Open Source Edition, Citadel, Horde, Tryton, and OBM. The overhead is substantially different, but if you want to roll out a unified calendaring / email / project tracking system, check out each of these suites.

Naturally, there are other iCalendar-fluent applications in the open source ecosystem that might also fit the bill. For example, the Courier PCP server is a “personal calendaring protocol” extension to the Courier IMAP mail server. If you use Courier IMAP, adding calendaring may be the simplest option. For a different approach entirely, 5KN WebCalendar is an export-only calendaring package. Its emphasis is on presenting a well-formatted HTML calendar, and it can export its data in .ics form on the Web server, although it doesn’t actively serve up content like a CalDAV server does.

One size hardly ever fits all, but that’s a strength of open source. If you need an easy-to-manage calendar feed provider, DCS or DAViCal are both good choices with slightly different feature sets. If you need down-and-dirty, there’s Radicale, or if you want bells and whistles, there are Cosmo and Bedework. No matter which calendar server you choose, you can rest easy knowing that your subscribers know where — and when — they’ll be able to find you.