Skip to content

CLI reference: calendar

Read, write, and clash-check events across every calendar at once. Part of the CLI reference; to-dos live under tasks.

CommandWhat it does
calendar listList configured calendars
calendar refreshRe-sync calendars now instead of waiting the update interval (--cal for one)
calendar events search --from --toEvents in a window (--cal --query)
calendar events show --id <id>One event (attendees, recurrence, reminders)
calendar events create --title --start --endCreate an event (--cal --location --desc, --attendee repeatable, --send-invites, --recur for a series)
calendar events update <id>Patch an event (--attendee replaces attendees, --send-invites, --recur; --scope this --on <iso> edits one occurrence)
calendar events rsvp <id> --responseRespond to an invite (accepted | declined | tentative; --email if ambiguous)
calendar events delete <id>Delete an event (--scope this --on <iso> drops one occurrence of a series)
calendar freebusy --from --toFind free slots in a window (--duration 30m, --cal, --working-hours 09:00-18:00, --limit)
calendar settingsThunderbird’s calendar settings — working hours, working days, timezone
calendar clash --start --endCross-calendar clash probe; returns conflicts tagged by calendar
Terminal window
atbridge calendar clash --start 2026-06-20T15:00 --end 2026-06-20T16:00 --pretty

Recurring events use an RRULE body. Bound the series with --until <iso> or --count <n>:

Terminal window
# A weekly Monday standup, 10 occurrences
atbridge calendar events create --title "Standup" \
--start 2026-07-06T09:30 --end 2026-07-06T09:45 \
--recur "FREQ=WEEKLY;BYDAY=MO" --count 10
# Move just one Monday — edits that occurrence only, series untouched
atbridge calendar events update <id> --scope this --on 2026-07-13T09:30 \
--start 2026-07-13T11:00 --end 2026-07-13T11:15
# Drop one occurrence (adds an EXDATE); omit --scope to delete the whole series
atbridge calendar events delete <id> --scope this --on 2026-07-20T09:30

Was this page helpful?