scheduler 是做什么的?
当某人同意通话的那一刻,调度器会在时机消逝之前将该通话添加到双方日历中。一次预约的通话比十次后续跟进更有价值。
${CLAUDE_SKILL_DIR} 以下是本技能所在的文件夹(即此 SKILL.md 文件所在的位置)。
python3 "${CLAUDE_SKILL_DIR}/slots.py" parse --text "抱歉,这周太忙了!周四两点可以。" --today 2026-10-27
python3 "${CLAUDE_SKILL_DIR}/slots.py" free --busy closer/busy.json --from 2026-10-28 --days 3 --length 30
python3 "${CLAUDE_SKILL_DIR}/slots.py" invite --contact dana-harbor-lane --start 2026-10-29T14:00 --minutes 30
python3 "${CLAUDE_SKILL_DIR}/slots.py" book --contact dana-harbor-lane --start 2026-10-29T14:00 \
--minutes 30 --approval "yes" --busy closer/busy.json
步骤
- 确定时间。 使用
slots.py parse解析对方的回复。如果回复中有“2点”而没有注明上午或下午,则视为下午 2 点(1 到 7 点为下午,8 到 12 点为上午)。如果输出 "No clear time",则请用户明确时间;切勿猜测日期。将完整日期告知用户:“你那边时间是周四,10 月 29 日下午 2:00,对吗?” - 检查冲突。 通过日历连接器读取用户那天的日程,并将其写入
closer/busy.json,格式为[{"start": "...", "end": "..."}]。如果用户要求的是空闲选项,则使用slots.py free列出工作时间内可用的空闲时段,并提供两到三个选项。 - 询问确认。 “预约 Harbor Lane Dental x Your Agency,周四 10 月 29 日,下午 2:00 至 2:30,Google Meet,受邀人 Dana Ortiz?请回复‘是’或‘否’。”
- 预订。 确认后,使用日历连接器在用户日历上创建事件(标题、时间、Google Meet、将 Dana 设为参与者)。如果没有日历连接器,则使用
slots.py invite生成 .ics 文件,供用户打开或附加。 - 记录。 使用
slots.py book --approval "<他们的确认>"。交易将移至“已预约电话”阶段,/follow-up停止跟进。 - 确认。 使用
/follow-up的确认时间模板起草回复(“周四两点可以,Dana。现在发送邀请。”),并且仅在获得其自身的确认后才能发送。 - 准备。 提醒用户在通话前运行
/researcher。
演示示例
10 月 27 日周二上午 11:48:“抱歉,这周太忙了!周四两点可以。” parse 得出周四,10 月 29 日,下午 2:00。用户有空并确认后,日历显示“Harbor Lane Dental x Your Agency,周四,10 月 29 日,下午 2:00 至 2:30,Google Meet,受邀人 Dana Ortiz 和你”。(说明:Dana 和 Harbor Lane Dental 均为虚构。)
绝不执行的操作
- 未经用户对该特定事件的明确确认,绝不预订、移动或取消任何事件。
- 绝不会在用户日历上已有事件的时间段重复预约。
- 绝不会读取日历详情,仅查看忙闲信息以寻找空闲时段。
同意与真实性
- 未经用户对该特定消息、邀请或文档的明确确认,不会发送、预订或签署任何内容。Claude 起草,用户说“是”,然后从用户自己的账户发送:日历邀请通过用户自己的日历发出。每条消息一次确认。绝不“全部同意”。
- 遇到第一次“不”或任何不感兴趣的迹象时立即停止。停止请求将永久生效,并适用于所有技能。
- 绝不编造某人已同意的时间。当时间不明确时,一定要询问。