Hi All,

I'm trying to understand the code responsible for enumerating user calendars (and xDAV resources in general) to try to make the discovery work for shared resources too (currently there's no way to access shared resources with Apple xDAV client implementation, yes with Thunderbird as it doesn't use the discovery mechanism, but instead should be pointed to the exact URL for each calendar). If I understand it correctly, the functionality is in imap/http_caldav.c.

Could you please point me to the place where the enumeration occurs and briefly mention how the general workflow looks like?

The client asks for:

PROPFIND /dav/calendars/user/<user@domain>/

<A:propfind xmlns:A="DAV:">
...

The server responds with:

HTTP/1.1 207 Multi-Status

<A:multistatus xmlns:A="DAV:" ...>
  <A:response>
<A:href>/dav/calendars/user/<user@domain>/</A:href>
    <A:propstat>
...
  </A:response>
  <A:response>
<A:href>/dav/calendars/user/<user@domain>/Default/</A:href>
    <A:propstat>
      <A:prop>
...

The idea is to include in the returned lists the shared calendars too with the discovery logic based on the IMAP shared folders.

Below goes the initial exchange between the calendar app on iOS 10.2.6 and Cyrus 3.0.5 when the exact URL (/dav/calendars/shared/) for the shared calendar is provided in the advanced settings of the app (the URL finally resets to the user principals folder (/dav/principals/user/t...@domain.com/) as iOS is pointed to it by Cyrus). In the attached file goes the telemetry for the rest of the communication.

Thanks,
Anatoli

---------- t...@domain.com Sun Mar 25 06:05:36 2018

<1521968736<*PROPFIND* */dav/calendars/shared/* HTTP/1.1
Accept: */*
Content-type: text/xml
Connection: keep-alive
Content-length: 181
Host: mail.domain.com
User-agent: iOS/11.2.6 (15D100) accountsd/1.0
Prefer: return=minimal
Depth: 0
Brief: t
Accept-language: en-us
Authorization: Basic ...
Accept-encoding: br, gzip, deflate

<1521968736<<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:current-user-principal/>
    <A:principal-URL/>
    <A:resourcetype/>
  </A:prop>
</A:propfind>


>1521968736>HTTP/1.1 207 Multi-Status
Date: Sun, 25 Mar 2018 09:05:36 GMT
Strict-Transport-Security: max-age=600
Vary: Accept-Encoding, Brief, Prefer
Preference-Applied: return=minimal
Content-Type: application/xml; charset=utf-8
Content-Length: 546

<?xml version="1.0" encoding="utf-8"?>
<A:multistatus xmlns:A="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
  <A:response>
    <A:href>*/dav/calendars/shared/*</A:href>
    <A:propstat>
      <A:prop>
        <A:current-user-principal>
          <A:href>*/dav/principals/user/t...@domain.com/*</A:href>
        </A:current-user-principal>
        <A:resourcetype>
          <A:collection/>
          <C:calendar/>
        </A:resourcetype>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
</A:multistatus>

<1521968736<OPTIONS /dav/principals/user/t3%40domain.com/ HTTP/1.1
Host: mail.domain.com
Connection: keep-alive
Accept: */*
User-Agent: iOS/11.2.6 (15D100) accountsd/1.0
Accept-Language: en-us
Content-Length: 0
Accept-Encoding: br, gzip, deflate

>1521968736>HTTP/1.1 200 OK
Date: Sun, 25 Mar 2018 09:05:36 GMT
Strict-Transport-Security: max-age=600
Cache-Control: no-cache
Link: </dav/principals/.server-info>; rel="server-info"; token="80769c2c66d340ecd178710db26d56b9c4699e3e"
DAV: 1, 2, 3, access-control, extended-mkcol, resource-sharing
DAV: calendar-access, calendar-auto-schedule
DAV: calendar-query-extended, calendar-availability, calendar-managed-attachments
DAV: calendarserver-sharing, inbox-availability
DAV: addressbook
Allow: OPTIONS, GET, HEAD
Allow: PROPFIND, REPORT, COPY
Content-Length: 0
---------- t...@domain.com Sun Mar 25 06:05:38 2018

<1521968738<PROPFIND /dav/principals/user/t3%40domain.com/ HTTP/1.1
Accept: */*
Content-type: text/xml
Connection: keep-alive
Content-length: 743
Host: mail.domain.com
User-agent: iOS/11.2.6 (15D100) dataaccessd/1.0
Prefer: return=minimal
Depth: 0
Brief: t
Accept-language: en-us
Authorization: Basic ...
Accept-encoding: br, gzip, deflate

<1521968738<<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-home-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:current-user-principal/>
    <A:displayname/>
    <C:dropbox-home-URL xmlns:C="http://calendarserver.org/ns/"/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
    <C:notification-URL xmlns:C="http://calendarserver.org/ns/"/>
    <A:principal-collection-set/>
    <A:principal-URL/>
    <A:resource-id/>
    <B:schedule-inbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:schedule-outbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:supported-report-set/>
  </A:prop>
</A:propfind>
>1521968738>HTTP/1.1 207 Multi-Status
Date: Sun, 25 Mar 2018 09:05:38 GMT
Strict-Transport-Security: max-age=600
Vary: Accept-Encoding, Brief, Prefer
Preference-Applied: return=minimal
Content-Type: application/xml; charset=utf-8
Content-Length: 1955

<?xml version="1.0" encoding="utf-8"?>
<A:multistatus xmlns:A="DAV:" xmlns:B="urn:ietf:params:xml:ns:caldav" xmlns:C="http://calendarserver.org/ns/";>
  <A:response>
    <A:href>/dav/principals/user/t...@domain.com/</A:href>
    <A:propstat>
      <A:prop>
        <B:calendar-home-set>
          <A:href>/dav/calendars/user/t...@domain.com/</A:href>
        </B:calendar-home-set>
        <B:calendar-user-address-set>
          <A:href>mailto:t...@domain.com</A:href>
        </B:calendar-user-address-set>
        <A:current-user-principal>
          <A:href>/dav/principals/user/t...@domain.com/</A:href>
        </A:current-user-principal>
        <A:displayname>t...@domain.com</A:displayname>
        <C:notification-URL>
          <A:href>/dav/notifications/user/t...@domain.com/</A:href>
        </C:notification-URL>
        <A:principal-collection-set>
          <A:href>/dav/principals/user/</A:href>
        </A:principal-collection-set>
        <A:principal-URL>
          <A:href>/dav/principals/user/t...@domain.com/</A:href>
        </A:principal-URL>
        <B:schedule-inbox-URL>
          <A:href>/dav/calendars/user/t...@domain.com/Inbox/</A:href>
        </B:schedule-inbox-URL>
        <B:schedule-outbox-URL>
          <A:href>/dav/calendars/user/t...@domain.com/Outbox/</A:href>
        </B:schedule-outbox-URL>
        <A:supported-report-set>
          <A:supported-report>
            <A:report>
              <A:expand-property/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:principal-property-search/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:principal-search-property-set/>
            </A:report>
          </A:supported-report>
        </A:supported-report-set>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
</A:multistatus>
---------- t...@domain.com Sun Mar 25 06:05:38 2018

<1521968738<OPTIONS /dav/principals/user/t3%40domain.com/ HTTP/1.1
Accept: */*
Connection: keep-alive
Content-length: 0
Host: mail.domain.com
User-agent: iOS/11.2.6 (15D100) dataaccessd/1.0
Accept-language: en-us
Authorization: Basic ...
Accept-encoding: br, gzip, deflate

>1521968738>HTTP/1.1 200 OK
Date: Sun, 25 Mar 2018 09:05:38 GMT
Strict-Transport-Security: max-age=600
Cache-Control: no-cache
Link: </dav/principals/.server-info>; rel="server-info"; token="80769c2c66d340ecd178710db26d56b9c4699e3e"
DAV: 1, 2, 3, access-control, extended-mkcol, resource-sharing
DAV: calendar-access, calendar-auto-schedule
DAV: calendar-query-extended, calendar-availability, calendar-managed-attachments
DAV: calendarserver-sharing, inbox-availability
DAV: addressbook
Allow: OPTIONS, GET, HEAD
Allow: PROPFIND, REPORT, COPY
Content-Length: 0

<1521968738<PROPFIND /dav/calendars/user/t3%40domain.com/ HTTP/1.1
Host: mail.domain.com
Content-Type: text/xml
Depth: 1
Brief: t
Accept: */*
Connection: keep-alive
Prefer: return=minimal
User-Agent: iOS/11.2.6 (15D100) dataaccessd/1.0
Content-Length: 2217
Accept-Language: en-us
Accept-Encoding: br, gzip, deflate

<1521968738<<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:add-member/>
    <C:allowed-sharing-modes xmlns:C="http://calendarserver.org/ns/"/>
    <E:autoprovisioned xmlns:E="http://apple.com/ns/ical/"/>
    <F:bulk-requests xmlns:F="http://me.com/_namespace/"/>
    <B:calendar-alarm xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <E:calendar-color xmlns:E="http://apple.com/ns/ical/"/>
    <B:calendar-description xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:calendar-free-busy-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <E:calendar-order xmlns:E="http://apple.com/ns/ical/"/>
    <B:calendar-timezone xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:current-user-privilege-set/>
    <B:default-alarm-vevent-date xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:default-alarm-vevent-datetime xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:getctag xmlns:C="http://calendarserver.org/ns/"/>
    <C:invite xmlns:C="http://calendarserver.org/ns/"/>
    <E:language-code xmlns:E="http://apple.com/ns/ical/"/>
    <E:location-code xmlns:E="http://apple.com/ns/ical/"/>
    <A:owner/>
    <C:pre-publish-url xmlns:C="http://calendarserver.org/ns/"/>
    <C:publish-url xmlns:C="http://calendarserver.org/ns/"/>
    <C:push-transports xmlns:C="http://calendarserver.org/ns/"/>
    <C:pushkey xmlns:C="http://calendarserver.org/ns/"/>
    <A:quota-available-bytes/>
    <A:quota-used-bytes/>
    <E:refreshrate xmlns:E="http://apple.com/ns/ical/"/>
    <A:resource-id/>
    <A:resourcetype/>
    <B:schedule-calendar-transp xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:schedule-default-calendar-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <C:source xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-alarms xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-attachments xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-todos xmlns:C="http://calendarserver.org/ns/"/>
    <B:supported-calendar-component-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:supported-calendar-component-sets xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:supported-report-set/>
    <A:sync-token/>
  </A:prop>
</A:propfind>
>1521968738>HTTP/1.1 207 Multi-Status
Date: Sun, 25 Mar 2018 09:05:38 GMT
Strict-Transport-Security: max-age=600
Vary: Accept-Encoding, Brief, Prefer
Preference-Applied: return=minimal
Content-Type: application/xml; charset=utf-8
Content-Length: 9412

<?xml version="1.0" encoding="utf-8"?>
<A:multistatus xmlns:A="DAV:" xmlns:C="http://calendarserver.org/ns/"; xmlns:E="http://apple.com/ns/ical/"; xmlns:F="http://me.com/_namespace/"; xmlns:B="urn:ietf:params:xml:ns:caldav" xmlns:CY="http://cyrusimap.org/ns/";>
  <A:response>
    <A:href>/dav/calendars/user/t...@domain.com/</A:href>
    <A:propstat>
      <A:prop>
        <C:allowed-sharing-modes/>
        <F:bulk-requests/>
        <A:current-user-privilege-set>
          <A:privilege>
            <A:all/>
          </A:privilege>
          <A:privilege>
            <A:read/>
          </A:privilege>
          <A:privilege>
            <B:read-free-busy/>
          </A:privilege>
          <A:privilege>
            <A:write/>
          </A:privilege>
          <A:privilege>
            <A:write-content/>
          </A:privilege>
          <A:privilege>
            <A:write-properties/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-collection/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-resource/>
          </A:privilege>
          <A:privilege>
            <A:bind/>
          </A:privilege>
          <A:privilege>
            <CY:make-collection/>
          </A:privilege>
          <A:privilege>
            <CY:add-resource/>
          </A:privilege>
          <A:privilege>
            <A:unbind/>
          </A:privilege>
          <A:privilege>
            <CY:remove-collection/>
          </A:privilege>
          <A:privilege>
            <CY:remove-resource/>
          </A:privilege>
          <A:privilege>
            <CY:admin/>
          </A:privilege>
        </A:current-user-privilege-set>
        <A:displayname><![CDATA[#calendars]]></A:displayname>
        <C:invite/>
        <A:owner>
          <A:href>/dav/principals/user/t...@domain.com/</A:href>
        </A:owner>
        <A:quota-available-bytes>-37571</A:quota-available-bytes>
        <A:quota-used-bytes>0</A:quota-used-bytes>
        <A:resourcetype>
          <A:collection/>
        </A:resourcetype>
        <A:supported-report-set>
          <A:supported-report>
            <A:report>
              <A:expand-property/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:acl-principal-prop-set/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:sync-collection/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:calendar-query/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:calendar-multiget/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:free-busy-query/>
            </A:report>
          </A:supported-report>
        </A:supported-report-set>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
  <A:response>
    <A:href>/dav/calendars/user/t...@domain.com/Default/</A:href>
    <A:propstat>
      <A:prop>
        <A:add-member>
          <A:href>/dav/calendars/user/t...@domain.com/Default/?action=add-member</A:href>
        </A:add-member>
        <C:allowed-sharing-modes>
          <C:can-be-shared/>
        </C:allowed-sharing-modes>
        <F:bulk-requests>
          <F:simple>
            <F:max-resources/>
            <F:max-bytes/>
          </F:simple>
        </F:bulk-requests>
        <E:calendar-color><![CDATA[#1badf8]]></E:calendar-color>
        <E:calendar-order><![CDATA[0]]></E:calendar-order>
        <A:current-user-privilege-set>
          <A:privilege>
            <A:all/>
          </A:privilege>
        >1521968738>  <A:privilege>
            <A:read/>
          </A:privilege>
          <A:privilege>
            <B:read-free-busy/>
          </A:privilege>
          <A:privilege>
            <A:write/>
          </A:privilege>
          <A:privilege>
            <A:write-content/>
          </A:privilege>
          <A:privilege>
            <A:write-properties/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-collection/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-resource/>
          </A:privilege>
          <A:privilege>
            <A:bind/>
          </A:privilege>
          <A:privilege>
            <CY:make-collection/>
          </A:privilege>
          <A:privilege>
            <CY:add-resource/>
          </A:privilege>
          <A:privilege>
            <A:unbind/>
          </A:privilege>
          <A:privilege>
            <CY:remove-collection/>
          </A:privilege>
          <A:privilege>
            <CY:remove-resource/>
          </A:privilege>
          <A:privilege>
            <CY:admin/>
          </A:privilege>
        </A:current-user-privilege-set>
        <A:displayname><![CDATA[personal]]></A:displayname>
        <C:getctag>1520951272-304</C:getctag>
        <C:invite/>
        <A:owner>
          <A:href>/dav/principals/user/t...@domain.com/</A:href>
        </A:owner>
        <A:quota-available-bytes>-37571</A:quota-available-bytes>
        <A:quota-used-bytes>28401</A:quota-used-bytes>
        <A:resourcetype>
          <A:collection/>
          <B:calendar/>
        </A:resourcetype>
        <B:supported-calendar-component-set>
          <B:comp name="VEVENT"/>
          <B:comp name="VTODO"/>
          <B:comp name="VJOURNAL"/>
          <B:comp name="VFREEBUSY"/>
          <B:comp name="VAVAILABILITY"/>
        </B:supported-calendar-component-set>
        <B:supported-calendar-component-sets>
          <B:comp name="VEVENT"/>
          <B:comp name="VTODO"/>
          <B:comp name="VJOURNAL"/>
          <B:comp name="VFREEBUSY"/>
          <B:comp name="VAVAILABILITY"/>
        </B:supported-calendar-component-sets>
        <A:supported-report-set>
          <A:supported-report>
            <A:report>
              <A:expand-property/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:acl-principal-prop-set/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:sync-collection/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:calendar-query/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:calendar-multiget/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:free-busy-query/>
            </A:report>
          </A:supported-report>
        </A:supported-report-set>
        <A:sync-token>data:,1520951272-304</A:sync-token>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
  <A:response>
    <A:href>/dav/notifications/user/t...@domain.com/</A:href>
    <A:propstat>
      <A:prop>
        <A:current-user-privilege-set>
          <A:privilege>
            <A:all/>
          </A:privilege>
          <A:privilege>
            <A:read/>
          </A:privilege>
          <A:privilege>
            <A:write/>
          </A:privilege>
          <A:privilege>
            <A:write-content/>
          </A:privilege>
          <A:privilege>
            <A:write-properties/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-collection/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-resource/>
          </A:privilege>
          <A:privilege>
            <A:bind/>
          </A:privilege>
          <A:privilege>
            <CY:make-collection/>
          </>1521968738>A:privilege>
          <A:privilege>
            <CY:add-resource/>
          </A:privilege>
          <A:privilege>
            <A:unbind/>
          </A:privilege>
          <A:privilege>
            <CY:remove-collection/>
          </A:privilege>
          <A:privilege>
            <CY:remove-resource/>
          </A:privilege>
          <A:privilege>
            <CY:admin/>
          </A:privilege>
        </A:current-user-privilege-set>
        <A:displayname><![CDATA[#notifications]]></A:displayname>
        <C:getctag>1520951271-20</C:getctag>
        <A:owner>
          <A:href>/dav/principals/user/t...@domain.com/</A:href>
        </A:owner>
        <A:resourcetype>
          <A:collection/>
          <A:notifications/>
          <C:notification/>
        </A:resourcetype>
        <A:supported-report-set>
          <A:supported-report>
            <A:report>
              <A:expand-property/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:acl-principal-prop-set/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:sync-collection/>
            </A:report>
          </A:supported-report>
        </A:supported-report-set>
        <A:sync-token>data:,1520951271-20</A:sync-token>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
</A:multistatus>
---------- t...@domain.com Sun Mar 25 06:05:38 2018

<1521968738<PROPFIND /dav/principals/user/t3%40domain.com/ HTTP/1.1
Accept: */*
Content-type: text/xml
Connection: keep-alive
Content-length: 267
Host: mail.domain.com
User-agent: iOS/11.2.6 (15D100) dataaccessd/1.0
Prefer: return=minimal
Depth: 0
Brief: t
Accept-language: en-us
Authorization: Basic ...
Accept-encoding: br, gzip, deflate

<1521968738<<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
  </A:prop>
</A:propfind>
>1521968738>HTTP/1.1 207 Multi-Status
Date: Sun, 25 Mar 2018 09:05:38 GMT
Strict-Transport-Security: max-age=600
Vary: Accept-Encoding, Brief, Prefer
Preference-Applied: return=minimal
Content-Type: application/xml; charset=utf-8
Content-Length: 542

<?xml version="1.0" encoding="utf-8"?>
<A:multistatus xmlns:A="DAV:" xmlns:B="urn:ietf:params:xml:ns:caldav" xmlns:C="http://calendarserver.org/ns/";>
  <A:response>
    <A:href>/dav/principals/user/t...@domain.com/</A:href>
    <A:propstat>
      <A:prop>
        <B:calendar-user-address-set>
          <A:href>mailto:t...@domain.com</A:href>
        </B:calendar-user-address-set>
        <A:displayname>t...@domain.com</A:displayname>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
</A:multistatus>
---------- t...@domain.com Sun Mar 25 06:05:38 2018

<1521968738<PROPFIND /dav/principals/user/t3%40domain.com/ HTTP/1.1
Accept: */*
Content-type: text/xml
Connection: keep-alive
Content-length: 267
Host: mail.domain.com
User-agent: iOS/11.2.6 (15D100) dataaccessd/1.0
Prefer: return=minimal
Depth: 0
Brief: t
Accept-language: en-us
Authorization: Basic ...
Accept-encoding: br, gzip, deflate

<1521968738<<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
  </A:prop>
</A:propfind>
>1521968738>HTTP/1.1 207 Multi-Status
Date: Sun, 25 Mar 2018 09:05:38 GMT
Strict-Transport-Security: max-age=600
Vary: Accept-Encoding, Brief, Prefer
Preference-Applied: return=minimal
Content-Type: application/xml; charset=utf-8
Content-Length: 542

<?xml version="1.0" encoding="utf-8"?>
<A:multistatus xmlns:A="DAV:" xmlns:B="urn:ietf:params:xml:ns:caldav" xmlns:C="http://calendarserver.org/ns/";>
  <A:response>
    <A:href>/dav/principals/user/t...@domain.com/</A:href>
    <A:propstat>
      <A:prop>
        <B:calendar-user-address-set>
          <A:href>mailto:t...@domain.com</A:href>
        </B:calendar-user-address-set>
        <A:displayname>t...@domain.com</A:displayname>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
</A:multistatus>
<1521968742<PROPFIND /dav/calendars/user/t3%40domain.com/ HTTP/1.1
Host: mail.domain.com
Content-Type: text/xml
Depth: 1
Brief: t
Accept: */*
Connection: keep-alive
Prefer: return=minimal
User-Agent: iOS/11.2.6 (15D100) dataaccessd/1.0
Content-Length: 2217
Accept-Language: en-us
Accept-Encoding: br, gzip, deflate

<1521968742<<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:add-member/>
    <C:allowed-sharing-modes xmlns:C="http://calendarserver.org/ns/"/>
    <E:autoprovisioned xmlns:E="http://apple.com/ns/ical/"/>
    <F:bulk-requests xmlns:F="http://me.com/_namespace/"/>
    <B:calendar-alarm xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <E:calendar-color xmlns:E="http://apple.com/ns/ical/"/>
    <B:calendar-description xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:calendar-free-busy-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <E:calendar-order xmlns:E="http://apple.com/ns/ical/"/>
    <B:calendar-timezone xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:current-user-privilege-set/>
    <B:default-alarm-vevent-date xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:default-alarm-vevent-datetime xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:getctag xmlns:C="http://calendarserver.org/ns/"/>
    <C:invite xmlns:C="http://calendarserver.org/ns/"/>
    <E:language-code xmlns:E="http://apple.com/ns/ical/"/>
    <E:location-code xmlns:E="http://apple.com/ns/ical/"/>
    <A:owner/>
    <C:pre-publish-url xmlns:C="http://calendarserver.org/ns/"/>
    <C:publish-url xmlns:C="http://calendarserver.org/ns/"/>
    <C:push-transports xmlns:C="http://calendarserver.org/ns/"/>
    <C:pushkey xmlns:C="http://calendarserver.org/ns/"/>
    <A:quota-available-bytes/>
    <A:quota-used-bytes/>
    <E:refreshrate xmlns:E="http://apple.com/ns/ical/"/>
    <A:resource-id/>
    <A:resourcetype/>
    <B:schedule-calendar-transp xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:schedule-default-calendar-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <C:source xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-alarms xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-attachments xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-todos xmlns:C="http://calendarserver.org/ns/"/>
    <B:supported-calendar-component-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:supported-calendar-component-sets xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:supported-report-set/>
    <A:sync-token/>
  </A:prop>
</A:propfind>
>1521968742>HTTP/1.1 207 Multi-Status
Date: Sun, 25 Mar 2018 09:05:42 GMT
Strict-Transport-Security: max-age=600
Vary: Accept-Encoding, Brief, Prefer
Preference-Applied: return=minimal
Content-Type: application/xml; charset=utf-8
Content-Length: 9412

<?xml version="1.0" encoding="utf-8"?>
<A:multistatus xmlns:A="DAV:" xmlns:C="http://calendarserver.org/ns/"; xmlns:E="http://apple.com/ns/ical/"; xmlns:F="http://me.com/_namespace/"; xmlns:B="urn:ietf:params:xml:ns:caldav" xmlns:CY="http://cyrusimap.org/ns/";>
  <A:response>
    <A:href>/dav/calendars/user/t...@domain.com/</A:href>
    <A:propstat>
      <A:prop>
        <C:allowed-sharing-modes/>
        <F:bulk-requests/>
        <A:current-user-privilege-set>
          <A:privilege>
            <A:all/>
          </A:privilege>
          <A:privilege>
            <A:read/>
          </A:privilege>
          <A:privilege>
            <B:read-free-busy/>
          </A:privilege>
          <A:privilege>
            <A:write/>
          </A:privilege>
          <A:privilege>
            <A:write-content/>
          </A:privilege>
          <A:privilege>
            <A:write-properties/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-collection/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-resource/>
          </A:privilege>
          <A:privilege>
            <A:bind/>
          </A:privilege>
          <A:privilege>
            <CY:make-collection/>
          </A:privilege>
          <A:privilege>
            <CY:add-resource/>
          </A:privilege>
          <A:privilege>
            <A:unbind/>
          </A:privilege>
          <A:privilege>
            <CY:remove-collection/>
          </A:privilege>
          <A:privilege>
            <CY:remove-resource/>
          </A:privilege>
          <A:privilege>
            <CY:admin/>
          </A:privilege>
        </A:current-user-privilege-set>
        <A:displayname><![CDATA[#calendars]]></A:displayname>
        <C:invite/>
        <A:owner>
          <A:href>/dav/principals/user/t...@domain.com/</A:href>
        </A:owner>
        <A:quota-available-bytes>-37571</A:quota-available-bytes>
        <A:quota-used-bytes>0</A:quota-used-bytes>
        <A:resourcetype>
          <A:collection/>
        </A:resourcetype>
        <A:supported-report-set>
          <A:supported-report>
            <A:report>
              <A:expand-property/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:acl-principal-prop-set/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:sync-collection/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:calendar-query/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:calendar-multiget/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:free-busy-query/>
            </A:report>
          </A:supported-report>
        </A:supported-report-set>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
  <A:response>
    <A:href>/dav/calendars/user/t...@domain.com/Default/</A:href>
    <A:propstat>
      <A:prop>
        <A:add-member>
          <A:href>/dav/calendars/user/t...@domain.com/Default/?action=add-member</A:href>
        </A:add-member>
        <C:allowed-sharing-modes>
          <C:can-be-shared/>
        </C:allowed-sharing-modes>
        <F:bulk-requests>
          <F:simple>
            <F:max-resources/>
            <F:max-bytes/>
          </F:simple>
        </F:bulk-requests>
        <E:calendar-color><![CDATA[#1badf8]]></E:calendar-color>
        <E:calendar-order><![CDATA[0]]></E:calendar-order>
        <A:current-user-privilege-set>
          <A:privilege>
            <A:all/>
          </A:privilege>
        >1521968742>  <A:privilege>
            <A:read/>
          </A:privilege>
          <A:privilege>
            <B:read-free-busy/>
          </A:privilege>
          <A:privilege>
            <A:write/>
          </A:privilege>
          <A:privilege>
            <A:write-content/>
          </A:privilege>
          <A:privilege>
            <A:write-properties/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-collection/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-resource/>
          </A:privilege>
          <A:privilege>
            <A:bind/>
          </A:privilege>
          <A:privilege>
            <CY:make-collection/>
          </A:privilege>
          <A:privilege>
            <CY:add-resource/>
          </A:privilege>
          <A:privilege>
            <A:unbind/>
          </A:privilege>
          <A:privilege>
            <CY:remove-collection/>
          </A:privilege>
          <A:privilege>
            <CY:remove-resource/>
          </A:privilege>
          <A:privilege>
            <CY:admin/>
          </A:privilege>
        </A:current-user-privilege-set>
        <A:displayname><![CDATA[personal]]></A:displayname>
        <C:getctag>1520951272-304</C:getctag>
        <C:invite/>
        <A:owner>
          <A:href>/dav/principals/user/t...@domain.com/</A:href>
        </A:owner>
        <A:quota-available-bytes>-37571</A:quota-available-bytes>
        <A:quota-used-bytes>28401</A:quota-used-bytes>
        <A:resourcetype>
          <A:collection/>
          <B:calendar/>
        </A:resourcetype>
        <B:supported-calendar-component-set>
          <B:comp name="VEVENT"/>
          <B:comp name="VTODO"/>
          <B:comp name="VJOURNAL"/>
          <B:comp name="VFREEBUSY"/>
          <B:comp name="VAVAILABILITY"/>
        </B:supported-calendar-component-set>
        <B:supported-calendar-component-sets>
          <B:comp name="VEVENT"/>
          <B:comp name="VTODO"/>
          <B:comp name="VJOURNAL"/>
          <B:comp name="VFREEBUSY"/>
          <B:comp name="VAVAILABILITY"/>
        </B:supported-calendar-component-sets>
        <A:supported-report-set>
          <A:supported-report>
            <A:report>
              <A:expand-property/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:acl-principal-prop-set/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:sync-collection/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:calendar-query/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:calendar-multiget/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <B:free-busy-query/>
            </A:report>
          </A:supported-report>
        </A:supported-report-set>
        <A:sync-token>data:,1520951272-304</A:sync-token>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
  <A:response>
    <A:href>/dav/notifications/user/t...@domain.com/</A:href>
    <A:propstat>
      <A:prop>
        <A:current-user-privilege-set>
          <A:privilege>
            <A:all/>
          </A:privilege>
          <A:privilege>
            <A:read/>
          </A:privilege>
          <A:privilege>
            <A:write/>
          </A:privilege>
          <A:privilege>
            <A:write-content/>
          </A:privilege>
          <A:privilege>
            <A:write-properties/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-collection/>
          </A:privilege>
          <A:privilege>
            <CY:write-properties-resource/>
          </A:privilege>
          <A:privilege>
            <A:bind/>
          </A:privilege>
          <A:privilege>
            <CY:make-collection/>
          </>1521968742>A:privilege>
          <A:privilege>
            <CY:add-resource/>
          </A:privilege>
          <A:privilege>
            <A:unbind/>
          </A:privilege>
          <A:privilege>
            <CY:remove-collection/>
          </A:privilege>
          <A:privilege>
            <CY:remove-resource/>
          </A:privilege>
          <A:privilege>
            <CY:admin/>
          </A:privilege>
        </A:current-user-privilege-set>
        <A:displayname><![CDATA[#notifications]]></A:displayname>
        <C:getctag>1520951271-20</C:getctag>
        <A:owner>
          <A:href>/dav/principals/user/t...@domain.com/</A:href>
        </A:owner>
        <A:resourcetype>
          <A:collection/>
          <A:notifications/>
          <C:notification/>
        </A:resourcetype>
        <A:supported-report-set>
          <A:supported-report>
            <A:report>
              <A:expand-property/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:acl-principal-prop-set/>
            </A:report>
          </A:supported-report>
          <A:supported-report>
            <A:report>
              <A:sync-collection/>
            </A:report>
          </A:supported-report>
        </A:supported-report-set>
        <A:sync-token>data:,1520951271-20</A:sync-token>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
</A:multistatus>
---------- t...@domain.com Sun Mar 25 06:05:42 2018

<1521968742<PROPFIND /dav/principals/user/t3%40domain.com/ HTTP/1.1
Accept: */*
Content-type: text/xml
Connection: keep-alive
Content-length: 267
Host: mail.domain.com
User-agent: iOS/11.2.6 (15D100) dataaccessd/1.0
Prefer: return=minimal
Depth: 0
Brief: t
Accept-language: en-us
Authorization: Basic ...
Accept-encoding: br, gzip, deflate

<1521968742<<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
  </A:prop>
</A:propfind>
>1521968742>HTTP/1.1 207 Multi-Status
Date: Sun, 25 Mar 2018 09:05:42 GMT
Strict-Transport-Security: max-age=600
Vary: Accept-Encoding, Brief, Prefer
Preference-Applied: return=minimal
Content-Type: application/xml; charset=utf-8
Content-Length: 542

<?xml version="1.0" encoding="utf-8"?>
<A:multistatus xmlns:A="DAV:" xmlns:B="urn:ietf:params:xml:ns:caldav" xmlns:C="http://calendarserver.org/ns/";>
  <A:response>
    <A:href>/dav/principals/user/t...@domain.com/</A:href>
    <A:propstat>
      <A:prop>
        <B:calendar-user-address-set>
          <A:href>mailto:t...@domain.com</A:href>
        </B:calendar-user-address-set>
        <A:displayname>t...@domain.com</A:displayname>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
</A:multistatus>
---------- t...@domain.com Sun Mar 25 06:05:42 2018

<1521968742<PROPFIND /dav/principals/user/t3%40domain.com/ HTTP/1.1
Accept: */*
Content-type: text/xml
Connection: keep-alive
Content-length: 267
Host: mail.domain.com
User-agent: iOS/11.2.6 (15D100) dataaccessd/1.0
Prefer: return=minimal
Depth: 0
Brief: t
Accept-language: en-us
Authorization: Basic ...
Accept-encoding: br, gzip, deflate

<1521968742<<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
  </A:prop>
</A:propfind>
>1521968742>HTTP/1.1 207 Multi-Status
Date: Sun, 25 Mar 2018 09:05:42 GMT
Strict-Transport-Security: max-age=600
Vary: Accept-Encoding, Brief, Prefer
Preference-Applied: return=minimal
Content-Type: application/xml; charset=utf-8
Content-Length: 542

<?xml version="1.0" encoding="utf-8"?>
<A:multistatus xmlns:A="DAV:" xmlns:B="urn:ietf:params:xml:ns:caldav" xmlns:C="http://calendarserver.org/ns/";>
  <A:response>
    <A:href>/dav/principals/user/t...@domain.com/</A:href>
    <A:propstat>
      <A:prop>
        <B:calendar-user-address-set>
          <A:href>mailto:t...@domain.com</A:href>
        </B:calendar-user-address-set>
        <A:displayname>t...@domain.com</A:displayname>
      </A:prop>
      <A:status>HTTP/1.1 200 OK</A:status>
    </A:propstat>
  </A:response>
</A:multistatus>

Reply via email to