January 19, 2005

Choosing an open calendar manager

Author: Simeon Miteff

When choosing group calendaring and scheduling software, many organizations adopt one of the well-established commercial packages like Microsoft Exchange and Outlook, Lotus Notes, or Novell GroupWise. Their perceived simplicity is appealing: you don't have to think about file formats or write configuration files for server software. However, by choosing an application that is built to comply with Internet standards, you can eliminate the risk of being locked into a client whose features don't meet your organization's needs, while maximizing the flexibility and interoperability of your calendaring software.

The Internet Mail Consortium is responsible for the established calendaring and scheduling Internet standards, including iCalendar (RFC2445), iTIP (RFC2446), and iMIP (RFC2447). You should look for a product with iCal (short for iCalendar) support. iCal defines the structure of calendar objects and is based on the older vCalendar standard.

While not all calendering programs use the iCal format for calendar storage, most will import or export iCalendar data. Files containing iCalendar data are often given the .ics filename extension.

iTIP standardizes the way event, to-do, journal, and free/busy iCalender objects are exchanged between calendaring systems. iMIP defines the way in which these exchanges can be done using email.

Two kinds of sharing

iTIP and iMIP let users to do group scheduling -- sending meeting proposals to co-workers and accepting, denying, or making counter-proposals to received proposals. Fortunately, even proprietry software packages support this mode of multi-user calendaring.

It is also useful to access a single calendar from multiple computers. This allows for calendar synchronization (for example: accessing the same calendar on your office PC, notebook, PDA, and home PC). The concept can be further extended: if your administrative assistant already manages your paper diary, he could just as easily manage your electronic calendar, provided it is shared in this fashion. Some calendars might also be applicable to groups of users, like a project group, or even to a whole country (like a calendar containing dates of national public holidays).

Indeed, Apple Computer provides public calendars for users of its iCalproduct to subscribe to over the Internet. Since these and other calendars offered by similar free Web sites are in iCal format, you can employ any iCal-aware application to use these services.

Enabling this kind of sharing requires a server-based product, and is more problematic in terms of interoperation. This is where iCalender as a storage format has a distinct advantage. There is usually some sort of work-around available for open source programs to interface with proprietry server products, but it makes good sense to start with an Internet standard on the server side and a client that supports it.

Let's look at two open source calendering clients, and some server-side considerations.

Mozilla Calender/Sunbird

The cross-platform Mozilla Calender/Sunbird application, from the Mozilla Foundation, shows great promise despite still being in the early stages of development. It is available as an add-on to Mozilla, Firebird, and Thunderbird under the name Mozilla Calendar, and as a stand-alone application called Sunbird.

Sunbird has the ability to maintain multiple iCal-format calendars. Each one can be stored locally or accessed from a Web server using WebDAV, a protocol that provides publishing extensions to the HTTP protocol.

The version I tested (0.9b) has some glitches. For instance, when multiple alarms pop up at the same time, the application freezes for a few minutes until the JavaScript interpreter halts with an error. Nevertheless, it provides a great add-on for those who already use Mozilla/Netscape 7, Thunderbird, or Firefox. Sunbird works well on multiple operating systems with Apache/WebDAV for calendar sharing.

KOrganizer

My favorite open source calendaring application is provided with KDE, and it integrates well with KDE's mail client and its address book application. KOrganizer is based on the open source iCalender library, libical, which allows it to use iCal as its storage format, just as Mozilla Calendar does.

KOrganizer can handle multiple calendars, and, using KDE's virtual filesystem layer as implemented by the kioslave plug-ins, KOrganizer can read and write remote calendars using WebDAV (HTTP), FTP, or even SSH (using the fish kioslave). This provides great flexibility. With firewalls often allowing only HTTP connections out of private networks, or SSH connections into them, KOrganizer allows you to access your personal calendar over the Internet with ease. It also shares calendars effortlessly with Sunbird or any other iCal-based program.

Alarms are handled by a small daemon called korgac, which sits in the KDE system tray, and keeps running even when KOrganizer isn't. An included command-line version called konsolekalendar can view, add, or delete any event in a calendar file, as well as performing import and export operations. This facilitates a whole new level of flexibility when combined with the powerful scripting ability of Unix environments, and it scores huge points with those who feel at home in a terminal window.

iMIP support allows group scheduling with other users, even if they use Outlook or Evolution. KOrganizer even has an Exchange server plug-in, making it an excellent choice for a Unix user in a heterogenous network environment.

KOrganizer is not quite as advanced as Evolution with mutlisync when it comes to PDA and cell phone synchronization, but there is a version that runs on Qtopia, the embedded version of the Qt GUI library that runs on the Sharp Zaurus and Opie, the Linux distribution for HP's iPAQ PDAs. If you find you love KOrganizer, you can use Cygwin to let it run under Microsoft Windows, which will bring it up to Mozilla Calendar's level of portability.

The server side

While KOrganizer can use FTP and other network file protocols, Mozilla Calendar, Apple's iCal, and other clients seem to be focusing on using WebDAV as their network protocol for sharing calendars. Unless you know for sure that all your users will adopt KOrganizer and some other protocol, it's best to go with WebDAV.

WebDAV is implemented using two modules in the Apache Web server: mod_dav and mod_dav_fs. These modules handle the HTTP protocol extensions and interface with the filesystem, as well as providing file-locking mechanisms required for consistent, distributed file sharing.

Since the subscription operation (download) of iCal files with WebDAV is no different from an ordinary HTTP GET request, you can view raw iCal data with an ordinary Web browser. However, a Web front-end, like the PHP-based phpiCalendar, which interprets iCal and renders it in a friendly Web format, is much more useful.

It is also useful to have an authentication and access control mechanism that allows an administrator to define arbitrary groups of users who may have read-only or read-write access to certain calendars, or folders containing multiple calendars. This access control, combined with the Web interface referred to above, can provide users with secure access to their calendars over the Internet even if they don't have a calendaring program available. That means that, when you're traveling, you don't have to drag your notebook or PDA along just to keep track of your appointments; you can simply check out your calendar from an Internet cafe.

Conclusion

iCalendar over HTTP/WebDAV is a very powerful combination, which avoids the complexity of protocols like RPC-over-HTTP which is required by programs like Microsoft Exchange to share calendars over the Web.

The fact you can effortlessly switch from a 15-year-old program like Unix ical to something cutting-edge like Sunbird or KOrganizer without sacrificing features shows that the underlying technology is well-designed. Consider an iCalendar-based application if you're looking to adopt or migrate to a better calendaring technology.

Category:

  • Enterprise Applications
Click Here!