py27-calendarserver - Calendar and Contacts Server from Apple (RFC 4791, RFC 6352)
||FreeBSD Ports Latest amd64
The open source Calendar and Contacts Server project is a standards-compliant
server implementing the CalDAV and CardDAV protocols (RFC 4791, RFC 6352).
It provides a shared location on the network allowing multiple users to store
and edit calendaring and contact information.
- DOCS: on
- EXAMPLES: on
This is the core code base for the Calendar and Contacts Server,
which is a CalDAV, CardDAV, WebDAV, and HTTP server.
For general information about the server, see:
plus online DOCs, including RFCs in
Before you can run the server, you need to set up a database and a
configuration file (etc/caldavd/caldavd.plist).
If you installed the documentation (default), you can create the database,
assuming a running PostgreSQL server, so:
CREATE DATABASE caldav
OWNER = caldav
ENCODING = 'UTF8'
LC_COLLATE = 'C'
LC_CTYPE = 'C';
and populate it with the caldav tables like so:
psql -h my_server -p my_port \
-f /usr/local/share/doc/calendarserver/current.sql \
-U caldav caldav
If you installed the examples configuration, you could start with a test
configuration by copying and editing from
/usr/local/share/examples/calendarserver/ to /usr/local/etc/caldavd/
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 and Contacts Server with information about these principals.
Some of the directory services which are supported by the Calendar and
Contacts Server include:
- XMLDirectoryService: this service is configurable via an XML file that
contains principal information. The file auth/accounts.xml provides
an example principals configuration.
- OpenDirectoryService: this service uses Apple's OpenDirectory
client (which in turn uses LDAP, Active Directory, etc.) to obtain
The above configuration uses XMLDirectoryService by default.
This is a generally useful configuration for development and testing.
This file contains a user principal, named admin, with password admin,
which is set up (in caldavd-test.plist) to have administrative permissions
on the server.
The value of 'user name' in the client configuration is the value of the
attribute <short-name>. Often an e-mail address is usefull here.
In this case there is no need to define a server path on the client.
Updates from earlier versions may require a DB schema update, which is done
automatically on server start up, if <key>FailIfUpgradeNeeded</key> is set to
Upgrading from the previous version of this port (5.1) requires adjustments
to the configuration:
1. Stop the server, install the new version.
2. accounts.xml has a new layout - see
In that file <guid> is optional. If present, it must be a valid UUID like
If you have invalid UUID values in your guid attributes, the fastest
way to upgrade would be to delete them.
Any change on <guid> requires adjustment of the client configuration, as
the old server path
Creating new uuids can be done with python like this:
Python 2.7.11 (default, Jun 5 2016, 06:09:57)
[GCC 4.2.1 Compatible FreeBSD Clang 3.4.1 . . .
>>> import uuid
3. Fix caldavd.plist
Adjust AdminPrincipals if you changed the admin uid above.
DatabaseConnection has a new format.
For these and all other changes review your plist, using
4. Start the server and follow server log. You should see messages about
schema and data migration like
Starting schema upgrade from version 24 to 60.
Schema upgraded from version 24 to 60.
These schould complete without errors.
Install py27-calendarserver txz package:
# pkg install py27-calendarserver