DAVCal Overview

Background and Problem

The Topic:

Group-calendaring and scheduling

The Goal:

A cross-platform group-calendaring system

The Problem:

How can we create a shared calendaring and scheduling system that is cross-platform, secure, and genuinely useful?

My Answer:

Extend the WebDAV protocol with calendar specific properties, and write functionality for accessing these properties into calendar programs.

Hypothesis and Insights

Hypothesis:

It is possible to implement secure, cross-platform group calendaring with WebDAV.

Insight:

It will be necessary to support the current standard, ical, to enable some types of communication, etc. One way to do this in the WebDAV framework is: Make the ical objects resources. Make an identical set of WebDAV properties. To get just your calendar, simply ignore the properties entirely and load up your calendar (ical)!

Insight:

A group-calendar requires interacting with other peoples' calendars. To interact with someone else's calendar, one must make a DASL search, and simplesearch can provide most of this functionality.

Insight:

To provide others access to a public subset of your calendar, a separate set of resources (your public calendar) are created which have (perhaps links to) the properties on the ical resources (your private calendar). Some of these subsets will be for a particular group (described in an ACL). Others are simply public. The ical objects themselves are protected by virtue of read-protection on the resources, and contain links to the "public" or "group" readable resources that share properties with this object.

Insight:

Web-based calendars can be read through reading the XML properties and running them through a style sheet (XSL).

Approach

Nutshell:

Implement calendaring protocol requirements with WebDAV.

Method:

Convert a single calendar application to DAVCal via the iterative construction of prototypes and analysis of calendar visibility types

Contribution:

A framework for the analysis of calendar visibility types

Contribution:

A UML diagram of the iCalendar object model

Contribution:

A protocol (DAVCal) that provides flexible, but secure calendar visibility

Contribution:

An implementation of DAVCal for Linux

Validation and Schedule

Reading, Requirements, Design:

Read about calendaring, WebDAV, and RDF(~3 weeks remaining)

The goal of this is to create a complete specification of DAVCal, based on iCalendar, but using WebDAV as the protocol. This will include an analysis of types of calendar visibility and a UML diagram of the iCalendar object model.

Prototype:

Simple DAV-based calendar storage and retrieval(2 weeks)

Adapt Evolution to provide WebDAV-based storage and retrieval of the ical resources. Ideally, one ical object per resource, but with some properties for each-- but certainly not all ical properties.

Integrate:

Convert to DAVCal(2 weeks)

Convert all ical properties to WebDAV properties, and provide DASL based retrieval of calendar information. Use ACL to provide restricted access to lists of other people's calendar information (for meetings and scheduling). Finally, replace ical object with RDF-calendar, but provide server-side (or client-side) conversions for backward compatability.

Integrate 2:

Provide XML and XSLT retrieval of calendar info (i.e. MozCal)(2 weeks if time allows)

Retrieve properties via WebDAV and display them with a style-sheet.

Write:

Dissertation and final defense(6 weeks)

Target completion: August 1


Michael Arick
Last modified: Wed Apr 25 00:58:23 PDT 2001