README for upgrading from 5.1 to 8.0, assuming, you are using XML directory service. (in case of LDAP or OD, act accordingly) 1. accounts.xml has a new layout - see /usr/local/share/examples/calendarserver/auth/accounts.xml 2. In that file, and must now be a valid UUID like FCB7BFFB-624D-4201-BA65-E133E439A661 is optional. If both are present uuids must be identical. Clients may be configured with uuid in server path so: /principals/__uids__/FCB7BFFB-624D-4201-BA65-E133E439A661 At your users convinience you can enter her e-mail address into , which may be used as user name instead of server path. The e-mail address must be unique. 3. Stop your server, fix accounts.xml and database. If you have accounts without correct uuids, take a note of the current uid, [old_uid] before replacing it by a real uuid [new_uid]. Creating new uuids can be done with python so: # python Python 2.7.11 (default, Jun 5 2016, 06:09:57) [GCC 4.2.1 Compatible FreeBSD Clang 3.4.1 . . . >>> import uuid >>> str(uuid.uuid4()).upper() '22F5BC05-8EDE-421E-99DD-CEDE1B814635' >>> str(uuid.uuid4()).upper() 'A7211FE0-1D8F-474B-A5AB-262668EECE6C' You must adjust your database as follows: Take a backup of your db or schema in text form like: /usr/local/bin/pg_dump --host=db1 --schema=caldavd development > \ /tmp/DB-backups/development_caldavd_2016-6-9.sql Then edit the dump and replace all occurences of [old_uid] by [new_uid]. Drop the database or the schema and re-create it with edited backup. 4. 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 /usr/local/share/examples/calendarserver/caldav.plist 5. 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. Hints for reconfiguring clients 1. Use of accounts.xml in client account configuration as user name. 2. If Account-URL or server path shows .../principals/__uids__/ delete that entry completly and let client pick up new URL.