Agent skill · writing content · sundial-org
outlook
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.
Why this skill is useful
Adds multiple executable scripts for managing Outlook emails and calendar events via Microsoft Graph API that aren't commonly known.
What it needs
Requires azure-cli, jq installed locally. Requires microsoft account access. About 4k tokens when loaded. Last updated 2026-03-07. 639 stars on the source repository.
What this skill does
Outlook Skill Access Outlook/Hotmail email and calendar via Microsoft Graph API using OAuth2. Quick Setup (Automated) The setup script will: 1. Log you into Azure (device code flow) 2. Create an App Registration automatically 3. Configure API permissions (Mail.ReadWrite, Mail.Send, Calendars.ReadWrite) 4. Guide you through authorization 5. Save credentials to ~/.outlook-mcp/ Manual Setup See references/setup.md for step-by-step manual configuration via Azure Portal. Usage Token Management Reading Emails Managing Emails Sending Emails Folders & Stats Calendar Viewing Events Creating Events Managing Events Date format: YYYY-MM-DDTHH:MM (e.g., 2026-01-26T10:00) Example Output Token Refresh Access tokens expire after ~1 hour. Refresh with: Files ~/.outlook-mcp/config.json - Client ID and secret ~/.outlook-mcp/credentials.json - OAuth tokens (access + refresh) Permissions Mail.ReadWrite - Read and modify emails Mail.Send - Send emails Calendars.ReadWrite - Read and modify calendar events offlineaccess - Refresh tokens (stay logged in) User.Read - Basic profile info Notes Email IDs: The id field shows the last 20 characters of the full message ID. Use this ID with commands like read, mark-read, delete, etc. Numbered results: Emails are numbered (n: 1, 2, 3...) for easy reference in conversation. Text extraction: HTML email bodies are automatically converted to plain text. Token expiry: Access tokens expire after ~1 hour. Run outlook-token.sh refresh when you see auth errors. Recent emails: Commands like read, mark-read, etc. search the 100 most recent emails for the ID. Troubleshooting "Token expired" → Run outlook-token.sh refresh "Invalid grant" → Token invalid, re-run setup: outlook-setup.sh "Insufficient privileges" → Check app permissions in Azure Portal → API Permissions "Message not found" → The email may be older than 100 messages. Use search to find it first. "Folder not found" → Use exact folder name. Run folders to see available folders. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills sundial-org/outlook