返回顶部
m

ms-graph-calendar微软日历查询

Find available meeting times and free/busy slots for company employees using Microsoft Graph API. Use when user asks to schedule a meeting, find a free slot, check when employees are available, or look up someone's calendar availability.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.2
安全检测
已通过
351
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

ms-graph-calendar

Microsoft Graph Calendar — 查找空闲时段

当用户想要执行以下操作时,请使用此技能:

  • - 查找多位员工同时空闲的时间
  • 检查特定人员在指定时间是否有空
  • 列出一人或多人即将召开的会议/忙碌时段
  • 建议公司范围内的会议时段

设置(首次一次性操作)

如果用户尚未设置,或系统提示缺少凭据,请按以下步骤操作:

  1. 1. 逐一询问用户以下3个值:
- AZURETENANTID(Azure门户 → Azure Active Directory → 概述) - AZURECLIENTID(应用注册 → 你的应用 → 应用程序(客户端)ID) - AZURECLIENTSECRET(应用注册 → 你的应用 → 证书和机密)
  1. 2. 获取完整信息后,运行以下命令:
bash node skills/ms-graph-calendar/scripts/setup.js \ --tenant-id TENANTID> \ --client-id CLIENTID> \ --client-secret CLIENTSECRET>

这些值将保存在 ~/.openclaw/ms-graph-calendar.json(权限600),每次使用此技能时会自动加载。

  1. 3. 使用以下命令进行测试:
bash node skills/ms-graph-calendar/scripts/get-token.js

如果显示✅ Token acquired,则表示已准备就绪。

应用注册必须具有以下应用程序权限:

  • - Calendars.Read — 读取所有用户的日历
  • User.Read.All — 列出员工
  • 管理员必须事先授予同意



配置

首次登录后,身份验证将被缓存。设备代码流程无需环境变量。

对于无头/自动化操作,请设置以下环境变量:

  • - AZURECLIENTID - Azure AD 应用客户端 ID
  • AZURECLIENTSECRET - Azure AD 应用机密
  • AZURETENANTID - 租户 ID(个人账户使用consumers)



工具

此技能通过 bash 运行 Node.js 脚本。文件:

  • - scripts/ — Node.js 脚本
  • nicknames.md — 昵称 → 邮箱映射表(可直接编辑)



操作说明

步骤 1 — 获取访问令牌

在进行任何 Graph API 调用之前,先获取仅限应用的令牌: bash node skills/ms-graph-calendar/scripts/get-token.js

将令牌存储在临时变量中,供后续调用使用。

步骤 2 — 解析用户请求

从用户消息中提取以下信息:
  • - :参与者的姓名或邮箱(例如Alice 和 Bob、市场团队)
  • 何时:搜索的日期范围(例如本周、下周一、3月5日至7日)
  • 时长:会议应持续多长时间(默认60分钟)
  • 时区:如未指定,默认为 Asia/Bangkok

如果缺少任何信息,请先询问用户再继续操作。

步骤 3 — 解析员工邮箱

3a. 先尝试转换昵称(更快,无需调用 API):
bash
node skills/ms-graph-calendar/scripts/resolve-nicknames.js --names Bank,Miu,Bo

从技能文件夹中的 nicknames.md 读取 — 可直接在此处编辑。

3b. 如果在 nicknames.md 中找不到,则回退到搜索 Graph API:
bash
node skills/ms-graph-calendar/scripts/list-users.js --search 姓名

如果有多人同名,请与用户确认。

步骤 4 — 查找空闲时段(选择一种方法)

方法 A — findMeetingTimes(最适合小团体,≤10人):
bash
node skills/ms-graph-calendar/scripts/find-meeting-times.js \
--attendees alice@company.com,bob@company.com \
--start 2025-03-01T08:00:00 \
--end 2025-03-01T18:00:00 \
--duration 60 \
--timezone Asia/Bangkok \
--max 5

方法 B — getSchedule(最适合大团体或查看空闲/忙碌时段):
bash
node skills/ms-graph-calendar/scripts/get-schedule.js \
--emails alice@company.com,bob@company.com,carol@company.com \
--start 2025-03-01T00:00:00 \
--end 2025-03-07T00:00:00 \
--timezone Asia/Bangkok \
--interval 30

步骤 5 — 呈现结果

清晰地格式化可用时段:

📅 所有人都空闲的可用时段:

  1. 1. 周一 3月3日 · 10:00–11:00
  2. 周二 3月4日 · 14:00–15:00
  3. 周三 3月5日 · 09:00–10:00

哪个时段最合适?

如果未找到任何时段,请扩大搜索范围并重试,或报告该时间段内没有共同空闲时间。



示例对话

用户:查找本周 Alice、Bob 和 Carol 都有空的1小时时段
助手:

  1. 1. 解析 Alice、Bob、Carol 的邮箱
  2. 使用日期范围 = 本周一至周五运行 find-meeting-times.js
  3. 返回前3个可用时段

用户:John 明天下午有空吗?
助手:

  1. 1. 解析 John 的邮箱
  2. 为明天12:00–18:00运行 get-schedule.js
  3. 报告空闲/忙碌时段

用户:显示市场团队所有人下周的空闲情况
助手:

  1. 1. 通过 list-users.js --group Marketing 列出市场组的用户
  2. 为所有邮箱运行 get-schedule.js
  3. 呈现可视化的空闲/忙碌摘要



错误处理


错误原因解决方法
401 未授权令牌过期或凭据错误重新运行 get-token.js,检查环境变量
403 禁止访问
缺少管理员同意 | 请 IT 管理员在 Azure 门户中授予同意 |
| 404 未找到 | 用户邮箱不存在 | 通过 list-users.js 验证邮箱 |
| 未找到时段 | 所有人都在忙 | 扩大时间范围或减少参与者 |


安全说明

  • - 凭据仅从环境变量读取 — 切勿记录或回显
  • 此技能对日历具有只读访问权限(Calendars.Read)
  • 无法创建、编辑或删除任何事件
  • 要限制应用可以读取的邮箱,请让 IT 管理员在 Exchange Online 中设置应用访问策略
powershell New-ApplicationAccessPolicy -AppId -PolicyScopeGroupId -AccessRight RestrictAccess

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 ms-graph-calendar-1776289508 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 ms-graph-calendar-1776289508 技能

通过命令行安装

skillhub install ms-graph-calendar-1776289508

下载

⬇ 下载 ms-graph-calendar v1.0.2(免费)

文件大小: 13.84 KB | 发布时间: 2026-4-16 18:34

v1.0.2 最新 2026-4-16 18:34
- Added scripts/setup.js for initial configuration of Azure credentials.
- Updated documentation with a new "Setup" section describing how to prompt users for credentials and run the setup script.
- Credentials are now stored securely in ~/.openclaw/ms-graph-calendar.json instead of requiring environment variables every time.
- First-time and missing-credential onboarding flow improved for easier setup.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部