M365 Planner
Manage Microsoft 365 Planner plans, buckets, and tasks via Microsoft Graph API. Use when creating, listing, updating, or deleting Planner resources. Supports... Skill: M365 Planner Owner: felox63 Summary: Manage Microsoft 365 Planner plans, buckets, and tasks via Microsoft Graph API. Use when creating, listing, updating, or deleting Planner resources. Supports... Tags: latest:1.2.3 Version history: v1.2.3 | 2026-04-18T13:08:24.799Z | user v1.2.3 is a major documentation update for international users. - Full documentation translated to English for worldwide ClawHub access -
Rank
62
Safety
84
Downloads
1.0k
Updated
Oct 11, 2026
Version
1.2.3
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 1K downloadsadoption · observed Oct 11, 2026
- Latest release
- 1.2.3release · observed Apr 18, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s171gk0y8ds0jr7dg5f05ap4p183pb80:m365-planner-v2- Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-felox63-m365-planner-v2/snapshot"
Run-check
$0.02 USD1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.
Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.
Documentation
CLAWHUB
105,596 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
--- name: m365-planner description: Manage Microsoft 365 Planner plans, buckets, and tasks via Microsoft Graph API. Use when creating, listing, updating, or deleting Planner resources. Supports group-based plan management, task assignment, progress tracking, and recurring tasks. Requires Azure AD app registration with Group.Read.All and Tasks.ReadWrite.All permissions. license: MIT version: 1.2.3 --- # M365 Planner Skill Manage Microsoft 365 Planner through Microsoft Graph API. ## What's New in v1.2.3 - 🌍 **English Documentation** – Complete translation for international ClawHub availability - 🔧 **Portability** – Env path now uses `os.homedir()` instead of hardcoded paths - 🧹 **Security Cleanup** – Full audit for sensitive data (no IDs, names, domains) - 📦 **ClawHub-ready** – Tarball created, node_modules excluded ## What's New in v1.2.2 - 🔧 **Portability** – Env path now uses `os.homedir()` instead of hardcoded `/home/claw/.openclaw/.env` - 🧹 **Security Cleanup** – Full audit for sensitive data (no IDs, names, domains) - 📦 **ClawHub-ready** – Tarball created, node_modules excluded ## What's New in v1.2.1 - ✅ **Generic Scripts** – No hardcoded Group-IDs or Plan names anymore - ✅ **Command-Line Parameters** – All scripts accept IDs as arguments - ✅ **List Plans Improved** – Shows all groups when no ID provided - ✅ **Flexible Cleanup** – Works with any plans/buckets - ✅ **ClawHub-ready** – No project-specific data included ## What's New in v1.1.0 - ✅ **Node.js Scripts** – Standalone scripts without `mgc` CLI - ✅ **If-Match Header Support** – Correct ETag handling for updates/deletes - ✅ **Group-Based API** – Direct access via M365 Group-ID - ✅ **Recurring Tasks** – Note about native Planner recurrence feature - ✅ **Cleanup Scripts** – Automated task cleanup ## Prerequisites 1. Azure AD App Registration (see Setup below) 2. Node.js v18+ with `@microsoft/microsoft-graph-client` and `axios` 3. M365 Group (not Security Group or Distribution List!) ## Quick Start ```bash # Test connection node scripts/test-connection.js # List all plans node scripts/list_plans.js # List plans for specific group node scripts/list_plans.js <group-id> # Create plan node scripts/create_plan.js "Project Name" <group-id> # Create task node scripts/create_task.js <plan-id> <bucket-id> "Task Title" # Delete completed tasks node scripts/cleanup_verlaengerungen.js <group-id> "<plan-name>" "<bucket-name>" ``` ## Setup: Azure AD App Registration ### Step 1: Create App Registration **Azure Portal:** 1. https://portal.azure.com → Azure Active Directory → App registrations 2. "New registration" 3. Name: `M365-Planner-Integration` 4. Supported account types: `Accounts in this organizational directory only` 5. Redirect URI: None (Client Credentials Flow) **Or via Azure CLI:** ```bash az login az ad app create --display-name "M365-Planner-Integration" --sign-in-audience "AzureADMyOrg" ``` Note the **Application (client) ID** from the output. ### Step 2: Add
_meta.json
{
"ownerId": "kn73k7k4tnef2q480xd4y7dnkx82nhzj",
"slug": "m365-planner-v2",
"version": "1.2.3",
"publishedAt": 1776517704799
}references/common-patterns.md
# Common Patterns for M365 Planner
## Pattern 1: Create Project Structure
Create a complete project with predefined buckets:
```bash
# 1. Create or get group
GROUP_ID=$(az ad group list --query "[?displayName=='Project Team'].id" -o tsv)
# 2. Create plan with buckets (using helper script)
./scripts/create_plan.sh "Website Redesign" "$GROUP_ID"
```
## Pattern 2: Bulk Task Import
Create multiple tasks from a list:
```bash
BUCKET_ID="your-bucket-id"
cat tasks.txt | while read -r TASK; do
mgc planner tasks create \
--title "$TASK" \
--bucket-id "$BUCKET_ID" \
--output none
echo "Created: $TASK"
done
```
## Pattern 3: Task Status Update
Update task progress:
```bash
TASK_ID="your-task-id"
# Mark as in progress (50%)
mgc planner tasks patch \
--planner-task-id "$TASK_ID" \
--percent-complete 50
# Mark as complete (100%)
mgc planner tasks patch \
--planner-task-id "$TASK_ID" \
--percent-complete 100
```
## Pattern 4: Weekly Report
Generate a task summary:
```bash
PLAN_ID="your-plan-id"
# Get all tasks
echo "Weekly Planner Report"
echo "===================="
./scripts/list_tasks.sh "$PLAN_ID"
```
## Pattern 5: Assign Tasks to Team
Assign tasks to multiple users:
```bash
# Get user IDs
USER1=$(az ad user show --id "[email protected]" --query id -o tsv)
USER2=$(az ad user show --id "[email protected]" --query id -o tsv)
# Assign tasks
./scripts/assign_task.sh "task-id-1" "$USER1"
./scripts/assign_task.sh "task-id-2" "$USER2"
```
## JSON Output Processing
Many commands support `--output json` for automation:
```bash
# Extract specific fields
mgc planner plans list --output json | \
jq -r '.value[] | select(.title | contains("Project")) | .id'
# Save to file
mgc planner tasks list --planner-bucket-id "$BUCKET" --output json > tasks.json
```references/planner-api.md
# Microsoft Planner API Reference
## Core Resources
### plannerPlan
Represents a plan in Planner. Always associated with a Microsoft 365 group.
**Key Properties:**
- `id` – Unique identifier
- `title` – Plan name
- `owner` – Group ID that owns the plan
- `createdDateTime` – Creation timestamp
**Relationships:**
- `buckets` – Collection of buckets in the plan
- `tasks` – Collection of tasks in the plan
### plannerBucket
Container for tasks within a plan. Represents stages or categories.
**Key Properties:**
- `id` – Unique identifier
- `name` – Bucket name
- `planId` – Parent plan ID
- `orderHint` – Sorting hint
### plannerTask
Individual work item in Planner.
**Key Properties:**
- `id` – Unique identifier
- `title` – Task title
- `bucketId` – Parent bucket ID
- `planId` – Parent plan ID
- `percentComplete` – Progress (0, 50, or 100)
- `assignedTo` – User assignment
- `dueDateTime` – Due date
- `priority` – Priority (1=urgent, 3=normal, 5=low)
## API Endpoints
### Plans
```
GET /planner/plans
POST /planner/plans
GET /planner/plans/{id}
PATCH /planner/plans/{id}
DELETE /planner/plans/{id}
```
### Buckets
```
GET /planner/buckets
POST /planner/buckets
GET /planner/buckets/{id}
DELETE /planner/buckets/{id}
```
### Tasks
```
GET /planner/tasks
POST /planner/tasks
GET /planner/tasks/{id}
PATCH /planner/tasks/{id}
DELETE /planner/tasks/{id}
```
## Required Permissions
| Permission Type | Needed |
|----------------|--------|
| Delegated (work/school) | Group.ReadWrite.All, Tasks.ReadWrite |
| Application | Group.ReadWrite.All, Tasks.ReadWrite |
## Constraints
- Plans require M365 Groups (no standalone plans)
- Maximum 10 buckets per plan
- Maximum 200 active tasks per plan
- Plan names: max 64 charactersreferences/setup-guide.md
# Detailed Setup Guide
## Azure AD App Registration - Step by Step
### 1. Portal Method (Browser)
1. Go to https://portal.azure.com → Azure Active Directory → App registrations
2. Click "New registration"
3. Enter:
- Name: `M365-Planner-Integration`
- Supported account types: `Accounts in this organizational directory only`
- Redirect URI: None (for client credentials flow)
4. Click "Register"
5. Note the **Application (client) ID** and **Directory (tenant) ID**
### 2. Add API Permissions
1. Go to "API permissions" → "Add a permission"
2. Select "Microsoft Graph" → "Application permissions"
3. Add:
- `Group.ReadWrite.All`
- `Tasks.ReadWrite`
4. Click "Grant admin consent for [tenant]"
### 3. Create Client Secret
1. Go to "Certificates & secrets" → "Client secrets" → "New client secret"
2. Description: `OpenClaw Integration`
3. Expires: Select duration (24 months max)
4. Copy the **Value** (shown only once!)
### 4. Environment Configuration
Create `~/.openclaw/.env`:
```bash
# M365 Planner Integration
M365_CLIENT_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
M365_CLIENT_SECRET="your-secret-value"
M365_TENANT_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
```
### 5. Test Authentication
```bash
# Using mgc with client credentials
mgc login --strategy ClientSecret \
--client-id $M365_CLIENT_ID \
--client-secret $M365_CLIENT_SECRET \
--tenant-id $M365_TENANT_ID
# Verify access
mgc me get
```
## Finding Group IDs
Planner plans require M365 groups. Find your groups:
```bash
# List all groups
mgc groups list --output table --select displayName,id
# Or use Azure CLI
az ad group list --query "[].{Name:displayName, ID:id}" -o table
```
## Common Issues
### "Insufficient privileges"
Solution: Grant admin consent in Azure Portal → API permissions → Grant admin consent
### "Group not found"
Solution: Ensure you're using an M365 group, not a security group or distribution list
### "Invalid authentication token"
Solution: Token expired. Re-run `mgc login`AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/felox63/skills/m365-planner-v2",
"sourceUrl": "https://clawhub.ai/felox63/skills/m365-planner-v2",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T15:44:44.374Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-felox63-m365-planner-v2/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-felox63-m365-planner-v2/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T15:44:44.374Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1K downloads",
"href": "https://clawhub.ai/felox63/m365-planner-v2",
"sourceUrl": "https://clawhub.ai/felox63/m365-planner-v2",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T15:44:44.374Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.2.3",
"href": "https://clawhub.ai/felox63/m365-planner-v2",
"sourceUrl": "https://clawhub.ai/felox63/m365-planner-v2",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-04-18T13:08:24.799Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-felox63-m365-planner-v2/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-felox63-m365-planner-v2/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.2.3",
"description": "v1.2.3 is a major documentation update for international users. - Full documentation translated to English for worldwide ClawHub access - Retains all portability, security, and packaging improvements from 1.2.2 - No functional or API changes; all scripts and usage remain unchanged",
"href": "https://clawhub.ai/felox63/m365-planner-v2",
"sourceUrl": "https://clawhub.ai/felox63/m365-planner-v2",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-04-18T13:08:24.799Z",
"isPublic": true
}
]
}Record generated Oct 11, 2026.
