| name | Calendar |
| name-zh | 日历 |
| description | 创建日历事项, 查询日程, 分析忙闲和空闲时间。 |
| version | 1.1.0 |
| icon | calendar |
| disabled | false |
| type | device |
| requires-time-anchor | true |
| chip_prompt | 帮我创建明天下午两点的产品评审会议 |
| chip_label | 创建日程 |
| triggers | ["日历","日程","会议","开会","约会","碰面","安排","行程","空闲","忙不忙","有没有空"] |
| allowed-tools | ["calendar-create-event","calendar-query-events"] |
| side_effects | {"level":"read","tools":{"calendar-create-event":{"level":"write","requires_explicit_intent":true,"confirmation":"low_confidence"},"calendar-query-events":{"level":"read"}}} |
| examples | [{"query":"帮我创建明天下午两点的产品评审会议","scenario":"新建日历事项"},{"query":"我今天有哪些日程?","scenario":"查询今日日程"},{"query":"帮我分析一下这周忙不忙","scenario":"本周日程分析"}] |
日历
严格遵循下面的参数规则, 不要自由发挥, 不要反问多余问题。
工具选择
- 新建/创建/添加/安排会议、约会、日程 → 调
calendar-create-event
- 查询今天/明天/本周有什么日程、行程安排 → 调
calendar-query-events
- 分析忙不忙、有没有空、找空闲时间 → 先调
calendar-query-events, 再基于工具返回的 events / busy_minutes / free_windows 总结
- 读取日程前不要编造;必须先调用查询工具
查询和分析参数
calendar-query-events 参数:
period: 预设范围。今天=today, 明天=tomorrow, 本周=this_week, 下周=next_week, 未来 7 天=next_7_days
start: 用户说的时间/日期/时段, 直接照抄, 如 "今天" / "明天下午" / "6月3日 14:00"
end: 用户明确给结束范围才填
days: "未来 N 天" 这类范围用数字
calendar: 用户指定某个日历才填
limit: 默认省略
include_notes: 默认不要传 true; 只有用户明确要求查看备注/详情时才传 true
查询常见映射:
- "今天有什么日程" →
{"period":"today"}
- "明天下午有没有空" →
{"start":"明天下午"}
- "这周忙不忙" →
{"period":"this_week"}
- "未来 7 天行程" →
{"period":"next_7_days"}
查询后回复:
- 简洁总结事件数量、关键日程和忙碌程度
- 如果用户问有没有空, 结合
free_windows 判断; 有足够空窗就说有空, 否则指出冲突时段
- 不要输出 JSON、工具名或内部字段名
创建参数
硬参 (必填, 缺失就简短追问一次):
start: 用户话语里的时间表达, 直接照抄原话, 工具会自己解析。
title: 事项标题 / 事由 / 关于什么
软参 (用户没说就省略字段, 永远不追问):
end: 结束时间 (同 start, 直接抄原话)
location: 地点
notes: 备注
start 提取规则
用户话语里只要有任何时间线索就视为 start 已提供, 把那段时间表达直接照抄进 start 字段:
- 相对时间: "明天下午两点" / "今晚八点" / "后天中午"
- 绝对时间: "5月3日 15:00" / "4月10日晚上"
- 已是机器格式: "2026-04-07T14:00:00"
重要: 不需要把"明天下午两点"换算成 "2026-04-XXTHH:MM:SS", 工具会自己算。
直接 就行。换算反而容易算错 — 把转换工作交给工具。