officeclawConnect to personal Microsoft accounts via Microsoft Graph API to manage email, calendar events, and tasks. Use this skill when the user needs to read/write...
Install via ClawdBot CLI:
clawdbot install danielithomas/officeclawConnect your OpenClaw agent to personal Microsoft accounts (Outlook.com, Hotmail, Live) to manage email, calendar, and tasks through the Microsoft Graph API.
Install from PyPI:
pip install officeclaw
Or with uv:
uv pip install officeclaw
Verify installation:
officeclaw --version
Quick start: OfficeClaw ships with a default app registration — just run officeclaw auth login and go. No Azure setup needed.
>
Advanced: Want full control? Create your own Azure App Registration (free, ~5 minutes) and setOFFICECLAW_CLIENT_IDin your.env. See Microsoft's guide or follow the steps below.
officeclaw (or anything you like)OFFICECLAW_CLIENT_IDRead-only (safest):
Mail.Read, Calendars.Read, Tasks.ReadWrite*Full access (all features including send/delete):
Mail.Read, Mail.ReadWrite, Mail.SendCalendars.Read, Calendars.ReadWriteTasks.ReadWrite\Tasks.ReadWrite is the minimum available scope for Microsoft To Do — there is no read-only option.*
Least privilege: Only grant the permissions you actually need. If you only want to read emails and calendar, skipMail.ReadWrite,Mail.Send, andCalendars.ReadWrite. OfficeClaw will gracefully error on commands that require missing permissions.
Create a .env file in your skill directory:
OFFICECLAW_CLIENT_ID=your-client-id-here
# Capability gates (disabled by default for safety)
# OFFICECLAW_ENABLE_SEND=true # Allow sending/replying/forwarding emails
# OFFICECLAW_ENABLE_DELETE=true # Allow deleting emails, events, and tasks
No client secret needed for device code flow. Write operations (send, delete) are disabled by default — enable only what you need.
officeclaw auth login
This displays a URL and code. Open the URL in a browser, enter the code, and sign in with your Microsoft account. Tokens are stored securely in ~/.officeclaw/token_cache.json (permissions 600).
Activate this skill when the user needs to:
officeclaw auth login # Authenticate via device code flow
officeclaw auth status # Check authentication status
officeclaw auth logout # Clear stored tokens
officeclaw mail list --limit 10 # List recent messages
officeclaw mail list --unread # List unread messages only
officeclaw mail get <message-id> # Get specific message
officeclaw mail send --to user@example.com --subject "Hello" --body "Message text"
officeclaw mail send --to user@example.com --subject "Report" --body "Attached" --attachment report.pdf
officeclaw mail search --query "from:boss@example.com"
officeclaw mail archive <message-id> # Archive a message
officeclaw mail mark-read <message-id> # Mark as read
officeclaw --json mail list # JSON output for parsing
officeclaw calendar list --start 2026-02-01 --end 2026-02-28
officeclaw calendar create \
--subject "Team Meeting" \
--start "2026-02-15T10:00:00" \
--end "2026-02-15T11:00:00" \
--location "Conference Room"
officeclaw calendar get <event-id>
officeclaw calendar update <event-id> --subject "Updated Meeting"
officeclaw calendar delete <event-id>
officeclaw --json calendar list --start 2026-02-01 --end 2026-02-28
officeclaw tasks list-lists # List task lists
officeclaw tasks list --list-id <list-id> # List tasks
officeclaw tasks list --list-id <list-id> --status active # Active tasks only
officeclaw tasks create --list-id <list-id> --title "Complete report" --due-date "2026-02-20"
officeclaw tasks complete --list-id <list-id> --task-id <task-id>
officeclaw tasks reopen --list-id <list-id> --task-id <task-id>
Use --json flag for structured JSON output:
officeclaw --json mail list
Returns:
{
"status": "success",
"data": [
{
"id": "AAMkADEzN...",
"subject": "Meeting Notes",
"from": {"emailAddress": {"address": "sender@example.com"}},
"receivedDateTime": "2026-02-12T10:30:00Z",
"isRead": false
}
]
}
Common errors and solutions:
| Error | Cause | Solution |
|-------|-------|----------|
| AuthenticationError | Not logged in or token expired | Run officeclaw auth login |
| AccessDenied | Missing permissions | Re-authenticate with required scopes |
| ResourceNotFound | Invalid ID | Verify the ID exists |
| RateLimitError | Too many API calls | Wait 60 seconds and retry |
When using this skill:
--json flagOFFICECLAW_ENABLE_SEND and OFFICECLAW_ENABLE_DELETE environment variables. This prevents accidental or unauthorised write actions.~/.officeclaw/token_cache.json with 600 file permissionsIf the skill isn't working:
officeclaw auth statusofficeclaw auth logingraph.microsoft.com is reachableOFFICECLAW_CLIENT_ID is set in .envGenerated Mar 1, 2026
An AI assistant that helps individuals manage their personal Microsoft accounts by reading and summarizing emails, scheduling appointments based on email content, and tracking to-do lists. It automates routine tasks like marking emails as read or creating calendar events from meeting requests, saving time for busy professionals.
A tool for small business owners to handle customer inquiries via Outlook, automatically categorize emails, send follow-up responses, and schedule client meetings. It integrates with Microsoft Graph to streamline communication and reduce manual effort in managing business correspondence and appointments.
A collaboration aid for remote teams that syncs calendar events and tasks across members using Microsoft accounts, helping coordinate meetings and track project milestones. It can send reminders for upcoming events and update task statuses to keep everyone aligned without constant manual updates.
An application for event planners that uses Outlook calendar to schedule and manage events, send email invitations, and track RSVPs. It automates reminders for upcoming events and updates tasks related to event logistics, ensuring smooth execution and timely follow-ups.
A tool for students to manage academic deadlines by integrating with Microsoft To Do for task lists and Outlook calendar for class schedules. It helps organize assignments, set reminders for due dates, and send email notifications for group projects, improving time management and productivity.
Offer a free basic version with limited email and calendar management features, and charge for premium tiers that include advanced capabilities like bulk email sending, detailed analytics, and priority support. Revenue is generated through monthly or annual subscriptions from individual users and small businesses.
License the skill to enterprises for internal use, integrating it into their existing productivity tools to enhance employee efficiency. Revenue comes from one-time licensing fees or annual contracts, with additional charges for customization and ongoing maintenance services tailored to business needs.
Provide the skill for free to users while generating revenue through affiliate partnerships with productivity tools or by offering anonymized usage insights to third parties for market research. This model leverages user adoption to drive indirect monetization without direct charges to end-users.
💬 Integration Tip
Ensure proper OAuth setup and environment configuration for secure access to Microsoft Graph API, and enable write operations only after verifying user permissions to prevent unauthorized actions.
Interact with Google Calendar via the Google Calendar API – list upcoming events, create new events, update or delete them. Use this skill when you need programmatic access to your calendar from OpenClaw.
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.
Google Calendar via gcalcli: today-only agenda by default, bounded meaning-first lookup via agenda scans, and fast create/delete with verification--optimized for low tool calls and minimal output.
This skill should be used when interacting with Apple Calendar on macOS. Use it for listing calendars, viewing events, creating/updating/deleting calendar events, and checking availability/free-busy times. Triggers on requests like "check my calendar", "schedule a meeting", "what's on my schedule", "am I free tomorrow", or any calendar-related operations.
Access and manage Google Calendar events with gogcli for cross-calendar agendas, keyword search, and filtered outputs avoiding unwanted calendars like holidays.
Daily morning rollup of important emails and calendar events at 8am with AI-generated summaries