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.

7 stars

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

$curl -o ~/.claude/skills/ms-outlook-teams-assistant/SKILL.md --create-dirs "https://raw.githubusercontent.com/Demerzels-lab/elsamultiskillagent/main/public/skills/abhinavjp/ms-outlook-teams-assistant/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ms-outlook-teams-assistant/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ms-outlook-teams-assistant Compares

Feature / Agentms-outlook-teams-assistantStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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.

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

outlook

7
from Demerzels-lab/elsamultiskillagent

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.

homeassistant-cli

7
from Demerzels-lab/elsamultiskillagent

Advanced Home Assistant control using the official hass-cli tool. Features auto-completion, event monitoring, history queries, and rich output formatting. Alternative to the curl-based homeassistant skill - choose this if you want a more interactive CLI experience with better discovery and formatting.

research-assistant

7
from Demerzels-lab/elsamultiskillagent

Organized research and knowledge management for agents.

ai-boss-assistant

7
from Demerzels-lab/elsamultiskillagent

Transform any AI into a professional executive assistant with battle-tested personas and workflows.

home-assistant

7
from Demerzels-lab/elsamultiskillagent

Control Home Assistant smart home devices, run automations, and receive webhook events. Use when controlling lights, switches, climate, scenes, scripts, or any HA entity. Supports bidirectional communication via REST API (outbound) and webhooks (inbound triggers from HA automations).

sql-assistant

7
from Demerzels-lab/elsamultiskillagent

Comprehensive SQL query assistant for database operations, optimization, and troubleshooting. Use when Codex needs to write, debug, optimize, or explain SQL queries; analyze database schemas; or help with SQL-related tasks including joins, subqueries, aggregations, and performance tuning. Supports MySQL, PostgreSQL, SQLite, and other SQL dialects.

prompt-learning-assistant

7
from Demerzels-lab/elsamultiskillagent

Systematic learning of 58+ AI prompt engineering techniques with real-world cases and personalized learning paths.

ai-assistant-prompt-template-examples-templafy-hel-90af51ce

7
from Demerzels-lab/elsamultiskillagent

You are an AI Assistant that helps users with text in Microsoft Office applications

personal-assistant

7
from Demerzels-lab/elsamultiskillagent

Personal daily briefing and productivity assistant.

teams-hack

7
from Demerzels-lab/elsamultiskillagent

Your agent reads Teams chats, posts to channels, searches everything.

recruiter-assistant

7
from Demerzels-lab/elsamultiskillagent

A comprehensive recruitment workflow assistant designed to automate resume screening, interview question.

etf-assistant

7
from Demerzels-lab/elsamultiskillagent

ETF投资助理 / ETF Investment Assistant - 查询行情、筛选ETF、对比分析、定投计算。支持沪深300、创业板、科创50、纳指等主流ETF。