A Kotlin CalDAV client with offline sync and conflict resolution. Sync calendars with iCloud, Nextcloud, and other CalDAV servers.
- RFC 5545 compliant iCalendar parser and generator
- CalDAV client with automatic server discovery
- Recurring events (RRULE, EXDATE, RECURRENCE-ID)
- All-day and multi-day event support
- Timezone handling with VTIMEZONE
- Alarms (VALARM) with DISPLAY, EMAIL, and AUDIO actions
- Sync engine with offline support and conflict resolution
- Provider quirks handling (iCloud, Nextcloud, Radicale, Baikal)
| Module | Purpose |
|---|---|
icaldav-core |
Parse and generate iCalendar (RFC 5545) |
icaldav-client |
CalDAV/WebDAV client with discovery and CRUD |
icaldav-sync |
Sync engine with offline support and conflict resolution |
| Provider | Notes |
|---|---|
| iCloud | CDATA responses, namespace quirks, regional redirects, app-specific passwords |
| Nextcloud | Standard CalDAV |
| Radicale | Direct URL access (skip discovery) |
| Baikal | sabre/dav based, standard CalDAV |
Other CalDAV servers following RFC 4791 should work. Open an issue if you encounter problems.
Apache License 2.0