KolektivComputer / KolektivComputer/kalendee
iTIP/iMIP scheduling over CalDAV (RFC 6638)
- Dominant language
- Kotlin
- Stars
- 0
- Forks
- 0
- Avg merge
- 11h 20m
- Merged PRs (30d)
- 23
Description
## Context
Scheduling is part of `GOALS.md` (proposals, RSVP) and CalDAV servers are expected to speak iTIP/iMIP (RFC 6638) so external clients can invite attendees. This issue adds scheduling inbox/outbox collections, ORGANIZER/ATTENDEE/PARTSTAT mapping onto the existing invites/RSVP model, and iMIP mail delivery through the existing mail service. It builds on the KalDAV protocol engine and the server CalDAV endpoints so third-party calendar clients can participate in scheduling.
## Tasks
- [ ] PROPFIND: expose `schedule-inbox-URL` / `schedule-outbox-URL` under the calendar home
- [ ] POST to outbox with `calendar-auto-schedule`: resolve attendees, deliver to local inboxes, mirror to iMIP
- [ ] Map ORGANIZER/ATTENDEE/SEQUENCE/PARTSTAT/ROLE to existing event invites and RSVP state
- [ ] iMIP mail (text/calendar REQUEST/REPLY/CANCEL) via the mail service; parse inbound iMIP replies
- [ ] RSVP/PARTSTAT changes fan out to the organizer (idempotent, loop-safe)
- [ ] Free-busy POST (`free-busy-query`) integrated with the availability model
- [ ] Tests: outbox POST, inbox delivery, iMIP generation/parse, loops/replays
- [ ] Deeper recurrence support as needed (current model is master-only best effort)
## References
- `GOALS.md` — Scheduling and RSVP
- #7 (KalDAV) — protocol engine; #8 (server CalDAV endpoints)
- `server/src/main/kotlin/dev/kolektiv/kalendee/events/`
- `server/src/main/kotlin/dev/kolektiv/kalendee/api/EventInviteRoutes.kt`
- `server/src/main/kotlin/dev/kolektiv/kalendee/mail/`
- `core/src/commonMain/kotlin/dev/kolektiv/kalendee/calendar/Models.kt`, `Recurrence.kt`
## Dependencies
- **Depends on KalDAV M3 (#7) and #8 (server CalDAV endpoints).**
Contributor guide
Assessment
This issue has not been assessed yet.