caldav: add support for scheduling (RFC 6638)#202
Open
cheif wants to merge 6 commits intoemersion:masterfrom
Open
caldav: add support for scheduling (RFC 6638)#202cheif wants to merge 6 commits intoemersion:masterfrom
cheif wants to merge 6 commits intoemersion:masterfrom
Conversation
Owner
|
Please have a look at CONTRIBUTING.md, in particular the LLM section. |
Contributor
Author
Yeah, sorry. I asked copilot with help to add some tests, and apparently it went ahead and created a PR as well 😱 I'll rework it and get back to you, sorry for the noise! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This adds partial support for RFC 6638, which allows us to deliver "Inbox" events, AKA invitations to events, that the user can reply to.
I elected to implement this as a new interface, with a single requirement:
The returned inbox contains a path to the inbox, e.g.
/user/inbox, and a list of the users addresses. When this is implemented the backend will return that it supports scheduling, and the client will then try to fetch the inbox-items the same way that it does other events, throughListCalendarObjects.For the user to be able to respond to an invite, the calendar-objects returned needs to contain an
ical.PropAttendeewhich should have the address as one of the addresses listed in the inbox.When the user responds to an invitation, we'll get a
PutCalendarEvent, just like a regular edit.Testing
I've verified this works as expected using the builtin apple calendar on macOS and iOS, but it would be great if someone would like to test this on other platforms as well.