ms-outlook-teams-assistant
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.
Best use case
ms-outlook-teams-assistant is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
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.
Teams using ms-outlook-teams-assistant should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/ms-outlook-teams-assistant/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How ms-outlook-teams-assistant Compares
| Feature / Agent | ms-outlook-teams-assistant | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
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.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
Best AI Skills for ChatGPT
Find the best AI skills to adapt into ChatGPT workflows for research, writing, summarization, planning, and repeatable assistant tasks.
ChatGPT vs Claude for Agent Skills
Compare ChatGPT and Claude for AI agent skills across coding, writing, research, and reusable workflow execution.
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
SKILL.md Source
# MS Outlook + Teams Assistant (Desktop-first) ## What this skill does - **Inbox nagging (Outlook Desktop)**: find messages from the last 7 days that likely need a reply, then send reminders until dismissed. - **Email reply drafting**: produce concise drafts that match the user’s tone rules (conversational, spartan, polite; simple English; short; reduce redundancy; avoid em dashes). - **Teams tracking (optional)**: if Microsoft Graph is configured and permitted by tenant policy, track recent Teams chat messages that likely need a reply and nag similarly. ## Safety defaults - Do **not** auto-send emails or Teams messages. - Create **drafts** in Outlook, or paste drafts into Telegram for approval. - For reminders: send to **Telegram** by default; only send to Teams if explicitly enabled. ## 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. - Copy `references/config.example.json` → `references/config.json` and fill `teams.tenantId`, `teams.clientId`, and `teams.scopes`. - Then run `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 200` Heuristics (editable in config): - Within last N days - Not from obvious broadcast sources - Prefer threads where user is **To:** (not only CC) OR subject/body contains direct asks - Prefer messages not replied by user (best-effort) Output: - A list of actionable items with: subject, sender, received time, why it was flagged. Then: - If `--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. - Dismiss: add the message’s `internetMessageId` (or subject+timestamp fallback) to the dismissed list. - Snooze: store a `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: - 1:1 Teams → remind when `needsReply=true` - Group Teams → remind when `mentionedMe=true` AND `needsReply=true` - Outlook → remind for flagged items The agent should send the output to Telegram if non-empty. Inputs: - Either a message `EntryID` (preferred) or search by subject + recent window. Behavior: - Extract the thread (best-effort) + key metadata. - Generate 2 drafts: - **Short** (2–5 sentences) - **Normal** (5–10 sentences) - Apply tone rules from `references/writing-style.md`. Outputs: - Print drafts to stdout. - Optionally create an Outlook **draft reply** (no sending) if `--create-draft` is set. ## When you need more context from the user Ask only what you cannot infer: - Which email to reply to (subject / sender / when) - The user’s intent (agree/decline/ask for info/confirm timeline) - Any constraints (deadlines, attachments, names) Keep questions minimal (max 3 at a time).
Related Skills
Contract Review Assistant
Analyze business contracts for risks, unfavorable terms, and missing clauses. Get a plain-English summary of what you're signing.
AI Coding Toolkit — Master Every AI Coding Assistant
> The complete methodology for 10X productivity with AI-assisted development. Covers Cursor, Windsurf, Cline, Aider, Claude Code, GitHub Copilot, and more — tool-agnostic principles that work everywhere.
seo-assistant
A client-facing SEO assistant grounded in Google's official SEO Starter Guide. Use this skill whenever a user mentions SEO, search rankings, Google visibility, meta descriptions, title tags, page titles, alt text, sitemaps, duplicate content, URL structure, or asks how to improve their website's presence in search results. Also trigger when a user shares a URL or webpage content and wants feedback, or asks for help writing any web content that needs to perform well in search. This skill covers auditing, content writing, and answering SEO questions — use it proactively even if the user only hints at wanting more website traffic or better Google rankings.
anime-assistant
二次元创作全能助手 - 专注于动漫、插画、角色设计、漫画创作、动画制作等二次元内容创作
accounting-assistant
Buchhaltungs-Automatisierung mit EÜR-Erstellung, DATEV-Export, PDF-Beleganalyse und Steuer-Vorbereitung. Ideal für Freelancer und KMU.
rag-knowledge-assistant
基于向量数据库的 RAG(检索增强生成) 知识库助手。支持语义检索、多格式文档 (PDF/Word/Excel/Markdown) 处理、智能问答。使用 Chroma 向量库 + BGE-M3 Embedding 模型。适用于从 knowledge 目录快速检索信息、回答基于文档的问题。触发词:"从知识库查"、"检索文档"、"RAG 查询"、"向量搜索"、"语义检索"等。
icd10-cpt-coding-assistant
Automatically recommend ICD-10 diagnosis codes and CPT procedure codes from clinical notes. Trigger when: user provides clinical notes, patient encounter summaries, discharge summaries, or asks for medical coding assistance. Use for healthcare providers, medical coders, and billing professionals who need accurate code recommendations.
amber-voice-assistant
AI phone assistant and virtual receptionist for OpenClaw. Answers inbound phone calls, screens callers, makes outbound phone calls, and books appointments — all over Twilio + OpenAI Realtime voice. Full telephone workflow: phone call screening, live call transcripts, CRM contact memory, calendar integration. Ideal for anyone who wants an AI to answer their phone, handle call screening, or make phone calls autonomously. Includes interactive setup wizard, live call dashboard, and human-in-the-loop escalation. Also ships as a Claude Desktop MCP plugin — dial phone numbers, check call history, query CRM, and manage calendar directly from Claude Desktop.
feishu-voice-assistant
Sends voice messages (audio) to Feishu chats using Duby TTS.
openclaw-livestock-assistant
AI-powered livestock management assistant for Spanish-speaking farmers. Provides expert advice on herd management, animal health, reproduction, genetics, nutrition, and breed selection for bovine, ovine, caprine, porcine, equine, and poultry. Includes a Node.js REST API for persistent herd record-keeping (animal registration, health records, reproduction events). Use when the user asks about livestock, cattle, ganadería, herd management, animal health, veterinary advice, breeds, reproduction, nutrition, forage, or any livestock-related topic.
manage-teams
Create, join, and manage teams on OpenAnt. Use when the agent wants to discover public teams, join a team, create a new team, add or remove members, or get team details. Covers "find teams", "join a team", "create team", "team members", "manage my team".
homeassistant-skill
Control Home Assistant devices and automations via REST API. 25 entity domains including lights, climate, locks, presence, weather, calendars, notifications, scripts, and more. Use when the user asks about their smart home, devices, or automations.