outlook
Skill1 starsChanged 30 days agoApache-2.0View on GitHub
Interact with Microsoft Outlook (Office 365) — read inbox, search mail, view calendar events, send email, and produce aggregated inbox items for the monday dispatcher. Uses the live Outlook browser session via MSAL token extraction from localStorage. Triggers on requests involving Outlook, email, inbox, calendar, meetings, sending mail, checking unread messages, or monday inbox aggregation that includes Outlook data.
We split this skill into the rules it gives an agent
2 rules. 0 are common, 0 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 92
Re-run without
--dry-run: only after that confirmation. - Very specific: line 106
Prefer naming explicit ids — outlook accept <id1> <id2> — over --all whenever only some pending events should get the same response.
“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Outlook
Direct API access to Microsoft Outlook. The CLI extracts an MSAL token from an open
outlook.office.com browser tab when available, and falls back to a saved token
file so commands keep working without a tab open. If a command reports it cannot
get a token, open Outlook in the browser and retry.
Full flag-by-flag reference: references/COMMANDS.md. Implementation notes: references/internals.md.
Quick start
# Inbox
outlook mail --limit 10
outlook mail --unread
outlook mail --search "quarterly report"
outlook view <message-id|conversation-id>
outlook thread <message-id|conversation-id> # who is on this chain
# Calendar (times are shown in the mailbox timezone, named in the header)
outlook calendar
outlook calendar --date 7d
outlook calendar --date 7d --json # ids for the commands below
# One event in full: invite body, Teams/Webex join info, recurrence
outlook event <event-id>
outlook event <event-id> --json
# Respond — always dry-run first, see "Responding to invitations" below
outlook decline <event-id> --dry-run
outlook decline <event-id> --comment "Conflict"
# Send mail
outlook send --to user@example.com --subject "Hello" --body "Message body"
# Monday aggregation (unread mail + upcoming calendar)
outlook monday --limit 20Who is on a thread
An Outlook web URL — …/mail/inbox/id/<id> — carries a conversation id, not a
message id. view and thread both accept either, so paste whichever you have.
outlook thread lists every message oldest-first with its own sender, To and
Cc. Recipients are per message, never merged — in a forwarded or re-Cc'd chain
they genuinely differ, which is usually the answer you want.
outlook thread <conversation-id> # previews
outlook thread <message-id> --full # complete bodies
outlook thread <conversation-id> --json # from/to/cc/bcc, ts, ids per messageGetting meeting join details
outlook calendar lists events and prints each event id. Feed that id to
outlook event for the whole invite plus a structured Join info block (join
URL, meeting ID, passcode, video tenant key and video ID, dial-in number and phone
conference ID — whichever the invite actually contains).
outlook calendar --date 7d # copy the id: line of the event
outlook event <event-id> # human-readable
outlook event <event-id> --json # .conferencing has the parsed fields
outlook event <occurrence-id> --series # the series, not this occurrenceoutlook view is for mail only; given an event id it says so and points here.
Responding to invitations
accept, decline and tentative email the organizer, and --all and
--series act on events you did not name individually. Always dry-run first:
- Dry-run. Re-run your exact command with
--dry-runadded. Nothing is sent. - Confirm the printed list is what you intended — for
--series, check the resolved series-master id; for--all, check every event listed. - Re-run without
--dry-runonly after that confirmation. - Verify with
outlook calendar --date 7d --limit 100 --jsonthatresponsechanged for the intended events only.
# Whole recurring series, from any occurrence id
outlook decline <occurrence-id> --series --dry-run
outlook decline <occurrence-id> --series
# Everything still unanswered in a window
outlook tentative --all --date 7d --dry-run
outlook tentative --all --date 7dPrefer naming explicit ids — outlook accept <id1> <id2> — over --all whenever
only some pending events should get the same response.
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- vellum-ai/vellum-assistant★ 1.5ksame name
- sigcli/sigcli★ 293same name
- refly-ai/refly-skills★ 203same name
- anasahmed07/Outlook-Classic-MCP★ 38same name
- dbhq-uk/outlook-graph-skill★ 2same name
- dbhq-uk/outlook-skill★ 2same name
- foxl-ai/skills★ 0same name
- hsigstad/research-kit★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository71 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- adbSkill
- aem-edge-functionsSkill
- aemSkill
- ai-writing-detectorSkill
- apple-musicSkill
- awsSkill
- bbSkill
- bluebubblesSkill
- clickhouse-cloudSkill
- cloudflareSkill
- concurSkill
- cosmosSkill
- da-liveSkill
- decide-quicklySkill
- elevenlabsSkill
- eslintSkill
- fastlySkill
- fireflySkill
- fluffyjawsSkill
- garminSkill
- gcloudSkill
- githubSkill
- gmailSkill
- icloudSkill
- immobilienscout24Skill
- interview-meSkill
- jiraSkill
- linkedinSkill
- llm-wikiSkill
- loose-endsSkill
- metaculusSkill
- mixtapeSkill
- mondaySkill
- navanSkill
- oryxSkill
- pandocSkill
- pdfSkill
- pm-prdSkill
- pptx2pdfSkill
- pptxSkill
- presentationsSkill
- printfulSkill
- remotion-clipperSkill
- replicateSkill
- reviewSkill
- save-the-catSkill
- searchSkill
- secret-sauceSkill
- seoSkill
- servicenowSkill
- sessionizeSkill
- sharepointSkill
- signalSkill
- slackSkill
- slicc-demoSkill
- speckSkill
- stravaSkill
- strudel-musicSkill
- sunoSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

