Commands
caldir connect
Connect to a calendar provider and fetch its calendars.
# Google Calendar (hosted OAuth via caldir.org)
caldir connect google
You can connect multiple accounts (e.g. personal and work) by running the command multiple times.
caldir status
Show pending changes per calendar, similar to git status.
caldir status
# Show detailed diff
caldir status --verbose
# Status for a specific calendar
caldir status --calendar work
caldir pull
Download remote changes to your local caldir directory.
# Pull events within ±1 year of today
caldir pull
# Pull all events since start
caldir pull --from start
# Pull only a specific calendar
caldir pull --calendar work
caldir push
Upload local changes to the remote.
caldir push
# Push only a specific calendar
caldir push --calendar work
Note: if you delete a local .ics file and run push, the event is also deleted from the remote.
caldir sync
Pull/push in a single command.
caldir sync
caldir new
Create a new event in your local directory.
# Interactive mode (for humans)
caldir new
# Non-interactive mode (for agents):
# Timed event (defaults to 1 hour)
caldir new "Meeting with Alice" --start 2025-03-20T15:00
# With explicit duration
caldir new "Team standup" --start 2025-03-20T09:00 --duration 30m
# With a location
caldir new "Lunch" --start 2025-03-20T12:00 --location "Café Central"
# With a reminder
caldir new "Sprint planning" --start 2025-03-22T10:00 --reminder 10m
# In a specific calendar
caldir new "Sprint planning" --start 2025-03-22T10:00 --calendar work
- If neither
--endnor--durationis specified, new events default to being 1 hour long. - If
default_remindersis set in your global config, those reminders are added to new events automatically.
caldir events
View upcoming events. Events that are invites show a colored status indicator: (pending), (accepted), (declined), or (tentative).
caldir events # Next 3 days
caldir today # Today's events
caldir week # This week (through Sunday)
caldir events --from 2025-03-01 --to 2025-03-31 # Custom range
# Events from one calendar
caldir events --calendar work
caldir invites
List pending invites across all calendars (next 30 days). Shows organizer, file path, and current status for each invite.
caldir invites
# Include already-responded invites (not just pending)
caldir invites --all
# Filter to one calendar
caldir invites --calendar work
caldir rsvp
Respond to pending calendar invites. Updates the local ICS file (run caldir push afterward to sync your response).
# Interactive mode (for humans)
caldir rsvp
# Non-interactive mode (for agents)
caldir rsvp ~/caldir/work/2025-03-20T1500__standup.ics accept
caldir rsvp ~/caldir/work/2025-03-20T1500__standup.ics decline
caldir rsvp ~/caldir/work/2025-03-20T1500__standup.ics maybe
caldir discard
Discard unpushed local changes, reverting to the remote state.
caldir discard
# Discard changes in one calendar
caldir discard --calendar work
# Skip confirmation prompt
caldir discard --force
caldir config
Show configuration paths and calendar info.
caldir config
caldir update
Update caldir and all installed providers to the latest version.
caldir update