Openclaw操作Outlook日历指南
本文档记录了在 OpenClaw 中配置 Outlook 日历功能的完整过程。读取 Outlook 邮件管理日历事件创建/更新/删除日程与 OpenClaw 智能助手集成。
Outlook 日历配置指南
OpenClaw + Microsoft Graph API 集成配置
配置日期:2026-02-26
概述
本文档记录了在 OpenClaw 中配置 Outlook 日历功能的完整过程。通过 Microsoft Graph API,可以实现:
- 读取 Outlook 邮件
- 管理日历事件
- 创建/更新/删除日程
- 与 OpenClaw 智能助手集成
前置条件
- Microsoft 账户 - Outlook.com、Hotmail、Live 或 Microsoft 365 账户
- Azure Portal 访问权限 - https://portal.azure.com
- 工具安装 -
jq(JSON 处理工具) - OpenClaw 环境 - 已安装 outlook skill
配置步骤
Step 1: 创建 Azure 应用注册
- 访问 https://portal.azure.com
- 搜索 “App registrations” → 点击进入
- 点击 “+ New registration”
- 填写应用信息:
- 名称:
OpenClaw-Outlook(或自定义名称) - 支持的账户类型: 选择 “Accounts in any organizational directory and personal Microsoft accounts”
- 重定向 URI:
- 平台 = Web
- URI =
http://localhost
- 名称:
- 点击 Register
Step 2: 获取客户端凭据
注册完成后:
-
在应用概述页面,复制 Application (client) ID → 这是你的
CLIENT_ID -
左侧菜单进入 Certificates & secrets
-
点击 + New client secret
-
添加描述(如 “openclaw-token”)并选择有效期
-
点击 Add
-
立即复制 Value(不是 ID)→ 这是你的
CLIENT_SECRET⚠️ 重要: Client Secret 只显示一次,务必立即保存!
Step 3: 配置 API 权限
-
左侧菜单进入 API permissions
-
点击 + Add a permission
-
选择 Microsoft Graph → Delegated permissions
-
添加以下权限:
权限 用途 Mail.ReadWrite读取和写入邮件 Mail.Send发送邮件 Calendars.ReadWrite读取和写入日历 User.Read读取用户基本信息 offline_access离线访问(刷新令牌) -
点击 Add permissions
注:
offline_access在授权时自动请求,无需在此配置。
Step 4: 保存配置文件
创建配置目录和文件:
# 创建目录
New-Item -ItemType Directory -Force -Path ~/.outlook-mcp
# 创建配置文件
@"
{
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}
"@ | Out-File -FilePath ~/.outlook-mcp/config.json -Encoding UTF8
Step 5: 授权应用
构建授权 URL(替换 YOUR_CLIENT_ID):
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=http://localhost&scope=https://graph.microsoft.com/Mail.ReadWrite%20https://graph.microsoft.com/Mail.Send%20https://graph.microsoft.com/Calendars.ReadWrite%20offline_access&response_mode=query
- 在浏览器中打开此 URL
- 使用 Microsoft 账户登录
- 授予请求的权限
- 重定向到
http://localhost?code=XXXXX... - 复制 URL 中的
code值(code=后到&或结尾的部分)
Step 6: 交换令牌
使用授权码获取访问令牌:
$CLIENT_ID = "your-client-id"
$CLIENT_SECRET = "your-client-secret"
$AUTH_CODE = "the-code-from-step-5"
# 发送请求
$body = @{
client_id = $CLIENT_ID
client_secret = $CLIENT_SECRET
code = $AUTH_CODE
redirect_uri = "http://localhost"
grant_type = "authorization_code"
scope = "https://graph.microsoft.com/Mail.ReadWrite https://graph.microsoft.com/Mail.Send https://graph.microsoft.com/Calendars.ReadWrite offline_access"
}
$response = Invoke-RestMethod -Uri "https://login.microsoftonline.com/common/oauth2/v2.0/token" `
-Method POST `
-Body $body `
-ContentType "application/x-www-form-urlencoded"
$response | ConvertTo-Json | Out-File -FilePath ~/.outlook-mcp/credentials.json -Encoding UTF8
Step 7: 验证配置
# 获取访问令牌
$creds = Get-Content ~/.outlook-mcp/credentials.json | ConvertFrom-Json
$ACCESS_TOKEN = $creds.access_token
# 测试 API
$headers = @{ "Authorization" = "Bearer $ACCESS_TOKEN" }
Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/me/mailFolders/inbox" -Headers $headers
成功后会显示收件箱统计信息。
日常使用
令牌管理
# 刷新过期令牌
./scripts/outlook-token.sh refresh
# 测试连接
./scripts/outlook-token.sh test
# 获取访问令牌
./scripts/outlook-token.sh get
日历操作
# 查看今日日程
./scripts/outlook-calendar.sh today
# 查看本周日程
./scripts/outlook-calendar.sh week
# 创建事件
./scripts/outlook-calendar.sh create "会议主题" "2026-02-27T10:00" "2026-02-27T11:00" "会议室A"
# 快速创建1小时事件
./scripts/outlook-calendar.sh quick "临时会议" "2026-02-27T14:00"
# 更新事件
./scripts/outlook-calendar.sh update <id> location "新地点"
# 删除事件
./scripts/outlook-calendar.sh delete <id>
邮件操作
# 查看收件箱
./scripts/outlook-mail.sh inbox 10
# 查看未读邮件
./scripts/outlook-mail.sh unread
# 搜索邮件
./scripts/outlook-mail.sh search "关键词"
# 发送邮件
./scripts/outlook-mail.sh send to@example.com "主题" "正文"
与 OpenClaw 集成
配置完成后,可以通过 OpenClaw 直接操作 Outlook:
- 自然语言查询: “今天的日程是什么?”
- 添加日程: “明天下午3点安排一个会议”
- 查看邮件: “有什么新邮件?”
常见问题
“Token expired” 错误
- 访问令牌有效期约 1 小时
- 运行
./scripts/outlook-token.sh refresh刷新
“Invalid grant” 错误
- 令牌失效,需要重新授权
- 重新运行 setup 步骤
“Insufficient privileges” 错误
- 检查 Azure Portal 中的 API 权限配置
- 确保所有必要权限已添加
企业账户问题
- 企业账户可能需要管理员同意
- 联系 IT 管理员或使用个人 Microsoft 账户
文件位置
| 文件 | 路径 | 用途 |
|---|---|---|
| 配置文件 | ~/.outlook-mcp/config.json |
Client ID 和 Secret |
| 凭证文件 | ~/.outlook-mcp/credentials.json |
OAuth 令牌 |
| Skill 文件 | skills/outlook/SKILL.md |
使用说明 |
安全建议
- 保护 Client Secret - 不要提交到版本控制
- 定期刷新令牌 - 设置自动刷新脚本
- 最小权限原则 - 只授予必要的 API 权限
- 监控使用 - 定期检查 Azure Portal 中的应用活动
参考资料
文档版本: 1.0
最后更新: 2026-02-27
适用环境: Windows 10/11 + OpenClaw 2026.2.x
更多推荐

所有评论(0)