用途:通过 $SKILL_DIR/scripts/calendar.sh 管理 macOS 日历(Apple Calendar)事件,适合用户要求添加提醒、安排日程或创建日历条目的场景。所有日期处理采用相对计算(当前日期加 N 天),以避开 FR/EN/DE 等区域日期格式问题。
主要能力:列出日历;创建事件。创建事件时 JSON 字段包括 summary(必填)、calendar、description、offset_days(0 为今天,1 为明天,7 为下周)、iso_date(绝对日期 YYYY-MM-DD,覆盖 offset_days)、hour(默认 9)、minute(默认 0)、duration_minutes(默认 30)、alarm_minutes(默认 0 表示无提醒)、all_day(默认 false)、recurrence(iCal RRULE 字符串,参见 references/recurrence.md)。
使用方式:先列出日历以确认正确名称,命令为 "$SKILL_DIR/scripts/calendar.sh" list-calendars;创建事件用 echo '<json>' | "$SKILL_DIR/scripts/calendar.sh" create-event。将自然语言映射为 JSON,例如“明天下午 2 点”对应 offset_days: 1, hour: 14;“每周工作日早上 9 点”对应 hour: 9, recurrence: "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR";“提前 1 小时提醒”对应 alarm_minutes: 60;“3 月 1 日全天事件”对应 iso_date: "2026-03-01", all_day: true。计算“下周一”等偏移可用 date 命令,例如 target=1; today=$(date +%u); echo $(( (target - today + 7) % 7 ))。
限制与规则:若用户未指定日历,应先列出日历;标记 [read-only] 的日历不能用于创建事件,脚本会拒绝并报错;若存在多个个人日历,应与用户确认名称;不要用硬编码日期字符串,应使用 offset_days 或 iso_date;JSON 必须通过标准输入传入,不能作为命令行参数,避免进程列表泄露数据;脚本会校验所有字段;所有操作记录到 logs/calendar.log。重复事件需查阅 references/recurrence.md 获取 RRULE 语法。