Skip to content

Comments

feat(caldav): add CalDAV integration for calendar CRUD#84

Open
penso wants to merge 5 commits intomainfrom
caldav
Open

feat(caldav): add CalDAV integration for calendar CRUD#84
penso wants to merge 5 commits intomainfrom
caldav

Conversation

@penso
Copy link
Collaborator

@penso penso commented Feb 10, 2026

Summary

  • New moltis-caldav crate providing calendar CRUD operations (list calendars, list/create/update/delete events) via the CalDAV protocol using libdav and icalendar
  • Supports Fastmail, iCloud, and generic CalDAV servers with multi-account configuration under [caldav.accounts.<name>]
  • Feature-flagged as caldav, enabled by default in both gateway and CLI crates
  • Lazy client initialisation on first use, ETag-based concurrency control for updates/deletes

Files changed

Area Files
New crate crates/caldav/ (client, discovery, ical, tool, types)
Config schema.rs, validate.rs, lib.rs — CalDavConfig + schema map + semantic warnings
Wiring gateway/Cargo.toml, cli/Cargo.toml, server.rs — feature flag + tool registration
Workspace Root Cargo.toml + Cargo.lock — new deps (libdav, icalendar, hyper stack)
Changelog CHANGELOG.md — Added entry

Validation

Completed

  • taplo fmt — TOML files formatted
  • cargo +nightly fmt --all — Rust code formatted
  • cargo +nightly clippy --workspace --all-targets — 0 warnings
  • cargo check --workspace — clean compilation
  • cargo test -p moltis-caldav — 26 tests pass (types, ical, discovery, tool)
  • cargo test -p moltis-config — 70 tests pass (schema drift guard covers new fields)

Remaining

  • ./scripts/local-validate.sh — running post-PR creation
  • Integration test with real CalDAV server (gated behind CALDAV_TEST_URL env var, not yet written)

Manual QA

None — no UI changes; tool is only accessible to the LLM agent via the tool registry.

New moltis-caldav crate exposing calendar management to the LLM agent
via the AgentTool interface. Supports Fastmail, iCloud, and generic
CalDAV servers with multi-account configuration.

Operations: list_calendars, list_events, create_event, update_event,
delete_event. Connections are lazily initialised on first use. ETags
enforce concurrency control on updates and deletes.

Feature-flagged as "caldav", enabled by default in both gateway and CLI.
@codspeed-hq
Copy link
Contributor

codspeed-hq bot commented Feb 10, 2026

Merging this PR will improve performance by ×2.7

⚡ 1 improved benchmark
✅ 33 untouched benchmarks
⏩ 1 skipped benchmark1

Performance Changes

Benchmark BASE HEAD Efficiency
session_store_list[10] 39 µs 14.6 µs ×2.7

Comparing caldav (117e65b) with main (45cbf7c)

Open in CodSpeed

Footnotes

  1. 1 benchmark was skipped, so the baseline result was used instead. If it was deleted from the codebase, click here and archive it to remove it from the performance reports.

@codecov
Copy link

codecov bot commented Feb 10, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant