Apple Calendar 是一个用于 macOS 的 Calendar.app 集成技能,通过 AppleScript 与系统日历交互。
用途
该技能用于在命令行或自动化流程中操作 macOS 日历,支持事件的增删改查、搜索以及多日历管理。
主要能力
提供以下命令脚本(需在 cd {baseDir} 后运行):
- 列出日历:scripts/cal-list.sh
- 列出事件:scripts/cal-events.sh [days_ahead] [calendar_name]
- 读取事件:scripts/cal-read.sh <event-uid> [calendar_name]
- 创建事件:scripts/cal-create.sh <calendar> <summary> <start> <end> [location] [description] [allday] [recurrence]
- 更新事件:scripts/cal-update.sh <event-uid> [--summary X] [--start X] [--end X] [--location X] [--description X]
- 删除事件:scripts/cal-delete.sh <event-uid> [calendar_name]
- 搜索事件:scripts/cal-search.sh <query> [days_ahead] [calendar_name]
日期格式
- 定时事件:YYYY-MM-DD HH:MM
- 全天事件:YYYY-MM-DD
重复规则
使用 RRULE 语法设置重复:
- 每天 10 次:FREQ=DAILY;COUNT=10
- 每周一、三、五:FREQ=WEEKLY;BYDAY=MO,WE,FR
- 每月 15 日:FREQ=MONTHLY;BYMONTHDAY=15
输出格式
- 事件/搜索:UID | Summary | Start | End | AllDay | Location | Calendar
- 读取:包含 description、URL、recurrence 的完整详情
使用方式
通过终端运行上述脚本,传入对应参数即可完成相应操作。
适用场景
适合在 macOS 上通过命令行或自动化脚本管理日历事件,例如批量创建、搜索、更新或删除事件,以及集成到个人工作流中。
限制
- 仅适用于 macOS。
- 只读日历(如生日、节假日)无法修改。
- 日历名称区分大小写。
- 删除重复事件会移除整个系列。