This is the core code base for a CalDAV/WebDAV/HTTP server.

For general information about the server, see:


This software is copyright (c) 2005-2007 Apple Inc.
All rights reserved and is licensed under the Apache License, Version 2.0.
全ての権利は保護されそしてアパッチライセンス バージョン2.0にしたがって使用許諾されます。
The Apache License is a well-established open source license,
providing reliable and long-lived software products through
collaborative open source software development.
See the 'LICENSE' file for the full text of the license terms.


Place this source directory into an empty development directory, such
as '~/Developer/Collaboration/CalendarServer/'.  The server requires a
number of libraries in order to operate.  The 'run' script in the
sources will automatically download or check out the appropriate
libraries and build them for you:

    ./run -s 

Before you can run the server, you need to set up a configuration file
for development.  There is a provided test configuration that you can
use to start with:

    cp ./conf/caldavd-test.plist ./conf/caldavd-dev.plist

You will need to choose a "directory service" to use to populate your
server's principals (users, groups and resources).  A directory service
provides the calendar server with information about these principals.
Some of the directory services which are supported by the calendar
server include:

 * XMLDirectoryService: this service is configurable via an XML file
   that contains principal information.  The file 'conf/accounts.xml'
   provides an example principals configuration. 

 * OpenDirectoryService: this service uses OpenDirectory (which in
   turn uses LDAP, Active Directory, etc.) to obtain principal

 * BasicDirectoryService and DigestDirectoryService: these services
   are configurable using configuration files in the same formats as
   used by the Apache HTTP server, allowing you to use the same
   user/group setup as a separately-running Apache server. 

   Note that the current implementation does not allow for
   configuring resources, since Apache doesn't have resource

The 'caldavd-test.plist' configuration uses XMLDirectoryService by
default, set up to use 'conf/accounts-test.xml'.

This file contains a user principal, named "admin", with password
"admin", which is set up with administrative permissions on the server.

You can then run the server thusly:


This should start up and bind to port 8008 for HTTP and 8443 for
HTTPS.  You should then be able to connect to the server using your
web browser (eg. Safari, Firefox) or with a CalDAV client (eg. iCal,

DAV Functionality

The server implements the following specifications:

 * HTTP/1.1, RFC 2616
 * HTTP Authentication, RFC 2617
 * WebDAV level 1, RFC 2518
 * WebDAV Access Control Protocol, RFC 3744
 * WebDAV Quota and Size Properties, RFC 4331
 * CalDAV, draft-dusseault-caldav-15
 * CalDAV Scheduling Extensions, draft-desruisseaux-caldav-sched-02

Note that while the server does support WebDAV, it does not support
WebDAV level 2, which means it does not implement the LOCK and UNLOCK


Portability may be limited in this release. 

The server requires:
 * Python 2.4
 * Zope Interface 3.1.0c1
 * PyXML 0.8.4
 * pyOpenSSL 0.6
 * python-dateutil-1.0
 * xattr 0.2 (Bob Ippolito's implementation)
 * pysqlite-2.2.2
 * Twisted
 * vObject
 * PyKerberos
 * PyOpenDirectory 

It also requires, naturally, anything these components depend on.  For
example, pyOpenSSL requires the OpenSSL library.

The server is most actively developed on Mac OS 10.5 Leopard, which is
presently only available to Apple developers in a preview release.  (See for more information.)  However, it is not
intended to run solely on that platform; that just happens to be what
the current developers are using (because we work at Apple, and are
building it as a feature of Mac OS X Server). 

If you are using Tiger (Mac OS 10.4), you will need to install Python
2.4.  See for installable packages.

If you are using other operating systems, there may be additional
coding work required before you can get started.


For starters, twisted.web2.dav requires Bob Ippolito's xattr library
to access file system extended attributes, which are used to store
WebDAV properties.  File system extended attributes are available
on all file systems in Mac OS X, and on some file systems on Linux
and FreeBSD.  Another alternative is to implement a new property store
class which does not use extended attributes. The Apache HTTP Server, for
example, uses a database to keep track of properties on files, and this
method works on many more platforms and file systems.

Linux and FreeBSD users have has some success running our calendar
server.  Check our bug tracker for status:  


The Calendar Server was implemented using Python 2.4. A number of
things would need to happen to get it to run using Python 2.3:

 * All libraries the server depends on will need to work on Python 2.3.
   vObject is known to require Python 2.4.
 * We use several Python 2.4 features.  Most are easy enough to back-port,
   but nice to use if you have them:
   * built-in set objects
   * generator expressions
   * decorator syntax 


If you are interested in getting involved with development, be sure to
visit our home page for more information: 

Bug reports are welcome, and contributions such as code patches and
documentation are appreciated.  Visit our bug tracker:  

You can chat with other users and developers on IRC on channel
#calendarserver on the server network.

You can also subscribe to our mailing lists for users and developers:

 * calendarserver-users is for users of the Calendar Server. It's the
   main forum for asking questions about installing, configuring and
   administering a Calendar Server.

 * calendarserver-dev is for developers. It's for engineering
   discussions, including design directions, ways of extending the
   server, and reviewing code.

 * calendarserver-changes is for change notifications to the source

Register for mailing lists on our mailing lists page:

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-06-18 (水) 10:36:38 (4510d)