For reference and transparency: We have created this report on Apple Bug Reporter on 17 Oct 2015 here: https://bugreport.apple.com/web/?problemID=23156564 Summary: When querying resource properties with PROPFIND, iCloud returns the same property (in this example: <resourcetype/>) one time as 200 OK and one time as 404 Not Found. This doesn’t make any sense and causes clients to ignore the property and thus to fail. Steps to Reproduce: curl --data @1.xml -vX PROPFIND -H 'Depth: 1' -u xxxxxx:XXXXXX https://p23-caldav.icloud.com/xxxxxxxx/calendars/ Expected Results: Don't send <resourcetype/> with propstat status 404. Actual Results: The response for <href>/xxxx/calendars/home/</href> contains: <response> <href>/xxxxx/calendars/home/</href> <propstat> <prop> <resourcetype> <collection/> <calendar xmlns='urn:ietf:params:xml:ns:caldav'/> </resourcetype> ... </prop> <status>HTTP/1.1 200 OK</status> </propstat> <propstat> <prop> <resourcetype/> </prop> <status>HTTP/1.1 404 Not Found</status> </propstat> </response> Full response: <?xml version='1.0' encoding='UTF-8'?> <multistatus xmlns='DAV:'> <response> <href>/xxxxx/calendars/</href> <propstat> <prop> <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'> <comp name='VEVENT'/> <comp name='VTODO'/> </supported-calendar-component-set> <displayname>xxxxxxxxxx</displayname> <current-user-privilege-set> <privilege> <read/> </privilege> <privilege> <read-free-busy xmlns='urn:ietf:params:xml:ns:caldav'/> </privilege> <privilege> <read-current-user-privilege-set/> </privilege> <privilege> <write/> </privilege> <privilege> <write-properties/> </privilege> <privilege> <write-content/> </privilege> <privilege> <bind/> </privilege> <privilege> <unbind/> </privilege> </current-user-privilege-set> <resourcetype> <collection/> </resourcetype> </prop> <status>HTTP/1.1 200 OK</status> </propstat> <propstat> <prop> <calendar-color xmlns='http://apple.com/ns/ical/'/> <resourcetype/> <calendar-description xmlns='urn:ietf:params:xml:ns:caldav'/> <calendar-timezone xmlns='urn:ietf:params:xml:ns:caldav'/> </prop> <status>HTTP/1.1 404 Not Found</status> </propstat> </response> <response> <href>/xxxxx/calendars/home/</href> <propstat> <prop> <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'> <comp name='VEVENT'/> </supported-calendar-component-set> <displayname>xxxxxxxxxx</displayname> <current-user-privilege-set> <privilege> <read/> </privilege> <privilege> <read-free-busy xmlns='urn:ietf:params:xml:ns:caldav'/> </privilege> <privilege> <read-current-user-privilege-set/> </privilege> <privilege> <write/> </privilege> <privilege> <write-properties/> </privilege> <privilege> <write-content/> </privilege> <privilege> <bind/> </privilege> <privilege> <unbind/> </privilege> </current-user-privilege-set> <calendar-color symbolic-color='__custom__' xmlns='http://apple.com/ns/ical/'>#cca312FF</calendar-color> <calendar-description xmlns='urn:ietf:params:xml:ns:caldav'/> <calendar-timezone xmlns='urn:ietf:params:xml:ns:caldav'><![CDATA[BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Apple Inc.//Mac OS X 10.9.4//EN CALSCALE:GREGORIAN BEGIN:VTIMEZONE TZID:America/Los_Angeles BEGIN:DAYLIGHT TZOFFSETFROM:-0800 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU DTSTART:20070311T020000 TZNAME:GMT-7 TZOFFSETTO:-0700 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0700 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU DTSTART:20071104T020000 TZNAME:GMT-8 TZOFFSETTO:-0800 END:STANDARD END:VTIMEZONE END:VCALENDAR ]] ></calendar-timezone> <resourcetype> <collection/> <calendar xmlns='urn:ietf:params:xml:ns:caldav'/> </resourcetype> </prop> <status>HTTP/1.1 200 OK</status> </propstat> <propstat> <prop> <resourcetype/> <calendar-description xmlns='urn:ietf:params:xml:ns:caldav'/> <calendar-timezone xmlns='urn:ietf:params:xml:ns:caldav'/> </prop> <status>HTTP/1.1 404 Not Found</status> </propstat> </response> <response> <href>/xxxxx/calendars/notification/</href> <propstat> <prop> <displayname>notification</displayname> <current-user-privilege-set> <privilege> <read/> </privilege> <privilege> <read-free-busy xmlns='urn:ietf:params:xml:ns:caldav'/> </privilege> <privilege> <unbind/> </privilege> <privilege> <read-current-user-privilege-set/> </privilege> </current-user-privilege-set> <resourcetype> <notification xmlns='http://calendarserver.org/ns/'/> <collection/> </resourcetype> </prop> <status>HTTP/1.1 200 OK</status> </propstat> <propstat> <prop> <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'/> <calendar-color xmlns='http://apple.com/ns/ical/'/> <resourcetype/> <calendar-description xmlns='urn:ietf:params:xml:ns:caldav'/> <calendar-timezone xmlns='urn:ietf:params:xml:ns:caldav'/> </prop> <status>HTTP/1.1 404 Not Found</status> </propstat> </response> <response> <href>/xxxxx/calendars/tasks/</href> <propstat> <prop> <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'> <comp name='VTODO'/> </supported-calendar-component-set> <displayname>DAVdroid</displayname> <current-user-privilege-set> <privilege> <read/> </privilege> <privilege> <read-free-busy xmlns='urn:ietf:params:xml:ns:caldav'/> </privilege> <privilege> <read-current-user-privilege-set/> </privilege> <privilege> <write/> </privilege> <privilege> <write-properties/> </privilege> <privilege> <write-content/> </privilege> <privilege> <bind/> </privilege> <privilege> <unbind/> </privilege> </current-user-privilege-set> <calendar-color symbolic-color='blue' xmlns='http://apple.com/ns/ical/'>#1badf8FF</calendar-color> <calendar-description xmlns='urn:ietf:params:xml:ns:caldav'/> <calendar-timezone xmlns='urn:ietf:params:xml:ns:caldav'><![CDATA[BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Apple Inc.//Mac OS X 10.9.4//EN CALSCALE:GREGORIAN BEGIN:VTIMEZONE TZID:America/Los_Angeles BEGIN:DAYLIGHT TZOFFSETFROM:-0800 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU DTSTART:20070311T020000 TZNAME:GMT-7 TZOFFSETTO:-0700 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0700 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU DTSTART:20071104T020000 TZNAME:GMT-8 TZOFFSETTO:-0800 END:STANDARD END:VTIMEZONE END:VCALENDAR ]] ></calendar-timezone> <resourcetype> <collection/> <calendar xmlns='urn:ietf:params:xml:ns:caldav'/> </resourcetype> </prop> <status>HTTP/1.1 200 OK</status> </propstat> <propstat> <prop> <resourcetype/> <calendar-description xmlns='urn:ietf:params:xml:ns:caldav'/> <calendar-timezone xmlns='urn:ietf:params:xml:ns:caldav'/> </prop> <status>HTTP/1.1 404 Not Found</status> </propstat> </response> <response> <href>/509494181/calendars/inbox/</href> <propstat> <prop> <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'> <comp name='VEVENT'/> <comp name='VTODO'/> <comp name='VPOLL'/> </supported-calendar-component-set> <current-user-privilege-set> <privilege> <schedule-deliver xmlns='urn:ietf:params:xml:ns:caldav'/> </privilege> <privilege> <read/> </privilege> <privilege> <write-properties/> </privilege> <privilege> <write/> </privilege> <privilege> <write-content/> </privilege> <privilege> <bind/> </privilege> <privilege> <unbind/> </privilege> <privilege> <read-current-user-privilege-set/> </privilege> <privilege> <read-free-busy xmlns='urn:ietf:params:xml:ns:caldav'/> </privilege> </current-user-privilege-set> <resourcetype> <collection/> <schedule-inbox xmlns='urn:ietf:params:xml:ns:caldav'/> </resourcetype> </prop> <status>HTTP/1.1 200 OK</status> </propstat> <propstat> <prop> <displayname/> <calendar-color xmlns='http://apple.com/ns/ical/'/> <resourcetype/> <calendar-description xmlns='urn:ietf:params:xml:ns:caldav'/> <calendar-timezone xmlns='urn:ietf:params:xml:ns:caldav'/> </prop> <status>HTTP/1.1 404 Not Found</status> </propstat> </response> <response> <href>/xxxxx/calendars/outbox/</href> <propstat> <prop> <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'> <comp name='VEVENT'/> <comp name='VTODO'/> </supported-calendar-component-set> <resourcetype> <collection/> <schedule-outbox xmlns='urn:ietf:params:xml:ns:caldav'/> </resourcetype> <current-user-privilege-set> <privilege> <schedule-send xmlns='urn:ietf:params:xml:ns:caldav'/> </privilege> <privilege> <read-current-user-privilege-set/> </privilege> <privilege> <read/> </privilege> </current-user-privilege-set> </prop> <status>HTTP/1.1 200 OK</status> </propstat> <propstat> <prop> <calendar-description xmlns='urn:ietf:params:xml:ns:caldav'/> <calendar-timezone xmlns='urn:ietf:params:xml:ns:caldav'/> </prop> <status>HTTP/1.1 404 Not Found</status> </propstat> </response> Version: Tested on 2015/10/17 Notes: This problem was discovered when developing DAVdroid (CalDAV/CardDAV client) and testing it with iCloud.