Web-based calendar client
macOS Server includes a Wiki service with a built-in web-based calendar client
that supports accessing calendar data on macOS Server’s Calendar service.
The web-based calendar is part of the Wiki service and so isn’t included in the
open source CalendarServer project.
Wiki calendars
The Wiki service also supports calendars associated with wikis. Those
calendars won’t be accessible directly via the wiki. Apple added a command-
line tool (calendarserver_migrate_wiki) that does convert wiki principals into
resource principals. Because access to the lists of users who previously had
access to each wiki isn’t available, the command-line tool allows the
administrator to specify a read-write delegate. After the migration, user visible
names for the migrated wiki " resource principals can now be changed via
calendarserver_manage_principals. No UID values need to change, and so the
database doesn’t require editing.
Backup of service data
macOS Server has the ability to backup service data via macOS’s Time Machine
service. The open source CalendarServer project doesn’t have any automated
backup. Instead, administrators must use existing backup strategies for the
configuration and database files. There are tools available for the postgres
database server to support live backup and replication strategies. See the
postgres documentation at:
https://www.postgresql.org/docs/9.5/static/backup.html.
Switch from macOS Server to open source
You can install and configure the open source CalendarServer so that it can run
on a server that has macOS Server installed with existing Calendar or Contacts
service data. You can use either the manual instructions or a transition script.
Both methods are described below.
IMPORTANT: The postgres version that is installed to replace the one bundled
with macOS Server must match the version of the existing cluster, otherwise
you must manually upgrade the cluster (consult the postgres documentation for
guidance). If you have a cluster created by a postgres version earlier than the
one installed by the “package” script (currently 9.5.3), you can work around this
by manually installing the matching version of postgres before taking the steps
below, which will cause the “package” script to use the already-installed version
of postgres. You can find the version of the installed postgres software using
the command: pg_config —version.
Manual instructions
1. Create a standard user named “calendarserver” by choosing
System Preferences > Users and Groups, then run the following
commands:
NOTE: By creating a new user, you don’t need root to build everything, and the
server can be configured while logged in as that user. You can still have the
server listen on a privileged port such as 80 or 443 because launchd still
spawns the master process as root.
2. sudo -iu calendarserver
3. git clone https://github.com/apple/ccs-calendarserver.git
4. echo "source CalendarServer/environment.sh" > .profile