fruux/sabre-dav — pull request #484 by evert (2014-07-23 21:29:13+00:00)
Title: Calendar scheduling support

This pull request introduces rudimentary support for [RFC6638][1], a.k.a. CalDAV scheduling a.k.a. `calendar-auto-schedule`.

Initial goals:

1. Support for VEVENT scheduling (VTODO, VJOURNAL may come later)
2. Delivery of invites to CalDAV inboxes
3. Automatically updating invites when replies come in

I've superficially tested iCal, and a few basic scenarios. I imagine in real-world use and with other applications, a lot of broken behavior and missing features may come to light.

We're not aiming for 100% compliance yet, that will come over time. First we need a solution that works well across many popular clients.

Obviously some help with this would be most welcome.

### Tasks to complete

- [ ] Read iTip top-to-bottom again
- [ ] Read Scheduling rfc top to bottom again
- [ ] 100% unittest coverage of newly written code
- [ ] Merge https://github.com/fruux/sabre-vobject/pull/103
- [ ] Fix all obvious problems

### Clients to test

We'd like to test:

* [ ] iCal
* [ ] iOS
* [ ] BusyCal
* [ ] Thunderbird + Lightning
* [ ] emClient
* [ ] Evolution

Any other big ones?

### Things to test

Things that need to be tested for every client:

1. Inviting people to an event.
2. Accepting an invite.
3. Tentatively accepting an invite.
4. Declining an invite.
5. Inviting people to a recurring event.
6. Accepting all instances of a recurring event.
7. Declining all instances of a recurring event.
8. Accepting a single instance of a recurring event.
9. Organizer of an event updating a single instance of a recurring event.
10. Attendee deleting an event.
11 Attendee deleting a single instance of a recurring event.

Preferably some of these tests also happen with more than one client, communicating and cooperating with each other.

[1]: http://tools.ietf.org/html/rfc6638