For Meetings with Server-side Scheduling either use as organizer CALDAV:calendar-user-address-set or do client-side scheduling
For user bbb@aegee.org (WebDAV only collection account) the corresponding CALDAV:calendar-user-home-set has as value one element: mailto:zzz@aegee.org
and can be adjusted by calling
curl -u bbb@aegee.org:abc -XPROPPATCH -H"Content-Type: text/xml" --data '<?xml version="1.0" encoding="UTF-8"?><propertyupdate xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"><set><prop><C:calendar-user-address-set><href>zzz@aegee.org</href></C:calendar-user-address-set></prop></set></propertyupdate>' https://mail.aegee.org/dav/principals/user/bbb/
curl -D- -u bbb@aegee.org:abc -XPROPFIND -H"Content-Type: text/xml" --data '<?xml version="1.0" encoding="UTF-8"?><propfind xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"> <prop><C:calendar-user-address-set/></prop></propfind>' https://mail.aegee.org/dav/principals/user/bbb
returns
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<response>
<href>/dav/principals/user/bbb</href>
<propstat>
<prop><C:calendar-user-address-set><href preferred="1">zzz@aegee.org</href></C:calendar-user-address-set></prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>
When I create a meeting in Evolution in the personal calendar of the user, Evolution uploads ORGANIZER:mailto:bbb@aegee.org
instead of ORGANIZER:mailto:zzz@aegee.org
and the server does not schedule. On PUT in CalDAV the server returns the Schedule-Tag header, when it has done scheduling, and ETag otherwise. In CalDAV the server does only scheduling, when the ORGANIZER/ATTENDEE value is in the calendar-user-address-set property per principal. (There is a proposal to extend this property per calendar.) The presence of DAV:calendar-auto-schedule
on calendar’s OPTIONS does not mean, that the server does server-side scheduling for all users, since the value of OPTIONS does not depend on the authenticated state.
- For CalDAV accounts, let the user choose as organizer among the addresses returned in the CALDAV:calendar-user-address-set property. These might not contain the login username (that looks like an email address). The choice of other organizer leads to no server-side scheduling
- When uploading iCalendar objects over CalDAV, predict based on CALDAV:calendar-user-address, whether the server will do scheduling, and if not, offer before the upload the options to the user: to change the organizer, not to do scheduling (sending iMIP messages), send the iMAP messages by Evolution (client-side scheduling).
For the cases with several email addresses in the address-set, https://github.com/cyrusimap/cyrus-imapd/blob/master/imap/http_caldav.c#L6254 adds 'preferred=1' attribute to one of the email addresses, and states:
/* apple will use the alphabetically first href, and Thunderbird will use the last one in order, so we set preferred for Apple, and put the preferred one last for Thunderbird (and maybe others)