Patch release for iCloud users: every booking written to an iCloud calendar was reported as a failed write-back, rewritten eight times and alerted to the host, although the event was on the calendar from the start. No migrations, no configuration change.
Thanks to @fucx, who found and fixed it on a real iCloud calendar, and for the German wording below.
Fixed
- Every write-back to iCloud was reported as failed (#293) - Since 1.20.0, calrs checks that each event it writes to a calendar is really there. iCloud answers that check (
HEAD) with400 Bad Requesteven for an event it has just stored, so every booking on an iCloud write calendar was recorded as a failed write-back: calrs wrote it again eight times over about 16 hours and emailed the host after the third attempt. calrs now asks again withPROPFIND, as it already did for servers that refuseHEADwith 405 or 501. That answer is now read properly too: the server's overall207only says it replied, and the event's own status inside it says whether the event is there. This also lets the deleted-event check work on iCloud. Reported and fixed by @fucx. - A response written with an unusual XML prefix could read a missing property as a deleted event (#296) - When reading a server's answer, calrs set aside property-level statuses so they would not be taken for the event's own, but only for the usual
d:,D:or unprefixed forms. With any other prefix, a server that did not return an event's ETag could make the event look deleted: a false write-back failure, or a booking cancelled by the deleted-event check. Found while reviewing #293.