AgentSkillsCN

Microsoft 365 Integration

Microsoft 365 集成

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 ms365_cli.py login

# Check authentication status
python3 ms365_cli.py status

# List cached accounts
python3 ms365_cli.py accounts

# Get current user info
python3 ms365_cli.py user

Note: When running from Clawdbot, use the full path to the script in your skills directory (e.g., python3 /root/clawd/skills/ms365/ms365_cli.py or adjust to your installation path).

Email (Outlook)

bash
# List recent emails
python3 ms365_cli.py mail list [--top N]

# Read specific email
python3 ms365_cli.py mail read MESSAGE_ID

# Send email
python3 ms365_cli.py mail send --to "recipient@example.com" --subject "Subject" --body "Message body"

Calendar

bash
# List upcoming events
python3 ms365_cli.py calendar list [--top N]

# Create event
python3 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 ms365_cli.py files list

# List files in folder
python3 ms365_cli.py files list --path "Documents"

To Do Tasks

bash
# List task lists
python3 ms365_cli.py tasks lists

# Get tasks from a list
python3 ms365_cli.py tasks get LIST_ID

# Create task
python3 ms365_cli.py tasks create LIST_ID --title "Task title" [--due "2026-01-20"]

Contacts

bash
# List contacts
python3 ms365_cli.py contacts list [--top N]

# Search contacts
python3 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.