Access Apple Calendar through CLI, agent-friendly. (agent skill included) 📅🪄
SaferSkills independently audited apple-calendar-cli (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You have access to apple-calendar-cli, a command-line tool for managing Apple Calendar events via EventKit on macOS.
brew install sichengchen/tap/apple-calendar-cliAll dates use ISO 8601 format:
YYYY-MM-DD (interpreted as start of day in local timezone)YYYY-MM-DDTHH:MM:SS (local timezone)YYYY-MM-DDTHH:MM:SSZ or with offset--json — Output results as structured JSON (available on all commands)--version — Show version--help / -h — Show helpAlways use `--json` when calling from an agent for reliable parsing.
List all available calendars.
apple-calendar-cli list-calendars --jsonJSON output — array of objects:
[
{
"identifier": "CALENDAR-ID",
"title": "Work",
"type": "calDAV",
"source": "iCloud",
"color": "#1BADF8",
"isImmutable": false
}
]Use identifier to filter events or target a specific calendar when creating events.
List events within a date range.
apple-calendar-cli list-events --json
apple-calendar-cli list-events --from 2026-02-22 --to 2026-02-28 --json
apple-calendar-cli list-events --from 2026-02-22 --to 2026-02-28 --calendar CALENDAR-ID --jsonOptions:
--from — Start date (default: today)--to — End date (default: 7 days from start)--calendar — Filter by calendar identifierJSON output — array of event objects:
[
{
"identifier": "EVENT-ID",
"title": "Team standup",
"startDate": "2026-02-22T10:00:00Z",
"endDate": "2026-02-22T10:30:00Z",
"isAllDay": false,
"location": "Conference Room A",
"notes": null,
"calendarTitle": "Work",
"calendarIdentifier": "CALENDAR-ID",
"url": null,
"hasRecurrenceRules": true
}
]Get full details of a single event.
apple-calendar-cli get-event EVENT-ID --jsonJSON output — single event object (same schema as list-events items).
Create a new calendar event.
apple-calendar-cli create-event \
--title "Meeting with Alice" \
--start "2026-02-23T14:00:00" \
--end "2026-02-23T15:00:00" \
--json
apple-calendar-cli create-event \
--title "All-day conference" \
--start "2026-03-01" \
--end "2026-03-02" \
--all-day \
--calendar CALENDAR-ID \
--location "Convention Center" \
--notes "Bring laptop" \
--url "https://example.com/conf" \
--jsonRequired options:
--title — Event title--start — Start date/time--end — End date/time (must be after start)Optional options:
--calendar — Calendar identifier (default: system default calendar)--notes — Event notes--location — Event location--all-day — Mark as all-day event--url — Event URL--recurrence — Recurrence rule: daily, weekly, monthly, yearly--recurrence-end — End date for recurrence--recurrence-count — Number of occurrences--attendees — Comma-separated email addresses--alert — Alert offset (e.g., 15m, 1h, 1d)JSON output — the created event object with its new identifier.
Update an existing event (partial update — only specified fields change).
apple-calendar-cli update-event EVENT-ID --title "New title" --json
apple-calendar-cli update-event EVENT-ID \
--start "2026-02-23T15:00:00" \
--end "2026-02-23T16:00:00" \
--location "Room B" \
--jsonRequired argument:
<id> — Event identifierOptional options:
--title — New title--start — New start date/time--end — New end date/time--calendar — Move to different calendar (by identifier)--notes — New notes--location — New location--url — New URLJSON output — the updated event object.
Delete a calendar event.
apple-calendar-cli delete-event EVENT-ID --jsonJSON output:
{
"deleted": true,
"event": { ... }
}# 1. List events to find the one to reschedule
apple-calendar-cli list-events --from 2026-02-22 --to 2026-02-28 --json
# 2. Get full details
apple-calendar-cli get-event EVENT-ID --json
# 3. Update the time
apple-calendar-cli update-event EVENT-ID \
--start "2026-02-24T14:00:00" \
--end "2026-02-24T15:00:00" \
--json# 1. List calendars to find the right one
apple-calendar-cli list-calendars --json
# 2. Create the event on that calendar
apple-calendar-cli create-event \
--title "Dentist" \
--start "2026-02-25T09:00:00" \
--end "2026-02-25T10:00:00" \
--calendar CALENDAR-ID \
--jsonapple-calendar-cli list-events --from 2026-02-22 --to 2026-02-22 --jsonYYYY-MM-DD or YYYY-MM-DDTHH:MM:SS)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.