Commit947337fcRecorded29 Mar 2026Repositorysigil-caldav

Add README

Changed
 README.md | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 76 insertions(+)
Diff
README.mdadded
@@ -0,0 +1,76 @@
+1
# sigil-caldav
+2
+3
A [Sigil](https://codeberg.org/sigil/sigil) library for CalDAV calendaring (RFC 4791) and iCalendar parsing (RFC 5545). Works with Fastmail, Nextcloud, Radicale, and other CalDAV servers.
+4
+5
## Features
+6
+7
- **Server discovery** -- principal URL and calendar home set via WebDAV
+8
- **Calendar operations** -- list, find by name, create, delete
+9
- **Event CRUD** -- create, read, update, delete calendar events
+10
- **Date range queries** -- fetch events within a time window
+11
- **Recurrence expansion** -- DAILY, WEEKLY, MONTHLY RRULE support with exception handling
+12
- **iCalendar parsing** -- full VEVENT support including folded lines, attendees, timezones
+13
- **iCalendar generation** -- create valid iCalendar text from event structs
+14
- **Timezone handling** -- UTC and local timezone with DST-aware offset calculation
+15
- **Authentication** -- HTTP Basic or Bearer token
+16
+17
## Usage
+18
+19
Add `sigil-caldav` as a dependency in your `package.sgl`:
+20
+21
```scheme
+22
(from-git url: "codeberg:sigil/sigil-caldav" package: "sigil-caldav")
+23
```
+24
+25
Then connect and manage calendars:
+26
+27
```scheme
+28
(import (sigil caldav))
+29
+30
(define client (caldav-connect
+31
url: "https://caldav.fastmail.com"
+32
username: "[email protected]"
+33
password: (getenv "CALDAV_PASSWORD")))
+34
+35
;; List calendars
+36
(define calendars (caldav-calendars client))
+37
+38
;; Get events in a date range
+39
(define events (caldav-events client (car calendars)
+40
start: "20260301T000000Z"
+41
end: "20260401T000000Z"))
+42
+43
;; Create an event
+44
(caldav-event-create! client (car calendars)
+45
(ical-event summary: "Meeting"
+46
dtstart: "20260315T100000Z"
+47
dtend: "20260315T110000Z"))
+48
```
+49
+50
## Modules
+51
+52
| Module | Description |
+53
|--------|-------------|
+54
| `(sigil caldav)` | Top-level re-exports |
+55
| `(sigil caldav client)` | WebDAV discovery, PROPFIND, REPORT, PUT, DELETE |
+56
| `(sigil caldav ical)` | iCalendar parsing, generation, datetime handling |
+57
| `(sigil caldav calendar)` | Calendar listing, creation, deletion |
+58
| `(sigil caldav event)` | Event CRUD with date range queries |
+59
+60
## Dependencies
+61
+62
- sigil-stdlib
+63
- sigil-http
+64
- sigil-sxml
+65
- sigil-crypto
+66
+67
## Building
+68
+69
```bash
+70
sigil build --redirects dev-redirects.sgl
+71
sigil test
+72
```
+73
+74
## License
+75
+76
BSD-3-Clause