macOS Calendar
2026-03-28
新闻来源:网淘吧
围观:53
电脑广告
手机广告
macOS 日历
通过以下脚本管理 Apple 日历事件$SKILL_DIR/scripts/calendar.sh。所有日期处理均采用相对计算方式(当前日期 + N * 天数)以避免区域设置问题(FR/EN/DE 日期格式)。
快速入门
列出日历
请始终首先列出日历以找到正确的日历名称:
"$SKILL_DIR/scripts/calendar.sh" list-calendars
创建事件
echo '<json>' | "$SKILL_DIR/scripts/calendar.sh" create-event
JSON 字段:
| 字段 | 必需 | 默认值 | 描述 |
|---|---|---|---|
summary | 是 | - | 事件标题 |
calendar | 否 | 第一个日历 | 日历名称(来自 list-calendars) |
description | 不 | "" | 事件备注 |
偏移天数 | 不 | 0 | 距今天数 (0=今天, 1=明天, 7=下周) |
ISO日期 | 不 | - | 绝对日期年-月-日(覆盖偏移天数) |
小时 | 不 | 9 | 开始小时 (0-23) |
分钟 | 不 | 0 | 开始分钟 (0-59) |
持续时间_分钟 | 不 | 30 | 持续时间 |
提醒_分钟 | 不 | 0 | 提前 N 分钟提醒(0=无提醒) |
全天 | 否 | 假 | 全天事件 |
重复 | 否 | - | iCal RRULE 字符串。参见references/recurrence.md |
解释自然语言
将用户请求映射到 JSON 字段:
| 用户说 | JSON |
|---|---|
| "明天下午2点" | offset_days: 1, hour: 14 |
| "3天后" | offset_days: 3 |
| "下周一上午10点" | 计算从今天到下周一的天数偏移量,hour: 10 |
| "2月25日下午3:30" | iso_date: "2026-02-25", hour: 15, minute: 30 |
| "每个工作日上午9点" | 小时: 9, 重复规则: "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR" |
| "提前1小时提醒我" | 提醒提前分钟数: 60 |
| "3月1日的全天事件" | ISO日期: "2026-03-01", 全天: true |
对于"下周一"、"下周五"等表述:使用当前日期计算日期偏移量。如果需要,使用日期命令:
# Days until next Monday (1=Monday)
target=1; today=$(date +%u); echo $(( (target - today + 7) % 7 ))
示例提示
以下是真实的用户提示以及您应运行的命令:
"提醒我2天后给牙医打电话"
"$SKILL_DIR/scripts/calendar.sh" list-calendars
然后:
echo '{"calendar":"Personnel","summary":"Call dentist","offset_days":2,"hour":9,"duration_minutes":15,"alarm_minutes":30}' | "$SKILL_DIR/scripts/calendar.sh" create-event
"安排每周二下午2点的团队同步会议,并设置10分钟前提醒"
echo '{"calendar":"Work","summary":"Team sync","hour":14,"duration_minutes":60,"recurrence":"FREQ=WEEKLY;BYDAY=TU","alarm_minutes":10}' | "$SKILL_DIR/scripts/calendar.sh" create-event
"将7月15日标记为休假日"
echo '{"calendar":"Personnel","summary":"Vacances","iso_date":"2026-07-15","all_day":true}' | "$SKILL_DIR/scripts/calendar.sh" create-event
"我下周四下午3:30有医生预约,提前1小时提醒我"
# First compute offset_days to next Thursday (4=Thursday)
target=4; today=$(date +%u); offset=$(( (target - today + 7) % 7 )); [ "$offset" -eq 0 ] && offset=7
然后:
echo "{\"calendar\":\"Personnel\",\"summary\":\"Doctor appointment\",\"offset_days\":$offset,\"hour\":15,\"minute\":30,\"duration_minutes\":60,\"alarm_minutes\":60}" | "$SKILL_DIR/scripts/calendar.sh" create-event
"设置接下来4周内每个工作日上午9点的每日站会"
echo '{"calendar":"Work","summary":"Daily standup","hour":9,"duration_minutes":15,"recurrence":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;COUNT=20"}' | "$SKILL_DIR/scripts/calendar.sh" create-event
"添加与我经理每两周一次、周五上午11点的一对一会议"
echo '{"calendar":"Work","summary":"1-on-1 Manager","hour":11,"duration_minutes":30,"recurrence":"FREQ=WEEKLY;INTERVAL=2;BYDAY=FR","alarm_minutes":5}' | "$SKILL_DIR/scripts/calendar.sh" create-event
关键规则
- 始终优先列出日历如果用户未指定日历——标记为
[只读]的日历不能用于创建事件 - 切勿在AppleScript中使用硬编码日期字符串——始终使用
offset_days或iso_date - 当存在多个个人日历时,需向用户确认日历名称切勿针对
- [只读]
日历——脚本将报错拒绝对于周期性事件 - ,请查阅references/recurrence.md了解RRULE语法通过标准输入传递JSON
- ——切勿作为命令行参数传递(避免在进程列表中泄露数据)所有字段均需验证
- All fields are validated通过脚本(类型强制转换、范围检查、格式验证)——无效输入会被拒绝并显示错误信息
- 所有操作都会被记录到
logs/calendar.log包含时间戳、命令、日历和摘要
文章底部电脑广告
手机广告位-内容正文底部
上一篇:my-daily-news
下一篇:Chromadb Memory Pub


微信扫一扫,打赏作者吧~