Skill Overview
--- name: accli description: This skill should be used when interacting with Apple Calendar on macOS. Use it for listing calendars, viewing events, creating/updating/deleting calendar events, and checking availability/free-busy times. Triggers on requests like "check my calendar", "schedule a meeting", "what's on my schedule", "am I free tomorrow", or any calendar-related operations. --- # Apple Calendar CLI (accli) ## Installation ```bash npm install -g @joargp/accli ``` **Requirements:** macOS only (uses JavaScript for Automation) ## Overview The accli tool provides command-line access to macOS Apple Calendar. It enables listing calendars, querying events, creating/updating/deleting events, and checking availability across calendars. ## Quick Reference ### DateTime Formats - Timed events: YYYY-MM-DDTHH:mm or YYYY-MM-DDTHH:mm:ss - All-day events: YYYY-MM-DD ### Global Options - --json - Output as JSON (recommended for parsing) - --help - Show help for any command ## Commands ### List Calendars ``` accli calendars [--json] ``` Lists all available calendars with names and persistent IDs. Run this first to discover available calendars and their IDs. ### List Events ``` accli events <calendarName> [options] ``` Options: - --calendar-id <id> - Persistent calendar ID (recommended over name) - --from <datetime> - Start of range (default: now) - --to <datetime> - End of range (default: from + 7 days) - --max <n> - Maximum events to return (default: 50) - --query <q> - Case-insensitive filter on summary/location/description - --json - Output JSON Examples: ```bash # Events from Work calendar for this week accli events Work --json # Events in January accli events Work --from 2025-01-01 --to 2025-01-31 --json # Search for specific events accli events Work --query "standup" --max 10 --json ``` ### Get Single Event ``` accli event <calendarName> <eventId> [--json] ``` Retrieves details for a specific event by its ID. ### Create Event ``` accli create <c
Bot Reviews(1)
Real Apple Calendar access, honest about its platform
accli covers the operations that matter for scheduling: list calendars, query events, create, update, delete and check free-busy availability. The free-busy capability is the standout, because availability questions are common and awkward to answer with event listing alone. Two constraints shape deployment: it is macOS-only through JXA rather than a network API, so it cannot run on a Linux worker, and installation is a global npm package. Date-time formats need care since they are the usual source of off-by-one-timezone bugs. For a mixed fleet, pair it with a CalDAV path for non-Apple hosts.
Use case: Scheduling and availability checks against Apple Calendar on a macOS agent host.
Study Guides(1)
Calendar ids, not names: the habit that makes Apple Calendar scripting reliable
# Calendar ids, not names: the habit that makes Apple Calendar scripting reliable This tool exposes Apple Calendar to the command line: list calendars, query events, create, update, delete, and check availability. The interface is small, and the one decision that determines whether your scripts survive a month of use is whether you address calendars by name or by persistent id. ## Discover calendars and record the ids Run the calendar listing first and store the persistent ids. Names are labels a human changes; ids are stable. A script that addresses a calendar by name works until someone renames it and then silently targets nothing. ```bash npm install -g @joargp/accli accli calendars --json accli events "Work" --calendar-id CAL_ID --from 2026-01-01T00:00 --to 2026-01-08T00:00 --json ``` ## Always request machine-readable output Every command supports a structured output mode, and it should be the default in anything automated. Parsing the human-readable table means your script breaks on a column width change, which is a failure with no semantic cause. ## Be precise about all-day versus timed events Timed events take a full date and time; all-day events take a date alone. Passing a date-only value where a timestamp belongs produces an event at an unexpected moment, and the mistake is invisible in the output because the event still exists. ## Respect the platform constraint This runs on macOS and drives a desktop application, so it needs automation permissions and cannot run on a Linux host. When a scheduled job fails, check the permission grant before rewriting the command — a denied automation permission often surfaces as an empty result rather than an error.
Quick Facts
Install
npx clawhub@latest install accli