Implementation and Extension of a Webclient to Access a CalDav Server

State: completed by Ivan Iljkic

DAViCal is a calendar server suited to store personal and shared calendars. It is an open source implementation of the CalDav protocol, which has been designed for storing calendar resources on a remote server, similarly as the IMAP protocol does for e-mail. 

There are many client applications that allow a user to interact with CalDav servers, such as the Mozilla Calendar/Mail, Evolution, Mulberry or Apple's iCal. Most of these applications also allow users to access their e-mail, thus, providing a combined interface for e-mail communication and scheduling of tasks and meetings.

However, for accessing mail and calendars from arbitrary computers, it is often much more convenient to use browser-based interfaces instead of native applications. Roundcube is such a browser-based mail application (for webmail). It is multi-lingual, supports multiple indentities and multiple address books (using databases or LDAP-directories as storage). As it is open source and conforming to standards, roundcube is usable with any IMAP server. Through its plugin-API, roundcube is easily extensible. Many plugins have already been developed, e.g., to manage sieve mail filtering rules. Roundcube has been used for several years at the Department of Informatics (IFI) at the University of Zurich.

For CalDav, there exist a few browser-based solutions. However, they are either part of larger groupware solutions (such as open eXchange or Horde), they are not free (Atmail CalDav client), read-only (PHP iCalendar), or not maintained anymore (Webical).

To enable IFI’s webmail users to access not only their e-mail but also their calendars from arbitrary computers, it has been decided, to develop a roundcube plugin, that allows the access of personal and shared calendars directly from roundcube. With this the IFI will be able to provide its users with a browser-based solution, that combines e-mail communication and scheduling of tasks and meetings.

Description of Work

This assignment consists of a number of key contributions to be made. Contributions originate from two areas of work. First, the existing implementation base of a previous completed assignment shall be extended. Foreseen extensions embrace those functional parts of a previous assignment that were planned for a complete implementation, but not achieved within the frame of that assignment. This assignment, hence, will complete the full set of functional requirements as outlined in the thesis goals list and the activities list, respectively.

Second, and after completing the implementation functionality-wise, the design, implementation, and evaluation of a GUI (Graphical User Interface) component shall be addressed. The primary focus in this second contribution is two-fold. On the one hand, all the functionality implemented shall be made available via this GUI component. On the other hand, access to functionality shall happen in a highly user friendly manner. Thus, usability and functionality access provide equally for the key focus here.

Accordingly, the student should familiarize him or herself with the implementation base that is already available. For all extensions—functionality completion and GUI component—envisioned, the state-of-the-art and related work shall be documented. Based on this review, the system design shall be determined and documented clearly, covering the key design decisions taken in terms of by using which tools/techniques a roundcube plugin for calendaring—including the GUI component—is best implemented, in terms of flexibility, maintainability and usability. The student needs to develop a suited evaluation procedure to substantiate a certain level of usability being achieved. Finally, such a function-wise complete calendar plugin, including its GUI component, is to be implemented, tested, and the implementation and evaluation results have to be documented.

Thesis Goals

The main goal of this work is the implementation of a working webclient to access a CalDav server. The webclient will be implemented as a roundcube plugin and provides the necessary functions that allow users to perform the following actions:

Since this work bases on an existing implementation, all functional extensions and the GUI component shall integrate well with the existing implementation. This assignment will reach its goals if the final implementation successfully proves to address all of the above functions.


Based on the description of work the following activities—some in parallel—are recommended:

Supervisors: Prof. Dr. Burkhard Stiller

back to the main page