feat: add CalDAV support for ProtonMail Calendar#335
Conversation
|
Ping @emersion — this PR is a complete CalDAV implementation that mirrors the existing CardDAV backend pattern. It's mergeable with a clean diff. The other open CalDAV PRs (#282 has merge conflicts / dirty state, #329 is minimal with only ListCalendars) are less comprehensive. Happy to address any review feedback. |
Implements caldav.Backend interface bridging ProtonMail Calendar API to standard CalDAV protocol (RFC 4791). - New caldav/caldav.go (452 lines): full Backend implementation - Extended protonmail/calendar.go: 7 new API methods + PGP decrypt/sign - Extended protonmail/events.go: EventRefreshCalendar support - Extended cmd/hydroxide/main.go: --caldav-port, caldav serve command - Updated go.mod/go.sum for go-webdav/caldav dependency CardDAV implementation used as template. Builds and vets clean. Closes emersion#207
b2a605a to
61030a3
Compare
|
I've rebased this PR onto the latest master. The merge conflict in has been resolved (kept the newer upstream dependency versions alongside the dependency needed for CalDAV). CI should be re-triggering shortly. Would appreciate a review when you have capacity. |
|
I've rebased this PR onto the latest master. The merge conflict in go.mod has been resolved (kept the newer upstream dependency versions alongside the rrule-go dependency needed for CalDAV). CI should be re-triggering shortly. Would appreciate a review when you have capacity. |
Implements CalDAV proxy bridging ProtonMail Calendar API to standard CalDAV protocol (RFC 4791).
What's new
caldav/caldav.go (452 lines): Full caldav.Backend implementation
protonmail/calendar.go: Extended with 7 API methods + PGP crypto
protonmail/events.go: EventRefreshCalendar + EventCalendarEvent
cmd/hydroxide/main.go: New --caldav-port flag, caldav serve command
go.mod / go.sum: Added go-webdav/caldav dependency
Implementation notes
Closes #207