Some small fixes on recurrence expansion

This commit is contained in:
Lennart
2025-12-31 19:54:06 +01:00
parent 9c1cd24d32
commit 44ae995f29
12 changed files with 887 additions and 46 deletions

View File

@@ -0,0 +1,253 @@
# RFC 4791 (CalDAV)
## ☑ 1. Introduction
### ☑ 1.1 Notational Conventions
### ☑ 1.2 XML Namespaces and Processing
### ☐ 1.3 Method Preconditions and Postconditions
## ☐ 2. Requirements Overview
- [x] MUST support iCalendar [RFC2445] as a media type for the calendar
object resource format;
- [ ] MUST support WebDAV Class 1 [RFC2518] (note that [rfc2518bis]
describes clarifications to [RFC2518] that aid interoperability);
- [x] MUST support WebDAV ACL [RFC3744] with the additional privilege
defined in Section 6.1 of this document;
- [x] MUST support transport over TLS [RFC2246] as defined in [RFC2818]
(note that [RFC2246] has been obsoleted by [RFC4346]);
- [x] MUST support ETags [RFC2616] with additional requirements
specified in Section 5.3.4 of this document;
- [ ] MUST support all calendaring reports defined in Section 7 of this
document; and
- [x] MUST advertise support on all calendar collections and calendar
object resources for the calendaring reports in the DAV:supported-
report-set property, as defined in Versioning Extensions to WebDAV
[RFC3253].
In addition, a server:
- [x] SHOULD support the MKCALENDAR method defined in Section 5.3.1 of
this document.
## ☑ 3. Calendaring Data Model
### ☑ 3.1 Calendar Server
### ☑ 3.2 Recurrence and the Data Model
## ☑ 4. Calendar Resources
### ☑ 4.1 Calendar Object Resources
### ☑ 4.2 Calendar Collection
## ☐ 5. Calendar Access Feature
### ☑ 5.1 Calendar Access Support
#### ☑ 5.1.1 Example: Using OPTIONS for the Discovery of Calendar Access Support
### ☑ 5.2 Calendar Collection Properties
#### ☑ 5.2.1 CALDAV:calendar-description Property
#### ☑ 5.2.2 CALDAV:calendar-timezone Property
#### ☑ 5.2.3 CALDAV:supported-calendar-component-set Property
#### ☑ 5.2.4 CALDAV:supported-calendar-data Property
#### ☑ 5.2.5 CALDAV:max-resource-size Property
#### ☑ 5.2.6 CALDAV:min-date-time Property
#### ☑ 5.2.7 CALDAV:max-date-time Property
#### ☐ 5.2.8 CALDAV:max-instances Property (Maybe set this :))
#### ☑ 5.2.9 CALDAV:max-attendees-per-instance Property (does not apply)
#### ☑ 5.2.10 Additional Precondition for PROPPATCH
### ☑ 5.3 Creating Resources
#### ☑ 5.3.1 MKCALENDAR Method
##### ☑ 5.3.1.1 Status Codes
##### ☑ 5.3.1.2 Example: Successful MKCALENDAR Request
- Example fails because of the tzid is not in the Olson database, but that's okay
#### ☑ 5.3.2 Creating Calendar Object Resources
##### ☐ 5.3.2.1 Additional Preconditions for PUT, COPY, and MOVE
### ☑ 5.3.3 Non-Standard Components, Properties, and Parameters
### ☑ 5.3.4 Calendar Object Resource Entity Tag
## ☐ 6. Calendaring Access Control
### ☐ 6.1 Calendaring Privilege
#### ☐ 6.1.1 CALDAV:read-free-busy Privilege
### ☑ 6.2 Additional Principal Property
#### ☑ 6.2.1 CALDAV:calendar-home-set Property
## ☐ 7. Calendaring Reports
- [ ] `DAV:expand-property`
### ☑ 7.1 REPORT Method
### ☑ 7.2 Ordinary Collections
### ☑ 7.3 Date and Floating Time
### ☑ 7.4 Time Range Filtering
### ☑ 7.5 Searching Text: Collations
#### ☑ 7.5.1 CALDAV:supported-collation-set Property
### ☐ 7.6 Partial Retrieval
### ☑ 7.7 Non-Standard Components, Properties, and Parameters
### ☑ 7.8 CALDAV:calendar-query REPORT
#### ☐ 7.8.1 Example: Partial Retrieval of Events by Time Range
#### ☐ 7.8.2 Example: Partial Retrieval of Recurring Events
#### ☐ 7.8.3 Example: Expanded Retrieval of Recurring Events
#### ☐ 7.8.4 Example: Partial Retrieval of Stored Free Busy Components
#### ☐ 7.8.5 Example: Retrieval of To-Dos by Alarm Time Range
#### ☐ 7.8.6 Example: Retrieval of Event by UID
#### ☐ 7.8.7 Example: Retrieval of Events by PARTSTAT
#### ☐ 7.8.8 Example: Retrieval of Events Only
#### ☐ 7.8.9 Example: Retrieval of All Pending To-Dos
#### ☐ 7.8.10 Example: Attempt to Query Unsupported Property
### ☐ 7.9 CALDAV:calendar-multiget REPORT
#### ☐ 7.9.1 Example: Successful CALDAV:calendar-multiget REPORT
### ☐ 7.10 CALDAV:free-busy-query REPORT
#### ☐ 7.10.1 Example: Successful CALDAV:free-busy-query REPORT
## ☐ 8. Guidelines
### ☐ 8.1 Client-to-Client Interoperability
### ☐ 8.2 Synchronization Operations
#### ☐ 8.2.1 Use of Reports
##### ☐ 8.2.1.1 Restrict the Time Range
##### ☐ 8.2.1.2 Synchronize by Time Range
##### ☐ 8.2.1.3 Synchronization Process
#### ☐ 8.2.2 Restrict the Properties Returned
### ☐ 8.3 Use of Locking
### ☐ 8.4 Finding Calendars
### ☐ 8.5 Storing and Using Attachments
#### ☐ 8.5.1 Inline Attachments
#### ☐ 8.5.2 External Attachments
### ☐ 8.6 Storing and Using Alarms
## ☐ 9. XML Element Definitions
### ☐ 9.1 CALDAV:calendar XML Element
### ☐ 9.2 CALDAV:mkcalendar XML Element
### ☐ 9.3 CALDAV:mkcalendar-response XML Element
### ☐ 9.4 CALDAV:supported-collation XML Element
### ☐ 9.5 CALDAV:calendar-query XML Element
### ☐ 9.6 CALDAV:calendar-data XML Element
#### ☐ 9.6.1 CALDAV:comp XML Element
#### ☐ 9.6.2 CALDAV:allcomp XML Element
#### ☐ 9.6.3 CALDAV:allprop XML Element
#### ☐ 9.6.4 CALDAV:prop XML Element
#### ☐ 9.6.5 CALDAV:expand XML Element
#### ☐ 9.6.6 CALDAV:limit-recurrence-set XML Element
#### ☐ 9.6.7 CALDAV:limit-freebusy-set XML Element
### ☐ 9.7 CALDAV:filter XML Element
#### ☐ 9.7.1 CALDAV:comp-filter XML Element
#### ☐ 9.7.2 CALDAV:prop-filter XML Element
#### ☐ 9.7.3 CALDAV:param-filter XML Element
#### ☐ 9.7.4 CALDAV:is-not-defined XML Element
#### ☐ 9.7.5 CALDAV:text-match XML Element
### ☐ 9.8 CALDAV:timezone XML Element
### ☐ 9.9 CALDAV:time-range XML Element
### ☐ 9.10 CALDAV:calendar-multiget XML Element
### ☐ 9.11 CALDAV:free-busy-query XML Element
## ☐ 10. Internationalization Considerations
## ☐ 11. Security Considerations
## ☐ 12. IANA Considerations
### ☐ 12.1 Namespace Registration
## ☐ 13. Acknowledgements
## ☐ 14. References
### ☐ 14.1 Normative References
### ☐ 14.2 Informative References
## ☐ A. CalDAV Method Privilege Table (Normative)
## ☐ B. Calendar Collections Used in the Examples