Open source calendaring

Calendaring is a vital resource for most companies these days with large dependencies upon the ability to see and manage the time of other users - a PA will need to be able to add entries to other calendars, all team members need to know when other team members are free without necessarily seeing what they are doing so meetings can be scheduled and individual users want to be able to grant selective access to some entries and not others.

Microsoft Exchange coupled with Outlook provides this functionality but locks you in to a desktop and server operating system and application bundle which may not be ideal for the needs of the company. For instance I manage an Linux based infrastructure with desktops running either Linux or Windows. There is no scope for an Exchange server within our network and OpenExchange is not a valid option since we use qmail for all mail servers and don’t want one tool to do every job - instead, we want applications to do one thing and do it well, selecting the right tool for each job.

So where does this leave us when it comes to calendaring? Well currently we can only provide this level of calendaring to a subset of the company - those for whom calendaring is not just important but vital to their job. These users are tied in to Outlook on Windows and calendar sharing is provided by XC Connect - for the few exceptions to the Outlook rule the only option is a manually edited calendar through a rather clunky web interface. This system works (sort of - there are several frequently recurring bugs and annoyances) but is based on proprietary formats and protocols and does not provide cross platform interoperability (there are connectors available for Evolution and Entourage but I do not have access to Entourage and have never had the Evolution extension work properly).

Surely there must be an open source system which should work? To recap, here are the requirements:

  • Cross platform client support with easy scheduling and invites
  • Ability to set per-user calendar access rights for read, write and free/busy

In addition the following would be preferred

  • Standards compliance
  • No licensing costs or concerns
  • Web interface to calendars

Standards compliance was not thrown in just for political correctness - in March 2007 CalDAV was elevated from a draft document to RFC 4791. CalDAV is an extension to WebDAV developed to standardise access, management and sharing of calendar and calendar-like information, based on the iCalendar standard. Since it has been designed from the ground up CalDAV is a better solution than some of the current attempts at shared calendaring which rely (on one way or another) on having read/write access over a network connection to a monolithic iCalendar file for each user which is both inefficient and clumsy. CalDAV stores each event as an iCalendar file with a logical calendar being represented by a directory containing events. This allows permissions to be better managed by the server since granularity already exists.

Currently the options for clients and servers are quite limited but hopefully over time CalDAV support will mature and several good solutions will appear which scale from a small group of people - say 2 or 3 - to a massive institution such as a university. Client support is possibly better than server support at the moment, with the following being known to work:

  • Mozilla Lightning/Sunbird
  • Evolution
  • Chandler
  • iCal (OS X)
  • Mulberry

Note that Outlook is missing from here - a bit of a show-stopper. There is currently work underway to build an Open Connector for Outlook but the software is barely in beta yet and I have found it to be unstable. Once this is in place client support will be at an acceptable level. Interestingly Microsoft have added some calendaring tools to Outlook 2007 - the ability to subscribe to webcal:// URL’s and to publish an iCalendar file to WebDAV, but as yet it does not look like there is CalDAV support.

When the standard has been implemented by more standards there will hopefully also be a common methodology for scheduling through free/busy servers and the sending of invites.

The other requirement (obviously) is a CalDAV server. There are some offerings out there but none of them tick every box yet:

  • RSCDS is, as the name suggests, a really simple CalDAV store. It is written in PHP and uses a PostgreSQL database as the backend, running inside Apache, and so will not scale to a huge environment. It currently only supports native user authentication although the project wiki mentions AuthPlugin for extensible authentication and LDAP requirements so this may appear soon. There is currently no native webcalendar support but that is not an absolute requirement, just a nice to have feature to allow access without starting and configuring a client - if it was as smooth as Google Calendar then even better. This is definitely one to watch.
  • Bedework is aimed more at the enterprise market and is a Java / Tomcat application. It was originally developed as a calendaring solution at the University of Washington and is still very much aimed at the higher education market. As such it supports departmental calendars and is probably overblown for most small office users but may abstract well for large companies. Bedework are currently supporting the development of the Open Connector for Outlook mentioned above. Incidentally it turns out that it is not pronounced ‘Bedder Work (as in ‘it better work’) but ‘Bead Work’, after a 7th century Monk who contributed to the understanding of calendars.
  • Cosmo, like Chandler, is developed by OSAF. It is again a Java application but I have not yet had time to experiment with it - the bundle appears to be leaning towards the groupware side of the road whereas I am looking for a tool which is very good at doing one thing - sharing calendars.

When RSCDS (which will be renamed upon the next release, possibly to OpenCalDAV) matures a little and the Open Connector for Outlook is stable I think Open Source calendar sharing will be fully realised, and this will be a step forward in office use of Linux. Until then I shall continue to manage my own time using PHP WebCalendar and Sunbird, and avoiding going to any meetings :-)

Leave a comment

You must be logged in to post a comment.