MS Outlook + Teams Assistant
by @abhinavjp
Track and nag about Microsoft Outlook email and (optionally) Microsoft Teams messages on a Windows machine, without relying on web versions. Use when the user asks to: (1) monitor inbox/mentions and remind them on Telegram/Teams until dismissed, (2) draft short, personable, low-jargon email replies from an existing Outlook thread, (3) surface action items from the last N days (default 7). Works via Outlook Desktop automation (COM) and optionally Microsoft Graph for Teams if configured.
clawhub install ms-outlook-teams-assistantπ About This Skill
name: ms-outlook-teams-assistant description: "Track and nag about Microsoft Outlook email and (optionally) Microsoft Teams messages on a Windows machine, without relying on web versions. Use when the user asks to: (1) monitor inbox/mentions and remind them on Telegram/Teams until dismissed, (2) draft short, personable, low-jargon email replies from an existing Outlook thread, (3) surface action items from the last N days (default 7). Works via Outlook Desktop automation (COM) and optionally Microsoft Graph for Teams if configured."
MS Outlook + Teams Assistant (Desktop-first)
What this skill does
Safety defaults
Setup (one time)
A) Outlook Desktop automation (recommended)
1. Ensure Outlook Desktop is installed and signed in.
2. Install the Python dependency (ask before doing this on the machine):
- pip install pywin32
3. Create a config file:
- Copy references/config.example.json β references/config.json and fill it.
- IMPORTANT: Do not commit references/config.json if it contains personal IDs.
B) Teams via Graph (optional)
Only if you can create an Entra ID app registration and grant permissions.
references/config.example.json β references/config.json and fill teams.tenantId, teams.clientId, and teams.scopes.scripts/teams_scan.py once to complete Device Code sign-in.See references/teams-graph-setup.md.
Core workflows
1) Scan and remind (Outlook)
Use scripts/scan_outlook.py.
1b) Scan Teams (Graph)
Use scripts/teams_scan.py.
Parameters:
--days 7 (default)First run will print a device code sign-in message (follow it once).
Parameters:
--days 7 (default)--mode report|telegram (default: report)--max-items 200Heuristics (editable in config):
Output:
Then:
--mode telegram, send a single concise reminder message with bullet items.2) Dismiss / snooze an item
This skill uses a local state file to avoid nag loops.
internetMessageId (or subject+timestamp fallback) to the dismissed list.snoozeUntil timestamp.Use scripts/state.py helpers (or edit JSON directly if needed).
3) Draft an email reply (Outlook)
Use scripts/draft_reply.py.
4) Generate reminders (no send)
Use scripts/scan_all.py to update cached scan results, then scripts/remind.py to generate a Telegram-ready reminder message (it does not send).
It applies:
needsReply=truementionedMe=true AND needsReply=trueThe agent should send the output to Telegram if non-empty.
Inputs:
EntryID (preferred) or search by subject + recent window.Behavior:
references/writing-style.md.Outputs:
--create-draft is set.When you need more context from the user
Ask only what you cannot infer:
Keep questions minimal (max 3 at a time).