This skill should be used when the user asks about Apple app data via the native Swift MCP — Calendar, Reminders, Contacts, Maps, Mail, Messages, Notes, or Photos on macOS. Triggers on phrases like "check my calendar", "find contact", "send iMessage", "search my notes", "recent emails", "find photos of", or any macOS-native app automation. Requires macOS 14+ on Apple Silicon; faster than the AppleScript-backed Node variant.
编程
Apple Calendar CLI Plus
试用Manage Apple Calendar events from the command line on macOS — create, update, delete, search, export, and check availability with full JSON output for agent use.
它能做什么
Manage Apple Calendar events from the command line on macOS — create, update, delete, search, export, and check availability with full JSON output for agent use.
技能文档
accli — Apple Calendar CLI
accli manages Apple Calendar on macOS via EventKit. All commands support --json for structured output. Exit codes: 0=success, 1=runtime error, 2=validation error, 10=auth error.
First run: accli setup to grant Calendar permissions (Full Access required in System Settings > Privacy & Security > Calendars).
Calendars
accli calendars [--json]
Returns list of calendars with id, name, source, index, writable. Always prefer --calendar-id over calendar name — IDs are stable, names are not.
Events
accli events [] [--calendar-id ] --from --to [--json]
Lists events in a date range. Calendar is required (use name, --calendar-id, or set a default via accli config set-default).
Single Event
accli event [] [--calendar-id ] [--json]
Fetches full event detail including alerts array (minutes before start).
Create Event
accli create --summary --start --end \
[--location ] [--description ] [--all-day] \
[--alert ] [--alert ] \
[--recur daily|weekly|monthly|yearly] [--recur-count ] [--recur-end ] \
[--json]
--alertis repeatable — adds one alert per flag (minutes before start)--recur-endand--recur-countare mutually exclusive- All-day events: use
YYYY-MM-DDfor--startand--end - Timed events: use
YYYY-MM-DDTHH:mm
Update Event
accli update \
[--summary ] [--start ] [--end ] \
[--location ] [--description ] \
[--alert ] [--alert ] \
[--dry-run] [--json]
--alert on update replaces all existing alerts. Omit --alert to leave alerts unchanged.
--dry-run returns { dryRun: true, wouldUpdate: { eventId, changes } } without modifying anything.
Delete Event
accli delete [--dry-run] [--json]
--dry-run returns { dryRun: true, wouldDelete: { id, summary, calendar, start, end } } without deleting.
Search
accli search --query [--from ] [--to ] [--calendar-id ] [--json]
Case-insensitive search across summary, location, and description. Searches all calendars unless --calendar-id is provided. Returns events with calendarId field for targeting.
Export
accli export --from --to [--calendar-id ] [--json]
Exports all events grouped by calendar. Response: { calendars: [{ id, name, source, events, truncated }], totalEvents, truncated }. Each calendar truncates at 500 events per calendar and sets truncated: true if hit.
Free/Busy
accli freebusy --from --to [--calendar-name ] [--json]
Returns busy time slots across calendars.
Config
accli config set-default --calendar-id [--json]
accli config show [--json]
accli config clear [--json]
Persists default calendar to ~/.acclirc (override with ACCLI_CONFIG_PATH). Commands that require a calendar use the default when no calendar is specified.
DateTime Formats
- Timed:
YYYY-MM-DDTHH:mmorYYYY-MM-DDTHH:mm:ss - Date-only (all-day events, --from/--to):
YYYY-MM-DD
Agent Best Practices
- Always use
--jsonfor programmatic parsing - Use
--calendar-idnot calendar name (stable across renames) - Use
--dry-runbefore destructive operations to confirm target event - Use
accli searchto find event IDs before update/delete - Check
ok: falsein JSON response before proceeding accli exportis suitable for full calendar backup; checktruncatedfield- Multiple alerts: repeat
--alertflag — e.g.--alert 5 --alert 15 - macOS only — do not attempt on non-darwin systems
Error Codes
| Code | Meaning |
|---|---|
NOT_AUTHORIZED | Calendar access not granted or set to Add Only |
CALENDAR_NOT_FOUND | Calendar ID or name not found |
AMBIGUOUS_CALENDAR | Multiple calendars with same name — use --calendar-id |
EVENT_NOT_FOUND | Event ID not found in calendar |
MISSING_REQUIRED | Required flag missing |
INVALID_ARGUMENT | Invalid flag value |
INVALID_RANGE | Start is after end |
相关技能
通过 OAuth 认证调用 Google 日历 REST 接口,读写日程与可用时间。
通过 gcalcli 管理 Google 日历事件,支持创建、列出和删除日程,适合个人时间管理。Use when 需要项目管理、任务规划、进度跟踪、团队协作时使用。不适用于实际人员绩效评估。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。
通过 porteden CLI 安全管理 Google 与 Outlook 日历,支持事件查询、创建与更新。Use when 需要安全检测、合规审计、漏洞扫描、加密防护时使用。不适用于渗透测试未授权目标。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。
AppleDB (appledb.dev). Use this skill for ANY AppleDB request — searching and reading data. Whenever a task involves AppleDB, use this skill instead of calling the API directly.
Turn a school or work timetable (xlsx / csv) into a shareable HTTPS ICS subscription. Split class blocks into sessions, add one travel alarm per day (first class only), host a WeChat/iOS/Android landing page. Use when the user says 课表订阅, 日历订阅, timetable to ICS, calendar subscription, 同步到日历, webcal, 开学课表, share calendar with classmates. NOT FOR one-off local Calendar.app AppleScript dumps, Google Calendar API event-by-event writes, or todo/reminder apps.