AtlatestRenderedmarkdown
sigil-caldav / treeREADME.md
Readme
sigil-caldav
A Sigil library for CalDAV calendaring (RFC 4791) and iCalendar parsing (RFC 5545). Works with Fastmail, Nextcloud, Radicale, and other CalDAV servers.
Features
- Server discovery -- principal URL and calendar home set via WebDAV
- Calendar operations -- list, find by name, create, delete
- Event CRUD -- create, read, update, delete calendar events
- Date range queries -- fetch events within a time window
- Recurrence expansion -- DAILY, WEEKLY, MONTHLY RRULE support with exception handling
- iCalendar parsing -- full VEVENT support including folded lines, attendees, timezones
- iCalendar generation -- create valid iCalendar text from event structs
- Timezone handling -- UTC and local timezone with DST-aware offset calculation
- Authentication -- HTTP Basic or Bearer token
Usage
Add sigil-caldav as a dependency in your package.sgl:
(from-git url: "codeberg:sigil/sigil-caldav" package: "sigil-caldav")Then connect and manage calendars:
(import (sigil caldav))
(define client (caldav-connect
url: "https://caldav.fastmail.com"
username: "[email protected]"
password: (getenv "CALDAV_PASSWORD")))
;; List calendars
(define calendars (caldav-calendars client))
;; Get events in a date range
(define events (caldav-events client (car calendars)
start: "20260301T000000Z"
end: "20260401T000000Z"))
;; Create an event
(caldav-event-create! client (car calendars)
(ical-event summary: "Meeting"
dtstart: "20260315T100000Z"
dtend: "20260315T110000Z"))Modules
| Module | Description |
|---|---|
(sigil caldav) | Top-level re-exports |
(sigil caldav client) | WebDAV discovery, PROPFIND, REPORT, PUT, DELETE |
(sigil caldav ical) | iCalendar parsing, generation, datetime handling |
(sigil caldav calendar) | Calendar listing, creation, deletion |
(sigil caldav event) | Event CRUD with date range queries |
Dependencies
- sigil-stdlib
- sigil-http
- sigil-sxml
- sigil-crypto
Building
sigil deps install
sigil build
sigil testLicense
BSD-3-Clause