Your Calendar.
From the terminal.
A blazing fast CLI for macOS Calendar — built for humans and AI agents alike. Powered by go-eventkit.
Designed for how you work
Manage your macOS Calendar entirely from the command line.
3000x Faster Reads
Same API Calendar.app uses internally — not AppleScript, not IPC. Sub-millisecond reads across thousands of events.
Single Binary
EventKit compiled in via cgo. No runtime dependencies. Ship it, script it, call it from an agent — it just works.
Natural Language Dates
"tomorrow at 3pm", "next friday", "in 2 hours", "eod" — a built-in parser understands 20+ date patterns.
Interactive Mode
Guided forms for creating and editing events. Searchable event picker for quick selection without memorizing IDs.
Import & Export
JSON, CSV, and ICS export. JSON and CSV import with dry-run preview. Back up or migrate your calendar data.
Full CRUD + Recurrence
Create, read, update, and delete events. Daily, weekly, monthly, yearly recurrence with flexible day selection.
Built for agents,
not just humans.
Most CLI tools weren't designed to be called by an AI. ical was. Every command outputs structured JSON. Event IDs are stable across calls. Natural language dates work exactly like they would if you typed them yourself.
Common questions
What is ical?
ical is an open-source command-line interface for macOS Calendar. It lets you create, list, update, delete, search, and export events directly from your terminal — with near-native performance via Apple's EventKit framework.
How do I install ical?
The fastest way is the install script:
curl -fsSL https://ical.sidv.dev/install | bashAlternatively, if you have Go and Xcode CLT installed: go install github.com/BRO3886/ical/cmd/ical@latest
Why is ical faster than AppleScript?
ical uses go-eventkit, which bridges directly to Apple's EventKit framework via cgo and Objective-C — the same API Calendar.app uses internally. This gives direct in-process memory access to the calendar store with no IPC overhead. AppleScript sends Apple Events across a process boundary per property per event, making it roughly 3000× slower for large calendars.
Does ical work with iCloud calendars?
Yes. ical accesses everything synced to your local macOS Calendar store — iCloud calendars, local calendars, Exchange, Google, and any other accounts configured in Calendar.app. All commands work across all calendar sources.
What macOS versions are supported?
ical requires macOS 10.12 (Sierra) or later. On first run, macOS will prompt you to grant Calendar access in System Settings → Privacy & Security → Calendars. It does not work on Linux or Windows.
Can I use ical in scripts and automation?
Yes. Every command supports -o json for machine-readable output, making ical easy to pipe into tools like jq. The ical export command produces JSON, CSV, or ICS dumps. The --id flag on show, update, and delete enables safe scripting with stable event IDs.
How do I add ical to an AI coding agent?
Run ical skills install to copy the embedded agent skill to your agent's skill directory. Supports Claude Code (~/.claude/skills/), Codex CLI (~/.agents/skills/), and OpenClaw (~/.openclaw/skills/). The skill teaches the agent all commands, date formats, and output options.
Install in seconds
One command. No dependencies.
curl -fsSL https://ical.sidv.dev/install | bash/usr/local/bin.go install github.com/BRO3886/ical/cmd/ical@latestcurl -LO https://github.com/BRO3886/ical/releases/latest/download/ical-darwin-arm64.tar.gz
tar xzf ical-darwin-arm64.tar.gz
sudo mv ical /usr/local/bin/icalarm64 with amd64 for Intel Macs.