Read, search, and manage Outlook emails and calendar via Microsoft Graph API. Use when the user asks about emails, inbox, Outlook, Microsoft mail, calendar events, or scheduling.
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install outlook或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install outlook⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/outlook/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: outlook description: Read, search, and manage Outlook emails and calendar via Microsoft Graph API. Use when the user asks about emails, inbox, Outlook, Microsoft mail, calendar events, or scheduling. version: 1.3.0 author: jotamed ---
Access Outlook/Hotmail email and calendar via Microsoft Graph API using OAuth2.
# Requires: Azure CLI, jq
./scripts/outlook-setup.sh
The setup script will:
~/.outlook-mcp/See references/setup.md for step-by-step manual configuration via Azure Portal.
./scripts/outlook-token.sh refresh # Refresh expired token
./scripts/outlook-token.sh test # Test connection
./scripts/outlook-token.sh get # Print access token
./scripts/outlook-mail.sh inbox [count] # List latest emails (default: 10)
./scripts/outlook-mail.sh unread [count] # List unread emails
./scripts/outlook-mail.sh search "query" [count] # Search emails
./scripts/outlook-mail.sh from <email> [count] # List emails from sender
./scripts/outlook-mail.sh read <id> # Read email content
./scripts/outlook-mail.sh attachments <id> # List email attachments
./scripts/outlook-mail.sh mark-read <id> # Mark as read
./scripts/outlook-mail.sh mark-unread <id> # Mark as unread
./scripts/outlook-mail.sh flag <id> # Flag as important
./scripts/outlook-mail.sh unflag <id> # Remove flag
./scripts/outlook-mail.sh delete <id> # Move to trash
./scripts/outlook-mail.sh archive <id> # Move to archive
./scripts/outlook-mail.sh move <id> <folder> # Move to folder
./scripts/outlook-mail.sh send <to> <subj> <body> # Send new email
./scripts/outlook-mail.sh reply <id> "body" # Reply to email
./scripts/outlook-mail.sh folders # List mail folders
./scripts/outlook-mail.sh stats # Inbox statistics
./scripts/outlook-calendar.sh events [count] # List upcoming events
./scripts/outlook-calendar.sh today # Today's events
./scripts/outlook-calendar.sh week # This week's events
./scripts/outlook-calendar.sh read <id> # Event details
./scripts/outlook-calendar.sh calendars # List all calendars
./scripts/outlook-calendar.sh free <start> <end> # Check availability
./scripts/outlook-calendar.sh create <subj> <start> <end> [location] # Create event
./scripts/outlook-calendar.sh quick <subject> [time] # Quick 1-hour event
./scripts/outlook-calendar.sh update <id> <field> <value> # Update (subject/location/start/end)
./scripts/outlook-calendar.sh delete <id> # Delete event
Date format: YYYY-MM-DDTHH:MM (e.g., 2026-01-26T10:00)
$ ./scripts/outlook-mail.sh inbox 3
{
"n": 1,
"subject": "Your weekly digest",
"from": "[email protected]",
"date": "2026-01-25T15:44",
"read": false,
"id": "icYY6QAIUE26PgAAAA=="
}
{
"n": 2,
"subject": "Meeting reminder",
"from": "[email protected]",
"date": "2026-01-25T14:06",
"read": true,
"id": "icYY6QAIUE26PQAAAA=="
}
$ ./scripts/outlook-mail.sh read "icYY6QAIUE26PgAAAA=="
{
"subject": "Your weekly digest",
"from": { "name": "Digest", "address": "[email protected]" },
"to": ["[email protected]"],
"date": "2026-01-25T15:44:00Z",
"body": "Here's what happened this week..."
}
$ ./scripts/outlook-mail.sh stats
{
"folder": "Inbox",
"total": 14098,
"unread": 2955
}
$ ./scripts/outlook-calendar.sh today
{
"n": 1,
"subject": "Team standup",
"start": "2026-01-25T10:00",
"end": "2026-01-25T10:30",
"location": "Teams",
"id": "AAMkAGQ5NzE4YjQ3..."
}
$ ./scripts/outlook-calendar.sh create "Lunch with client" "2026-01-26T13:00" "2026-01-26T14:00" "Restaurant"
{
"status": "event created",
"subject": "Lunch with client",
"start": "2026-01-26T13:00",
"end": "2026-01-26T14:00",
"id": "AAMkAGQ5NzE4YjQ3..."
}
Access tokens expire after ~1 hour. Refresh with:
./scripts/outlook-token.sh refresh
~/.outlook-mcp/config.json - Client ID and secret~/.outlook-mcp/credentials.json - OAuth tokens (access + refresh)Mail.ReadWrite - Read and modify emailsMail.Send - Send emailsCalendars.ReadWrite - Read and modify calendar eventsoffline_access - Refresh tokens (stay logged in)User.Read - Basic profile infoid field shows the last 20 characters of the full message ID. Use this ID with commands like read, mark-read, delete, etc.outlook-token.sh refresh when you see auth errors.read, mark-read, etc. search the 100 most recent emails for the ID."Token expired" → Run outlook-token.sh refresh
"Invalid grant" → Token invalid, re-run setup: outlook-setup.sh
"Insufficient privileges" → Check app permissions in Azure Portal → API Permissions
"Message not found" → The email may be older than 100 messages. Use search to find it first.
"Folder not found" → Use exact folder name. Run folders to see available folders.
outlook-calendar.sh)- View events (today, week, upcoming) - Create/quick-create events - Update event details (subject, location, time) - Delete events - Check availability (free/busy) - List calendars
Calendars.ReadWrite permissionmark-unread - Mark emails as unreadflag/unflag - Flag/unflag emails as importantdelete - Move emails to trasharchive - Archive emailsmove - Move emails to any folderfrom - Filter emails by senderattachments - List email attachmentsreply - Reply to emailssend - Better error handling and status outputmove - Case-insensitive folder names, shows available folders on errorto field in read output安装 Outlook 后,可以对 AI 说这些话来触发它
Send a Slack message to the #engineering channel about the deployment
Formats and sends the message with relevant context, tagging the right people
Summarize all unread messages in my inbox from today
Reads messages across connected channels and returns a prioritized summary
Draft a reply to this customer complaint and send it for review
Writes an empathetic, professional response and routes it to the approval queue
将技能文件夹放到 ~/.claude/skills/outlook/ 目录(个人级,所有项目可用),或 .claude/skills/outlook/(项目级)。重启 AI 客户端后,用 /outlook 主动调用,或让 AI 根据上下文自动发现并使用。
Outlook 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Outlook 可免费安装使用。请查阅仓库了解许可证信息。
Read, search, and manage Outlook emails and calendar via Microsoft Graph API. Use when the user asks about emails, inbox, Outlook, Microsoft mail, calendar events, or scheduling.
Outlook 属于「Communication」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。