ms365
CautionCommunication
ms365
SKILL.md
# Microsoft 365 Integration
## Description
Access Microsoft 365 services - Email (Outlook), Calendar, OneDrive, To Do tasks, and Contacts via MS Graph API.
## Activation
Activated when user mentions: outlook, email, calendar, onedrive, microsoft, office 365, o365, ms365, my meetings, my emails, schedule meeting, send email, check calendar, to do, microsoft tasks
## Configuration
Authentication is cached after first login. No environment variables required for device code flow.
For headless/automated operation, set these environment variables:
- MS365_MCP_CLIENT_ID - Azure AD app client ID
- MS365_MCP_CLIENT_SECRET - Azure AD app secret
- MS365_MCP_TENANT_ID - Tenant ID (use "consumers" for personal accounts)
## Available Commands
### Authentication
```bash
# Login via device code (interactive)
python3 /root/clawd/skills/ms365/ms365_cli.py login
# Check authentication status
python3 /root/clawd/skills/ms365/ms365_cli.py status
# List cached accounts
python3 /root/clawd/skills/ms365/ms365_cli.py accounts
# Get current user info
python3 /root/clawd/skills/ms365/ms365_cli.py user
```
### Email (Outlook)
```bash
# List recent emails
python3 /root/clawd/skills/ms365/ms365_cli.py mail list [--top N]
# Read specific email
python3 /root/clawd/skills/ms365/ms365_cli.py mail read MESSAGE_ID
# Send email
python3 /root/clawd/skills/ms365/ms365_cli.py mail send --to "recipient@example.com" --subject "Subject" --body "Message body"
```
### Calendar
```bash
# List upcoming events
python3 /root/clawd/skills/ms365/ms365_cli.py calendar list [--top N]
# Create event
python3 /root/clawd/skills/ms365/ms365_cli.py calendar create --subject "Meeting" --start "2026-01-15T10:00:00" --end "2026-01-15T11:00:00" [--body "Description"] [--timezone "America/Chicago"]
```
### OneDrive Files
```bash
# List files in root
python3 /root/clawd/skills/ms365/ms365_cli.py files list
# List files in folder
python3 /root/clawd/skills/ms365/ms365_cli.py files list --path "Documents"
```
### To Do Tasks
```bash
# List task lists
python3 /root/clawd/skills/ms365/ms365_cli.py tasks lists
# Get tasks from a list
python3 /root/clawd/skills/ms365/ms365_cli.py tasks get LIST_ID
# Create task
python3 /root/clawd/skills/ms365/ms365_cli.py tasks create LIST_ID --title "Task title" [--due "2026-01-20"]
```
### Contacts
```bash
# List contacts
python3 /root/clawd/skills/ms365/ms365_cli.py contacts list [--top N]
# Search contacts
python3 /root/clawd/skills/ms365/ms365_cli.py contacts search "John"
```
## Usage Examples
User: "Check my outlook email"
Agent: Runs `mail list --top 10` command
User: "What meetings do I have today?"
Agent: Runs `calendar list` command
User: "Send an email to john@company.com about the project update"
Agent: Runs `mail send` with appropriate parameters
User: "Show my OneDrive files"
Agent: Runs `files list` command
User: "Add a task to review the budget"
Agent: Lists task lists first, then creates task in appropriate list
## Prompts
When helping with Microsoft 365:
- Use the ms365_cli.py script for all operations
- Check authentication status first if commands fail
- If not logged in, guide user through device code login
- For calendar events, use ISO 8601 datetime format
- Default timezone is America/Chicago
- When sending email, confirm recipient and content before sending
- For tasks, list available task lists first so user can choose
## Attribution
This skill uses the **ms-365-mcp-server** by Softeria.
- **NPM Package**: [@softeria/ms-365-mcp-server](https://www.npmjs.com/package/@softeria/ms-365-mcp-server)
- **GitHub**: https://github.com/Softeria/ms-365-mcp-server
- **License**: MIT
More in Communication
apple-mail-search
SafeFast & safe Apple Mail search with body content support.
beeper
SafeSearch and browse local Beeper chat history (threads, messages, full-text search).
camelcamelcamel-alerts
SafeMonitor CamelCamelCamel price drop alerts via RSS and send Telegram notifications when items go on.
discord-doctor
SafeQuick diagnosis and repair for Discord bot, Gateway, OAuth token, and legacy config issues.