将提醒和日程写入用户本人的 Microsoft Outlook 日历(即 Windows 日历),同步到所有设备。
运行配置向导,脚本会自动引导你完成 Azure AD 应用注册 + OAuth 登录:
powershell
python "C:\Users\johnx\.qclaw\skills\windows-calendar-sync\scripts\setup_and_auth.py"
脚本会自动:
Azure AD 应用注册是免费的,无需信用卡,只需要一个 Microsoft 账户。
同样运行上面的命令,脚本检测到已有 Client ID 会跳过注册步骤,直接进行登录。
当用户提出以下类型的请求时,触发本技能:
工作流程:
2026-04-15T10:00:00)calendar_sync.py add 将事件写入 Outlook 日历scripts/calendar_sync.py — 添加 / 查询 / 删除日历事件#添加事件:
powershell
python "C:\Users\johnx\.qclaw\skills\windows-calendar-sync\scripts\calendar_sync.py" add `
--title "团队周会" `
--start "2026-04-16T09:00:00" `
--duration 60 `
--reminder 15
参数说明:
参数必填说明--title / -t✅事件标题--start / -s✅开始时间,ISO 8601 格式--end / -e与 --duration 二选一结束时间--duration / -d与 --end 二选一持续分钟数(默认30分钟)--reminder / -r否提前多少分钟提醒(默认15,设为0则不提醒)--body / -b否事件描述--location / -l否地点--category / -c否分类标签(可多次指定)
列出未来事件:
powershell
python "C:\Users\johnx\.qclaw\skills\windows-calendar-sync\scripts\calendar_sync.py" list --days 7
删除事件:
powershell
python "C:\Users\johnx\.qclaw\skills\windows-calendar-sync\scripts\calendar_sync.py" delete <event_id>
将自然语言时间转换为 ISO 8601:
用户输入解析结果示例明天 10 点2026-04-13T10:00:00今天下午 3 点半2026-04-12T15:30:00下周一早上9点下一个周一 09:00周五 18:00本周/下周周五 18:00结合当前日期判断2 小时后当前时间 + 2h
时区:始终使用 Asia/Shanghai(中国用户),Windows 上自动检测本地时区。
创建定时提醒时,建议 同时做两件事:
示例 — 用户说「每天早上 8 点提醒我做运动」:
python
# 1. 创建 cron 任务(精确提醒)
cron.schedule("0 8 * * *", message="运动时间到!💪", repeat="daily")
# 2. 写入日历(可视化作息安排)
# 调用 calendar_sync.py:
python "C:\Users\johnx\.qclaw\skills\windows-calendar-sync\scripts\calendar_sync.py" add `
--title "🏃 运动时间" `
--start "2026-04-13T08:00:00" `
--duration 60 `
--reminder 10
scripts/token_store.json,不要移动或删除Calendars.ReadWrite,不读写邮件或文件webLink,可直接在浏览器打开问题解决方案access_token 获取失败运行 authenticate.py 重新认证Token 已过期删除 token_store.json,重新运行 authenticate.py事件时间显示错误确认 --start 使用 ISO 8601 格式,带 T 分隔符提醒没响检查 Outlook/Windows 日历的通知权限是否开启想删除事件但不知道 ID先运行 list 命令查找事件 ID