Production-ready OpenClaw skill for Microsoft 365 task operations using Microsoft Graph API (Microsoft To Do).
By Abdelkrim BOUJRAF / ALT-F1 SRL, Brussels π§πͺ π²π¦
- Features
- Quick Start
- Setup
- Commands
- Project Structure
- Operational Convention
- Security
- Troubleshooting
- ClawHub
- License
- Author
- Contributing
- CRUD tasks β Create, read, update, and delete Microsoft To Do tasks
- List management β Browse available task lists
- Device Code auth β Delegated authentication (first login interactive, then cached)
- Deterministic naming β Task naming helper for consistent conventions
- Operational playbook β Lightweight guidelines for consistent usage
# 1. Clone
git clone https://github.com/ALT-F1-OpenClaw/openclaw-skill-m365-task-manager.git
cd openclaw-skill-m365-task-manager
# 2. Install
npm install
# 3. Configure
# Set environment variables (see Setup section)
# 4. Use
npm run todo -- info
npm run todo -- lists
npm run todo -- tasks:create --list-name "Tasks" --title "My first task" --due 2026-03-15- Node.js 18+
- Microsoft Entra app registration configured as public client
- Microsoft Graph delegated permissions:
Tasks.ReadWriteUser.Readoffline_access
Set environment variables:
M365_TENANT_ID=your-tenant-id-or-common
M365_CLIENT_ID=your-public-client-app-id
# optional override
M365_TOKEN_CACHE_PATH=/home/user/.cache/openclaw/m365-task-manager-token.jsonFirst execution opens Device Code flow. Sign in once, token is cached for reuse.
# Connection + profile
npm run todo -- info
# Lists
npm run todo -- lists
# Read tasks
npm run todo -- tasks:list --list-name "Tasks"
npm run todo -- tasks:list --list-id <LIST_ID>
# Create task
npm run todo -- tasks:create --list-name "Tasks" --title "Task title" [--body "Notes"] [--due YYYY-MM-DD]
# Update task
npm run todo -- tasks:update --list-name "Tasks" --task-id <TASK_ID> [--title "..."] [--body "..."] [--status notStarted|inProgress|completed|waitingOnOthers|deferred] [--due YYYY-MM-DD]
# Delete task
npm run todo -- tasks:delete --list-name "Tasks" --task-id <TASK_ID>See SKILL.md for full command reference.
skills/m365-task-manager/
βββ SKILL.md
βββ references/playbook.md
βββ scripts/
βββ m365-todo.mjs
βββ format-task-name.sh
Recommended task title pattern:
<project>-<date>-<person>-<action>
Examples:
finance-2026-03-01-abdelkrim-review-monthly-budgetops-2026-03-05-morad-prepare-quarterly-planning-notes
- Device Code delegated auth (no client secrets stored)
- Token cached locally with configurable path
- Delegated permissions scoped to
Tasks.ReadWriteonly - No secrets or tokens printed to stdout
Usually app or tenant mismatch. Verify M365_TENANT_ID and M365_CLIENT_ID point to the correct app.
Your service env is using another client ID. Update env, restart service, and retry.
Confirm delegated permissions are granted and admin consent applied.
Published as: openclaw-skill-m365-task-manager-by-altf1be
clawhub install openclaw-skill-m365-task-manager-by-altf1beMIT β see LICENSE
Abdelkrim BOUJRAF β ALT-F1 SRL, Brussels π§πͺ π²π¦
- GitHub: @abdelkrim
- X: @altf1be
Contributions welcome! Please open an issue or PR.