Get the FREE Ultimate OpenClaw Setup Guide →
c

Microsoft 365 Integration

Scanned

@cvsloane

npx machina-cli add skill @cvsloane/ms365 --openclaw
Files (1)
SKILL.md
3.6 KB

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

# 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)

# 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

# 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

# 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

# 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

# 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.

Source

git clone https://clawhub.ai/cvsloane/ms365View on GitHub

Overview

Microsoft 365 Integration lets you access and manage Outlook email, Calendar, OneDrive files, To Do tasks, and Contacts via the Microsoft Graph API. Authentication is cached after first login, with device-code flow support for headless setups. Use the ms365_cli.py tool to perform all operations across Email, Calendar, OneDrive, To Do, and Contacts.

How This Skill Works

The skill uses the ms365_cli.py CLI to perform Graph API operations. After the initial device-code login, credentials are cached for subsequent calls. Commands are organized into Mail, Calendar, Files, Tasks, and Contacts, e.g., mail list, calendar list, files list, tasks create, and contacts search.

When to Use It

  • You want to list or read recent Outlook emails.
  • You need to view or create calendar events and manage scheduling.
  • You want to access or manage OneDrive files from your account.
  • You need to list, read, or create To Do tasks within a specific task list.
  • You want to find contacts or compose a message to someone in your organization.

Quick Start

  1. Step 1: Authenticate with device code login using python3 /root/clawd/skills/ms365/ms365_cli.py login
  2. Step 2: Check authentication status with python3 /root/clawd/skills/ms365/ms365_cli.py status
  3. Step 3: Run a sample command, e.g., python3 /root/clawd/skills/ms365/ms365_cli.py mail list --top 5

Best Practices

  • Always check authentication status before attempting an operation.
  • For headless setups, configure MS365_MCP_CLIENT_ID, MS365_MCP_CLIENT_SECRET, and MS365_MCP_TENANT_ID.
  • List task lists first before creating a new task to know where it belongs.
  • Use ISO 8601 for calendar times and default to America/Chicago if not specified.
  • When sending email, confirm recipient and content before executing the mail send command.

Example Use Cases

  • User asks to check email: agent runs mail list --top 10.
  • User asks for today’s meetings: agent runs calendar list.
  • User wants to send an email: agent runs mail send with recipient and subject/body.
  • User requests to view OneDrive files: agent runs files list.
  • User wants to add a task: agent lists task lists first, then creates a task in the chosen list.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers