Outlook Calendar

读取企业 Microsoft 365 Outlook 日历。当用户问任何涉及日程、会议、安排、工作、任务、事情的问题时触发,例如:今天有什么安排、这周有什么会、本月会议多少小时、明天要做什么、下周有啥工作、这周有什么事、有啥任务等。

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 452 · 3 current installs · 3 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (read Outlook calendar) match the included scripts: login.py performs an interactive Playwright MFA login and saves cookies; owa_calendar.py extracts a Bearer token from Outlook Web and calls the Outlook Calendar API. Required binary (python3) is appropriate. The skill does not request unrelated cloud credentials or unexpected services.
Instruction Scope
SKILL.md explicitly instructs the user to create ~/.outlook/config.json containing email/password and to run pip install playwright + playwright install chromium, then run login.py and owa_calendar.py. These steps are within scope for a credential-based scraper, but they require storing plaintext credentials and installing browser automation tools — both are sensitive and worth user attention.
Install Mechanism
There is no automated install spec; the README instructs using pip and Playwright to install dependencies and Chromium. That's expected for Playwright-based tooling. No downloads from untrusted personal servers or URL shorteners are present in the repository or scripts.
Credentials
The skill asks users to place their account email/password in ~/.outlook/config.json (not via env vars). Requesting credentials is proportionate to the chosen approach (password+MFA automation), but storing plaintext passwords on disk is sensitive — the skill does not declare any environment variables or use unrelated credentials.
Persistence & Privilege
The skill does not request always:true and has no mechanism to modify other skills or system-wide settings. It will persist cookies/token files under the user's home (~/.outlook), which is expected for caching auth artifacts.
Assessment
This skill appears to do what it claims: it automates a Microsoft 365 login (with MFA) using Playwright, saves cookies/tokens under ~/.outlook, and calls only outlook.office.com/login.microsoftonline.com. Before installing, consider: (1) the skill requires you to store your email/password in plaintext in ~/.outlook/config.json — prefer a dedicated service account or least-privilege account and ensure file permissions restrict access; (2) Playwright will download a Chromium binary (playwright install chromium) — run installation in a controlled environment if concerned; (3) verify the code origin because the source is unknown; review login.py and owa_calendar.py yourself (they are short and readable) and confirm they only access Microsoft domains; (4) consider using a proper OAuth/app registration flow rather than storing credentials if your organization requires it; (5) run initial tests in an isolated environment or with an account that has no access to sensitive mailboxes. Overall the skill is coherent, but take precautions around credential storage and installation of browser automation tooling.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.2
Download zip
latestvk974p3mwq9thp8xtb3pdx7z1gd81z62t

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

📅 Clawdis
Binspython3

SKILL.md

Outlook 日历技能

触发条件

只要用户问任何涉及日程、会议、安排、日历、工作、任务、事情的问题,必须调用此技能。

  • "明天有什么安排" / "这周有什么会" / "本月日程"
  • "帮我看看日历" / "我今天几点有会"
  • "这个月会议一共多少小时"
  • "我下周有啥工作" / "明天要做啥" / "这周有什么事"
  • "下周安排" / "有啥任务" / "日程表看一下"
  • 任何时间 + 安排/会议/事件/工作/任务/事情的组合问法

首次配置

敏感信息(账号密码、Cookie、Token)存放在 ~/.outlook/不在 skill 目录内

1. 创建配置文件

创建 ~/.outlook/config.json,内容如下:

{
  "email": "your@company.com",
  "password": "your_password",
  "cookie_file": "/root/.outlook/cookies.json",
  "cookie_max_age_days": 7,
  "mfa_type": "authenticator_number_match"
}

2. 安装依赖

pip install playwright requests
playwright install chromium

3. 首次登录(MFA)

cd ~/.agents/skills/outlook-calendar
python login.py

脚本输出 [NUMBER:XX] 时,在 Microsoft Authenticator App 输入数字 XX 并批准,Cookie 自动保存到 ~/.outlook/cookies.json

调用步骤

第一步:读取日历

cd ~/.agents/skills/outlook-calendar
python owa_calendar.py --today          # 今天
python owa_calendar.py --tomorrow       # 明天
python owa_calendar.py --week           # 本周
python owa_calendar.py --month 2026-03  # 指定月份
python owa_calendar.py --range 2026-03-01 2026-03-31  # 自定义范围

第二步:处理 AUTH_FAILED

若输出 [AUTH_FAILED],Cookie 或 Token 过期,重新登录:

python login.py

第三步:整理输出

按用户问题整理回答:列出事件、统计总时长、按周分组等。 注意:API 返回时间为 UTC,需 +8 转换为上海时间。

文件结构

skill 目录(无敏感信息):
~/.agents/skills/outlook-calendar/
├── SKILL.md
├── login.py          # MFA 登录,保存 Cookie 到 ~/.outlook/
└── owa_calendar.py   # 日历读取(Token 模式)

敏感数据目录:
~/.outlook/
├── config.json       # 账号密码(自行创建)
├── cookies.json      # 登录 Cookie(login.py 自动生成)
└── token.json        # Bearer Token 缓存(自动生成,1h 有效)

MFA 说明

  • 类型:Authenticator 数字匹配
  • Cookie 有效期:通常 1-7 天,过期重跑 login.py
  • 多次失败会触发微软限速,等 15 分钟再试

Files

3 total
Select a file
Select a file to preview.

Comments

Loading comments…