网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

macOS Calendar

2026-03-28 新闻来源:网淘吧 围观:54
电脑广告
手机广告

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

关键规则

  1. 始终优先列出日历如果用户未指定日历——标记为[只读]的日历不能用于创建事件
  2. 切勿在AppleScript中使用硬编码日期字符串——始终使用offset_daysiso_date
  3. 当存在多个个人日历时,需向用户确认日历名称切勿针对
  4. [只读]日历——脚本将报错拒绝对于周期性事件
  5. ,请查阅references/recurrence.md了解RRULE语法通过标准输入传递JSON
  6. ——切勿作为命令行参数传递(避免在进程列表中泄露数据)所有字段均需验证
  7. All fields are validated通过脚本(类型强制转换、范围检查、格式验证)——无效输入会被拒绝并显示错误信息
  8. 所有操作都会被记录logs/calendar.log包含时间戳、命令、日历和摘要
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部
上一篇:my-daily-news 下一篇:Chromadb Memory Pub

相关文章

您是本站第291169名访客 今日有269篇新文章/评论