AtlatestRenderedmarkdown
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

ModuleDescription
(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 test

License

BSD-3-Clause