This page explains how to install Apple's Darwin Calendar Server (also called DCS, and the basis for their iCal Server).
In certain releases, Apple's calendar server was installable as the calendarserver package. Unfortunately, this no longer works (as of 10 Feb 2010) with Ubuntu Jaunty (9.04) or Karmic (9.10) servers, necessitating these recipes for installation steps. The problem seems to result from required corrections to the upstream Debian package, which is not being actively maintained now. There is a bug #403349 filed about this. Please see the bug and the link below for work on packaging for Ubuntu Karmic (9.10) server.
There are many other Calendar Servers, so the title of this page is misleading. There are also other CalDAV serves, including DAViCal, some of which work better than the Darwin Calendar Server. The reader is advised to research other calendar servers and keep in mind the limited scope of these instructions.
What is CalDAV?
There are many ways of enabling other people to see your calendar, but the two most common, are what Evolution calls "On the web"-calendars (or webcal), and CalDAV-calendars. "On the web" calendars are simply iCalendar files stored on a web-server for clients to download. Nothing magical about it. Your calendar application will open a normal http connection to the web server, download the calendar file and use it just like a normal, local calendar, except in most cases it will be read-only. The application can also publish the calendar to the web-server using WebDAV.
WebDAV, an abbreviation that stands for Web-based Distributed Authoring and Versioning, refers to the set of extensions to the Hypertext Transfer Protocol (HTTP) which allows users to collaboratively edit and manage files on remote World Wide Web servers. The "On the web"-type of calendar is suitable when you want anyone in the world to have access to the calendar. A TV-channel could use this to announce their program, for instance, or Free Software communities can use it to enable users to see how the project is progressing, release dates, etc. If this is all you want, then you don't really need a CalDAV server. Apache will do the trick, with with mod_dav if you want WebDAV publishing support. (WebDAV with Apache 2.x on Ubuntu)
Built on top of WebDAV, CalDAV is a standard protocol, specified in RFC 4791, which enables advanced online calendar functions. Concepts such as users, groups, locations and resources are introduced, enabling collaborative scheduling. Different users of different groups can have different permissions to read and write to a calendar, etc. Also, a CalDAV calendar doesn't use a single file, but stores calendar events as files in directories. It also handles recurring events, enables free/busy lookups, etc. This makes CalDAV suitable for an office environment.
Recipes for Installation