outlook-email
Triage Outlook mail, extract tasks, clean up subscriptions, and draft responses. Use when the user asks to inspect an Outlook inbox or thread, summarize open actions and deadlines, clean up newsletters, draft replies or forwards, or organize mailbox follow-up work before any send or cleanup action.
Best use case
outlook-email is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Triage Outlook mail, extract tasks, clean up subscriptions, and draft responses. Use when the user asks to inspect an Outlook inbox or thread, summarize open actions and deadlines, clean up newsletters, draft replies or forwards, or organize mailbox follow-up work before any send or cleanup action.
Teams using outlook-email 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/outlook-email/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How outlook-email Compares
| Feature / Agent | outlook-email | 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?
Triage Outlook mail, extract tasks, clean up subscriptions, and draft responses. Use when the user asks to inspect an Outlook inbox or thread, summarize open actions and deadlines, clean up newsletters, draft replies or forwards, or organize mailbox follow-up work before any send or cleanup action.
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
SKILL.md Source
# Outlook Email ## Overview Use this skill to turn Outlook inbox and thread context into clear summaries, action lists, and ready-to-review drafts. Prefer Outlook-native list and search flows to build a shortlist, expand only the messages that matter, and treat mailbox mutations as separate explicit actions. Outbound Outlook email writes are plain-text only. When drafting, replying, scheduling, or sending, do not plan around HTML bodies, rich formatting, tracking pixels, or formatting-dependent layouts. If the user asks for richer formatting, say briefly that Outlook email write actions here only support plain text, then translate the request into the clearest plain-text equivalent. ## Preferred Deliverables - Thread briefs that capture the latest status, decisions, deadlines, and next actions. - Inbox triage summaries that group messages by urgency, follow-up state, or owner. - Draft replies or forwards that are ready to review before sending. - Task and commitment summaries that identify owner, due date, blocker, and likely next step. - Subscription-cleanup plans that separate unsubscribe, archive, and mailbox-organization actions. ## Workflow Skills | Workflow | Skill | | --- | --- | | Inbox triage, urgency ranking, and reply-needed detection | [../outlook-email-inbox-triage/SKILL.md](../outlook-email-inbox-triage/SKILL.md) | | Reply drafting, reply-all decisions, and send-vs-draft handling | [../outlook-email-reply-drafting/SKILL.md](../outlook-email-reply-drafting/SKILL.md) | | Action-item, deadline, and commitment extraction | [../outlook-email-task-extraction/SKILL.md](../outlook-email-task-extraction/SKILL.md) | | Newsletter and subscription cleanup | [../outlook-email-subscription-cleanup/SKILL.md](../outlook-email-subscription-cleanup/SKILL.md) | ## Outlook Reading Pattern 1. Prefer `list_messages` or `search_messages` to build the first-pass shortlist. These calls already return rich enough fields for most inbox navigation and thread-selection tasks. 2. Use `fetch_message` or `fetch_messages_batch` only when the user explicitly needs fuller body content, longer context, or tighter evidence for task extraction. 3. Use `list_attachments` and `fetch_attachment` when attachment metadata or file contents change the answer. 4. Use draft-first actions for write preparation: `create_reply_draft`, `create_forward_draft`, or `draft_email`. 5. Use mailbox-organization actions only with clear user intent: `mark_email_read_state`, `move_email`, `set_message_categories`, `create_category`, `create_mail_folder`. 6. For newsletter cleanup, inspect `get_unsubscribe_info` before assuming a safe unsubscribe path. `unsubscribe_via_mailto` only covers `mailto:` targets. ## Workflow 1. Read the mailbox or thread before drafting. Capture the subject, participants, latest message, action items, deadlines, and any attachments or links that matter. 2. Summarize first when the thread is long or when the user needs help deciding how to respond. 3. Draft replies with thread continuity. Acknowledge the latest message, preserve the user’s objective, and keep the response grounded in the actual thread. 4. If the user asks for a reply but does not explicitly ask to send it, default to a draft. 5. If the user asks you to send, first check whether the reply depends on any unstated facts, preferences, scheduling choices, or bundling decisions. If it does, stop and ask a concise confirmation question or present a draft plus the exact facts that still need confirmation before sending. 6. Do not invent meeting acceptance, availability, commitments, status updates, ownership, or cross-thread summaries unless the user explicitly provided them or the thread itself establishes them. 7. If you create a draft and the user later approves sending that draft, prefer sending or updating the existing draft artifact instead of recreating the same reply from scratch. 8. Avoid orphaned drafts. If you must change send paths after drafting, reuse the draft when possible or explicitly tell the user that a stale draft remains and what you did about it. 9. Separate mailbox analysis from action. Be explicit about whether you are summarizing, drafting, proposing a send, or suggesting triage. 10. Only send, move, archive, delete, or otherwise change Outlook mailbox state when the user has clearly asked for that action. 11. For category-based triage or verification, prefer `list_messages` or mailbox-wide search/list results over `fetch_message`. Treat `fetch_message` category readback as unreliable if it returns `categories: null` after a successful category write. 12. When forwarding via the Outlook connector, pass recipients as structured email-address objects rather than raw strings. If a forward call fails schema validation, inspect the expected recipient shape before retrying. 13. Before forwarding, confirm that the source message match is unique enough for the requested description. If the user refers to "that email" or describes a message indirectly, verify there is exactly one plausible mailbox match or stop and ask. 14. Before forwarding to a named person, confirm that the recipient identity is unique enough in mailbox context. If multiple plausible addresses exist for that person, stop and ask which one to use. 15. If the forward target and source message were inferred from search rather than directly specified by message ID or exact address, say what you matched before sending. ## What Stays In The Base Skill Keep these workflows in the base Outlook Email skill instead of splitting them further for now: - mailbox search and thread summarization - forwarding when it is part of a broader mailbox task - attachment extraction that supports triage or task extraction - automated follow-up planning after a thread is understood - commitment tracking across several related messages - handoffs to Outlook Calendar, SharePoint, or other Microsoft surfaces when email turns into scheduling or document work ## Write Safety - Preserve recipients, subject lines, dates, links, and quoted facts from the source thread unless the user asks to change them. - Treat send, delete, move, and broad mailbox cleanup actions as explicit operations that require clear user intent. - If multiple threads or similarly named mailboxes are in scope, identify the intended thread before drafting or acting. - If a reply depends on missing facts, provide the draft plus a short list of what still needs confirmation instead of sending. - Treat proposed times, acceptance of invitations, ETA promises, status claims, and references to other threads as high-risk facts that require explicit confirmation when they are not already established in the mailbox context. - When a user says "send a reply," that authorizes the act of sending but not unstated content choices. Confirm assumptions that materially change the meaning of the reply. - Treat the existence of a saved draft as part of mailbox state. Do not silently leave behind duplicate or superseded drafts when the user believes you sent the prepared reply. - Treat connector schema requirements as part of write safety. For forwards, prefer the documented recipient object shape up front instead of relying on a failing trial call. - Treat plain-text-only email bodies as part of connector safety. Do not promise HTML formatting, hidden tracking content, or markup-dependent rendering for Outlook email write actions. If the user asked for formatting that cannot be preserved in plain text, say that limitation explicitly before showing the plain-text version. - Treat source-message selection and recipient identity as write-safety checks for forwards. Do not forward based on a fuzzy match when multiple plausible threads or recipients remain in scope. ## Output Conventions - Lead summaries with the latest status, then list decisions, open questions, and action items. - Keep triage buckets explicit, such as urgent, waiting, needs reply, and FYI, when that helps the user scan faster. - Draft replies should be concise, plain text, ready to paste or send, and clearly separated from private notes. - When multiple messages matter, reference the sender and timestamp of the message that drives the next action. - If a draft requires follow-up details, list them immediately after the draft. - Before sending, explicitly note any assumptions you checked and any missing facts you asked the user to confirm. - If you are sending a previously created draft, say so explicitly. If you are not sending that draft, explain why and what happened to it. - Before forwarding an inferred message, state the matched source thread and matched recipient in one short line so the user can see what will be sent where. ## Example Requests - "Summarize the latest Outlook thread with the customer and tell me what I still owe them." - "Draft a reply that confirms the plan and asks for the final approval date." - "Go through my unread Outlook inbox and group messages into urgent, waiting, and low priority." - "Prepare a short forward that gives leadership the current status from this email thread." - "Before you send anything, tell me what assumptions need my confirmation." - "I drafted that earlier; now send the draft I approved." ## Light Fallback If Outlook mailbox data is missing or incomplete, say that Microsoft Outlook access may be unavailable or scoped to the wrong mailbox or thread, then ask the user to reconnect or clarify the target. If category writes succeed but direct message fetches return `categories: null`, say that the Outlook connector appears to have a category readback inconsistency. Verify categories from `list_messages` or broader mailbox scans instead of single-message fetches, and note the limitation clearly to the user.
Related Skills
Email sending integration guidance — Resend (native Vercel Marketplace) with React Email templates. Covers API setup, transactional emails, domain verification, and template patterns. Use when sending emails from a Vercel-deployed application.
outlook-email-task-extraction
Extract action items, deadlines, commitments, and owners from Outlook email threads and mailbox searches. Use when the user wants a task list from one thread, several related messages, or a mailbox slice, including who owes what and when.
outlook-email-subscription-cleanup
Clean up Outlook newsletters and recurring subscription email safely. Use when the user wants to unsubscribe, separate newsletters from human mail, move recurring senders into folders, or organize low-signal subscription traffic without losing important messages.
outlook-email-reply-drafting
Draft Outlook email replies safely from connected mailbox context. Use when the user wants to reply to a thread, decide whether to reply-all, prepare a draft before sending, or turn the latest Outlook message into a polished response.
outlook-email-inbox-triage
Triage an Outlook inbox into actionable buckets such as urgent, needs reply soon, waiting, and FYI using connected Outlook data. Use when the user asks to triage the inbox, rank what needs attention, find what still needs a reply, or separate important mail from noise.
outlook-calendar
Handle Outlook Calendar workflows. Use when the user asks for schedule understanding, availability checks, meeting scheduling, intelligent rescheduling, meeting prep, reminder updates, RSVP responses, recurring maintenance, travel coordination, deadline planning, or safe create, update, reschedule, or cancel changes with timezone-aware event times and attendee validation.
outlook-calendar-meeting-prep
Build a practical meeting prep brief from an Outlook Calendar event and its nearby Microsoft context. Use when the user wants to prepare for an upcoming meeting, understand what to read beforehand, pull in linked notes or docs, or get a concise brief on what the meeting appears to require.
outlook-calendar-group-scheduler
Find and rank good meeting times for several people using Outlook Calendar data. Use when the user wants to schedule a meeting, compare candidate slots across attendees, find the best compromise time, or add a room/resource check after narrowing the attendee-compatible options.
outlook-calendar-free-up-time
Find ways to open up meaningful free time in Outlook Calendar. Use when the user wants to clear part of their schedule, make room for focus time, create a longer uninterrupted block, or see the smallest set of calendar changes that would give time back.
outlook-calendar-daily-brief
Build polished one-day Outlook Calendar briefs. Use when the user asks for today, tomorrow, or a specific date summary with an agenda, conflict flags, free windows, remaining-meeting readouts, or a calendar brief, and Outlook Calendar is available.
workflow
Vercel Workflow DevKit (WDK) expert guidance. Use when building durable workflows, long-running tasks, API routes or agents that need pause/resume, retries, step-based execution, or crash-safe orchestration with Vercel Workflow.
verification
Full-story verification — infers what the user is building, then verifies the complete flow end-to-end: browser → API → data → response. Triggers on dev server start and 'why isn't this working' signals.