<div dir="ltr"><div>I don't pretend to understand how discovery works as it seems to depend heavily on client and even protocol (I've seen macOS Calendar.app behaving differently when discovery is performed over HTTPS vs HTTP) but we have had no issues with iOS 11.x.</div><div><br></div><div>The discovery with our server (Axigen) makes use of PROPFIND only (it seems to find calendar collections by PROPFIND-ing with Depth 1 on the calendar home set).</div><div>I am pasting a trace below. The last PROPFIND in the trace is just a re-run of the one preceding it with added credentials (triggered by the 401 response) and it's the one that leads to our server listing all the calendar collections.</div><div><br></div><div>What broke for us with iOS 11 is Reminders.app synchronization -> the client receives a different sync token and ctag but does not perform the sync for some reason.</div><div><br></div><div>--</div><div>Cristian Draghici</div><div><a href="http://axigen.com">axigen.com</a></div><div><br></div><div><br></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">INPUT >> PROPFIND Calendar/</font></div><div><font face="monospace, monospace">Accept-Language: en-us</font></div><div><font face="monospace, monospace">Connection: keep-alive</font></div><div><font face="monospace, monospace">Content-Length: 181</font></div><div><font face="monospace, monospace">Content-Type: application/soap+xml; text/xml</font></div><div><font face="monospace, monospace">Depth: 0</font></div><div><font face="monospace, monospace">Host: xyz</font></div><div><font face="monospace, monospace">User-Agent: iOS/11.1 (15B93) accountsd/1.0</font></div><div><font face="monospace, monospace"><?xml version="1.0" encoding="UTF-8"?></font></div><div><font face="monospace, monospace"><A:propfind xmlns:A="DAV:"></font></div><div><font face="monospace, monospace">  <A:prop></font></div><div><font face="monospace, monospace">    <A:current-user-principal/></font></div><div><font face="monospace, monospace">    <A:principal-URL/></font></div><div><font face="monospace, monospace">    <A:resourcetype/></font></div><div><font face="monospace, monospace">  </A:prop></font></div><div><font face="monospace, monospace"></A:propfind></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">OUTPUT << </font></div><div><font face="monospace, monospace">Code: 207</font></div><div><font face="monospace, monospace">Content-Type: text/xml</font></div><div><font face="monospace, monospace"><?xml version="1.0" encoding="utf-8" standalone="no" ?></font></div><div><font face="monospace, monospace"><A:multistatus xmlns:A="DAV:"></font></div><div><font face="monospace, monospace">  <A:response></font></div><div><font face="monospace, monospace">    <A:href>/Calendar/</A:href></font></div><div><font face="monospace, monospace">    <A:propstat></font></div><div><font face="monospace, monospace">      <A:prop></font></div><div><font face="monospace, monospace">        <A:current-user-principal></font></div><div><font face="monospace, monospace">          <A:href>/principals/user/<a href="http://q2@q1w2z3.ro/">q2@q1w2z3.ro/</a></A:href></font></div><div><font face="monospace, monospace">        </A:current-user-principal></font></div><div><font face="monospace, monospace">        <A:principal-URL></font></div><div><font face="monospace, monospace">          <A:href>/principals/user/<a href="http://q2@q1w2z3.ro/">q2@q1w2z3.ro/</a></A:href></font></div><div><font face="monospace, monospace">        </A:principal-URL></font></div><div><font face="monospace, monospace">        <A:resourcetype></font></div><div><font face="monospace, monospace">          <A:collection/></font></div><div><font face="monospace, monospace">        </A:resourcetype></font></div><div><font face="monospace, monospace">      </A:prop></font></div><div><font face="monospace, monospace">      <A:status>HTTP/1.1 200 OK</A:status></font></div><div><font face="monospace, monospace">    </A:propstat></font></div><div><font face="monospace, monospace">  </A:response></font></div><div><font face="monospace, monospace"></A:multistatus></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">INPUT >> PROPFIND principals/user/<a href="http://q2@q1w2z3.ro/">q2@q1w2z3.ro/</a> </font></div><div><font face="monospace, monospace">Accept-Language: en-us</font></div><div><font face="monospace, monospace">Connection: keep-alive</font></div><div><font face="monospace, monospace">Content-Length: 743</font></div><div><font face="monospace, monospace">Content-Type: application/soap+xml; text/xml</font></div><div><font face="monospace, monospace">Depth: 0</font></div><div><font face="monospace, monospace">Host: xyz</font></div><div><font face="monospace, monospace">User-Agent: iOS/11.1 (15B93) dataaccessd/1.0</font></div><div><font face="monospace, monospace"><?xml version="1.0" encoding="UTF-8"?></font></div><div><font face="monospace, monospace"><B:propfind xmlns:B="DAV:"></font></div><div><font face="monospace, monospace">  <B:prop></font></div><div><font face="monospace, monospace">    <C:calendar-home-set xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <C:calendar-user-address-set xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <B:current-user-principal/></font></div><div><font face="monospace, monospace">    <B:displayname/></font></div><div><font face="monospace, monospace">    <A:dropbox-home-URL xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <A:email-address-set xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <A:notification-URL xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <B:principal-collection-set/></font></div><div><font face="monospace, monospace">    <B:principal-URL/></font></div><div><font face="monospace, monospace">    <B:resource-id/></font></div><div><font face="monospace, monospace">    <C:schedule-inbox-URL xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <C:schedule-outbox-URL xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <B:supported-report-set/></font></div><div><font face="monospace, monospace">  </B:prop></font></div><div><font face="monospace, monospace"></B:propfind></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">OUTPUT << </font></div><div><font face="monospace, monospace">Code: 207</font></div><div><font face="monospace, monospace">Content-Type: text/xml</font></div><div><font face="monospace, monospace"><?xml version="1.0" encoding="utf-8" standalone="no" ?></font></div><div><font face="monospace, monospace"><A:multistatus xmlns:A="DAV:"></font></div><div><font face="monospace, monospace">  <A:response></font></div><div><font face="monospace, monospace">    <A:href>/principals/user/<a href="http://q2@q1w2z3.ro/">q2@q1w2z3.ro/</a></A:href></font></div><div><font face="monospace, monospace">    <A:propstat></font></div><div><font face="monospace, monospace">      <A:prop></font></div><div><font face="monospace, monospace">        <B:calendar-home-set xmlns:B="urn:ietf:params:xml:ns:caldav"></font></div><div><font face="monospace, monospace">          <A:href>/Calendar/</A:href></font></div><div><font face="monospace, monospace">        </B:calendar-home-set></font></div><div><font face="monospace, monospace">        <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"></font></div><div><font face="monospace, monospace">          <A:href>mailto:<a href="mailto:q2@q1w2z3.ro">q2@q1w2z3.ro</a></A:href></font></div><div><font face="monospace, monospace">        </B:calendar-user-address-set></font></div><div><font face="monospace, monospace">        <A:current-user-principal></font></div><div><font face="monospace, monospace">          <A:href>/principals/user/<a href="http://q2@q1w2z3.ro/">q2@q1w2z3.ro/</a></A:href></font></div><div><font face="monospace, monospace">        </A:current-user-principal></font></div><div><font face="monospace, monospace">        <A:displayname><a href="mailto:q2@q1w2z3.ro">q2@q1w2z3.ro</a></A:displayname></font></div><div><font face="monospace, monospace">        <C:email-address-set xmlns:C="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"></font></div><div><font face="monospace, monospace">          <C:email-address><a href="mailto:q2@q1w2z3.ro">q2@q1w2z3.ro</a></C:email-address></font></div><div><font face="monospace, monospace">        </C:email-address-set></font></div><div><font face="monospace, monospace">        <C:notification-URL xmlns:C="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>">/Calendar/Pisici</C:notification-URL></font></div><div><font face="monospace, monospace">        <A:principal-collection-set></font></div><div><font face="monospace, monospace">          <A:href>/principals/</A:href></font></div><div><font face="monospace, monospace">        </A:principal-collection-set></font></div><div><font face="monospace, monospace">        <A:principal-URL></font></div><div><font face="monospace, monospace">          <A:href>/principals/user/<a href="http://q2@q1w2z3.ro/">q2@q1w2z3.ro/</a></A:href></font></div><div><font face="monospace, monospace">        </A:principal-URL></font></div><div><font face="monospace, monospace">        <B:schedule-inbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"></font></div><div><font face="monospace, monospace">          <A:href>/Calendar/inbox/</A:href></font></div><div><font face="monospace, monospace">        </B:schedule-inbox-URL></font></div><div><font face="monospace, monospace">        <B:schedule-outbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"></font></div><div><font face="monospace, monospace">          <A:href>/Calendar/outbox/</A:href></font></div><div><font face="monospace, monospace">        </B:schedule-outbox-URL></font></div><div><font face="monospace, monospace">        <A:supported-report-set></font></div><div><font face="monospace, monospace">          <A:supported-report></font></div><div><font face="monospace, monospace">            <A:report></font></div><div><font face="monospace, monospace">              <C:calendarserver-principal-search xmlns:C="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">            </A:report></font></div><div><font face="monospace, monospace">          </A:supported-report></font></div><div><font face="monospace, monospace">          <A:supported-report></font></div><div><font face="monospace, monospace">            <A:report></font></div><div><font face="monospace, monospace">              <B:calendar-query xmlns:B="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">            </A:report></font></div><div><font face="monospace, monospace">            <A:report></font></div><div><font face="monospace, monospace">              <D:addressbook-query xmlns:D="urn:ietf:params:xml:ns:carddav"/></font></div><div><font face="monospace, monospace">            </A:report></font></div><div><font face="monospace, monospace">          </A:supported-report></font></div><div><font face="monospace, monospace">          <A:supported-report></font></div><div><font face="monospace, monospace">            <A:report></font></div><div><font face="monospace, monospace">              <B:calendar-multiget xmlns:B="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">            </A:report></font></div><div><font face="monospace, monospace">          </A:supported-report></font></div><div><font face="monospace, monospace">          <A:supported-report></font></div><div><font face="monospace, monospace">            <A:report></font></div><div><font face="monospace, monospace">              <B:free-busy-query xmlns:B="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">            </A:report></font></div><div><font face="monospace, monospace">          </A:supported-report></font></div><div><font face="monospace, monospace">          <A:supported-report></font></div><div><font face="monospace, monospace">            <A:report></font></div><div><font face="monospace, monospace">              <D:addressbook-multiget xmlns:D="urn:ietf:params:xml:ns:carddav"/></font></div><div><font face="monospace, monospace">            </A:report></font></div><div><font face="monospace, monospace">          </A:supported-report></font></div><div><font face="monospace, monospace">        </A:supported-report-set></font></div><div><font face="monospace, monospace">      </A:prop></font></div><div><font face="monospace, monospace">      <A:status>HTTP/1.1 200 OK</A:status></font></div><div><font face="monospace, monospace">    </A:propstat></font></div><div><font face="monospace, monospace">    <A:propstat></font></div><div><font face="monospace, monospace">      <A:prop></font></div><div><font face="monospace, monospace">        <C:dropbox-home-URL xmlns:C="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">        <A:resource-id/></font></div><div><font face="monospace, monospace">      </A:prop></font></div><div><font face="monospace, monospace">      <A:status>HTTP/1.1 404 Not Found</A:status></font></div><div><font face="monospace, monospace">    </A:propstat></font></div><div><font face="monospace, monospace">  </A:response></font></div><div><font face="monospace, monospace"></A:multistatus></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">INPUT >> PROPFIND Calendar/ </font></div><div><font face="monospace, monospace">Accept-Language: en-us</font></div><div><font face="monospace, monospace">Connection: keep-alive</font></div><div><font face="monospace, monospace">Content-Length: 2217</font></div><div><font face="monospace, monospace">Content-Type: application/soap+xml; text/xml</font></div><div><font face="monospace, monospace">Depth: 1</font></div><div><font face="monospace, monospace">Host: xyz</font></div><div><font face="monospace, monospace">User-Agent: iOS/11.1 (15B93) dataaccessd/1.0</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"><?xml version="1.0" encoding="UTF-8"?></font></div><div><font face="monospace, monospace"><B:propfind xmlns:B="DAV:"></font></div><div><font face="monospace, monospace">  <B:prop></font></div><div><font face="monospace, monospace">    <B:add-member/></font></div><div><font face="monospace, monospace">    <A:allowed-sharing-modes xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <D:autoprovisioned xmlns:D="<a href="http://apple.com/ns/ical/">http://apple.com/ns/ical/</a>"/></font></div><div><font face="monospace, monospace">    <E:bulk-requests xmlns:E="<a href="http://me.com/_namespace/">http://me.com/_namespace/</a>"/></font></div><div><font face="monospace, monospace">    <C:calendar-alarm xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <D:calendar-color xmlns:D="<a href="http://apple.com/ns/ical/">http://apple.com/ns/ical/</a>"/></font></div><div><font face="monospace, monospace">    <C:calendar-description xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <C:calendar-free-busy-set xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <D:calendar-order xmlns:D="<a href="http://apple.com/ns/ical/">http://apple.com/ns/ical/</a>"/></font></div><div><font face="monospace, monospace">    <C:calendar-timezone xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <B:current-user-privilege-set/></font></div><div><font face="monospace, monospace">    <C:default-alarm-vevent-date xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <C:default-alarm-vevent-datetime xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <B:displayname/></font></div><div><font face="monospace, monospace">    <A:getctag xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <A:invite xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <D:language-code xmlns:D="<a href="http://apple.com/ns/ical/">http://apple.com/ns/ical/</a>"/></font></div><div><font face="monospace, monospace">    <D:location-code xmlns:D="<a href="http://apple.com/ns/ical/">http://apple.com/ns/ical/</a>"/></font></div><div><font face="monospace, monospace">    <B:owner/></font></div><div><font face="monospace, monospace">    <A:pre-publish-url xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <A:publish-url xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <A:push-transports xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <A:pushkey xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <B:quota-available-bytes/></font></div><div><font face="monospace, monospace">    <B:quota-used-bytes/></font></div><div><font face="monospace, monospace">    <D:refreshrate xmlns:D="<a href="http://apple.com/ns/ical/">http://apple.com/ns/ical/</a>"/></font></div><div><font face="monospace, monospace">    <B:resource-id/></font></div><div><font face="monospace, monospace">    <B:resourcetype/></font></div><div><font face="monospace, monospace">    <C:schedule-calendar-transp xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <C:schedule-default-calendar-URL xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <A:source xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <A:subscribed-strip-alarms xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <A:subscribed-strip-attachments xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <A:subscribed-strip-todos xmlns:A="<a href="http://calendarserver.org/ns/">http://calendarserver.org/ns/</a>"/></font></div><div><font face="monospace, monospace">    <C:supported-calendar-component-set xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <C:supported-calendar-component-sets xmlns:C="urn:ietf:params:xml:ns:caldav"/></font></div><div><font face="monospace, monospace">    <B:supported-report-set/></font></div><div><font face="monospace, monospace">    <B:sync-token/></font></div><div><font face="monospace, monospace">  </B:prop></font></div><div><font face="monospace, monospace"></B:propfind></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">OUTPUT << </font></div><div><font face="monospace, monospace">Code: 401</font></div><div><font face="monospace, monospace">Content-Type: (null)</font></div><div><font face="monospace, monospace"><?xml version="1.0" encoding="utf-8" standalone="no" ?></font></div><div><font face="monospace, monospace"><A:multistatus xmlns:A="DAV:"/></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">INPUT >> PROPFIND Calendar/ </font></div><div><font face="monospace, monospace">Accept-Language: en-us</font></div><div><font face="monospace, monospace">Connection: keep-alive</font></div><div><font face="monospace, monospace">Content-Length: 2217</font></div><div><font face="monospace, monospace">Content-Type: application/soap+xml; text/xml</font></div><div><font face="monospace, monospace">Depth: 1</font></div><div><font face="monospace, monospace">Host: xyz</font></div><div><font face="monospace, monospace">User-Agent: iOS/11.1 (15B93) dataaccessd/1.0</font></div><div><font face="monospace, monospace"><?xml version="1.0" encoding="UTF-8"?></font></div><div><font face="monospace, monospace"><B:propfind xmlns:B="DAV:"></font></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 8, 2017 at 10:42 PM, Ken Murchison <span dir="ltr"><<a href="mailto:murch@fastmailteam.com" target="_blank">murch@fastmailteam.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Has anyone had issues adding a new CalDAV account on iOS 11.0.3?<br>
<br>
Looking at telemetry on my Cyrus server, it only does a PROPFIND on .well-known/caldav to find the current-user-principal and then does an OPTIONS on that URL.  That's it.  It never does any other PROPFIND/REPORT to discover calendars.<br>
<br>
Here is the last request/response that I get:<br>
<br>
<br>
OPTIONS /dav/principals/user/user01/ HTTP/1.1<br>
Host: 192.168.1.209<br>
Content-length: 0<br>
Connection: keep-alive<br>
Accept: */*<br>
User-agent: iOS/11.0.3 (15A432) accountsd/1.0<br>
Accept-language: en-us<br>
Authorization: Basic ...<br>
Accept-encoding: gzip, deflate<br>
<br>
HTTP/1.1 200 OK<br>
Date: Thu, 02 Nov 2017 00:06:56 GMT<br>
Connection: Upgrade<br>
Upgrade: h2c<br>
Cache-Control: no-cache<br>
Server: Cyrus-HTTP/3.1.2-155-ga56b840c<wbr>7-dirty Cyrus-SASL/2.1.26 LibXML2.9.4 Nghttp2/1.21.1 OpenSSL/1.1 Zlib/1.2.11 SQLite/3.20.1 LibiCal/2.99 ICU4C/57.1 Jansson/2.10<br>
DAV: 1, 2, 3, access-control, extended-mkcol, resource-sharing<br>
DAV: calendar-access, calendar-auto-schedule<br>
DAV: calendar-query-extended, calendar-availability, calendar-managed-attachments<br>
DAV: calendarserver-sharing, inbox-availability<br>
DAV: addressbook<br>
Allow: OPTIONS, GET, HEAD<br>
Allow: PROPFIND, REPORT, COPY<br>
Content-Length: 0<br>
<br>
<br>
I've made all kind of code tweaks on my server in an effort to trigger some different behavior with no joy.  I've removed the Server and Upgrade headers.  I've merged the multiple DAV and Allow headers into single headers.<br>
<br>
Any ideas?  Is there some token that iOS is now looking for in the OPTIONS response?  Is there some weird switch on iOS that disables calendar discovery?<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
<br>
-- <br>
Ken Murchison<br>
Cyrus Development Team<br>
FastMail Pty Ltd<br>
<br>
______________________________<wbr>_________________<br>
caldeveloper-l mailing list<br>
<a href="mailto:caldeveloper-l@lists.calconnect.org" target="_blank">caldeveloper-l@lists.calconnec<wbr>t.org</a><br>
<a href="http://lists.calconnect.org/listinfo.cgi/caldeveloper-l-calconnect.org" rel="noreferrer" target="_blank">http://lists.calconnect.org/li<wbr>stinfo.cgi/caldeveloper-l-calc<wbr>onnect.org</a><br>
</font></span></blockquote></div><br></div>