A CLI skill to manage Microsoft To Do tasks via Microsoft Graph API. Supports listing, creating, completing, deleting, searching tasks and lists, viewing overdue/today/pending tasks, and exporting data.
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install ms-todo-sync或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install ms-todo-sync⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/ms-todo-sync/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: ms-todo-sync description: > A CLI skill to manage Microsoft To Do tasks via Microsoft Graph API. Supports listing, creating, completing, deleting, searching tasks and lists, viewing overdue/today/pending tasks, and exporting data. metadata: version: 1.0.2 author: [email protected] license: MIT License tags: [productivity, task-management, microsoft-todo, cli] category: productivity ---
A Microsoft To Do command-line client for managing tasks and lists via Microsoft Graph API.
pip install uv or see https://docs.astral.sh/uv/.
- Token cache: ~/.mstodo_token_cache.json (persists across sessions, auto-refreshed)
- Device flow cache: ~/.mstodo_device_flow.json (temporary)
Before using this skill for the first time, dependencies must be installed:
# Navigate to skill directory
cd <path-to-ms-todo-sync>
# Install dependencies using uv (recommended - creates isolated environment)
uv sync
# Alternative: Install dependencies with pip (uses global/active Python environment)
pip install -r requirements.txt
Dependencies:
msal (Microsoft Authentication Library) and requests
requirements.txt
uv creates an isolated virtual environment to avoid conflicts
After installation, verify the setup:
# Check if uv can find the script
uv run scripts/ms-todo-sync.py --help
# Expected: Command help text should be displayed
Troubleshooting:
uv: command not found, install uv: pip install uv
Python not found, install Python 3.9 or higher from https://python.org
uv sync or pip install -r requirements.txt
msal library
~/.mstodo_token_cache.json
All commands follow this pattern:
uv run scripts/ms-todo-sync.py [GLOBAL_OPTIONS] <command> [COMMAND_OPTIONS]
| Option | Description |
|--------|-------------|
| -v, --verbose | Show detailed information (IDs, dates, notes). Must be placed BEFORE the subcommand. |
| --debug | Enable debug mode to display API requests and responses. Useful for troubleshooting. Must be placed BEFORE the subcommand. |
> ⚠️ Common mistake: Global options MUST come before the subcommand.
> - ✅ uv run scripts/ms-todo-sync.py -v lists
> - ✅ uv run scripts/ms-todo-sync.py --debug add "Task"
> - ❌ uv run scripts/ms-todo-sync.py lists -v
---
Authentication uses a two-step device code flow designed for non-interactive/agent environments.
login get — Get verification code
uv run scripts/ms-todo-sync.py login get
Output example:
✓ Verification code generated
Please visit the following link to log in:
https://microsoft.com/devicelogin
Enter verification code: ABC123XYZ
Verify with command: ms-todo-sync.py login verify
Agent behavior: Present the URL and verification code to the user. Wait for the user to confirm they have completed the browser login before proceeding.
login verify — Complete login
uv run scripts/ms-todo-sync.py login verify
Output on success:
✓ Authentication successful! Login information saved, you will be logged in automatically next time.
Output on failure:
✗ Authentication failed: <error description>
> ⚠️ This command blocks until Microsoft's server confirms the user completed browser authentication. Do NOT run this until the user confirms they have completed the browser step.
Exit code: 0 on success, 1 on failure.
logout — Clear saved login
uv run scripts/ms-todo-sync.py logout
Only use when the user explicitly asks to switch accounts or clear login data. Under normal circumstances, the token is cached and login is automatic.
---
lists — List all task lists
uv run scripts/ms-todo-sync.py lists
uv run scripts/ms-todo-sync.py -v lists # with IDs and dates
Output example:
📋 Task Lists (3 total):
1. Tasks
2. Work
3. Shopping
create-list — Create a new list
uv run scripts/ms-todo-sync.py create-list "<name>"
| Argument | Required | Description |
|----------|----------|-------------|
| name | Yes | Name of the new list |
Output: ✓ List created:
delete-list — Delete a list
uv run scripts/ms-todo-sync.py delete-list "<name>" [-y]
| Argument/Option | Required | Description |
|-----------------|----------|-------------|
| name | Yes | Name of the list to delete |
| -y, --yes | No | Skip confirmation prompt |
> ⚠️ This is a destructive operation. Without -y, the command will prompt for confirmation. Consider asking the user before deleting important lists.
Output: ✓ List deleted:
---
add — Add a new task
uv run scripts/ms-todo-sync.py add "<title>" [options]
| Option | Required | Default | Description |
|--------|----------|---------|-------------|
| title | Yes | — | Task title (positional argument) |
| -l, --list | No | (default list) | Target list name. If not specified, uses your Microsoft To Do default list. |
| -p, --priority | No | normal | Priority: low, normal, high |
| -d, --due | No | — | Due date. Accepts days from now (3 or 3d) or date (2026-02-15). Note: Only date is supported, not time. |
| -r, --reminder | No | — | Reminder datetime. Formats: 3h (hours), 2d (days), 2026-02-15 14:30 (date+time with space, needs quotes), 2026-02-15T14:30:00 (ISO format), 2026-02-15 (date only, defaults to 09:00). |
| -R, --recurrence | No | — | Recurrence pattern. Formats: daily (every day), weekdays (Mon-Fri), weekly (every week), monthly (every month). With interval: daily:2 (every 2 days), weekly:3 (every 3 weeks), monthly:2 (every 2 months). Note: Automatically sets start date. |
| -D, --description | No | — | Task description/notes |
| -t, --tags | No | — | Comma-separated tags (e.g., "work,urgent") |
Behavior: If the specified list doesn't exist, it will be automatically created.
Output example:
✓ List created: Work
✓ Task added: Complete report
complete — Mark a task as completed
uv run scripts/ms-todo-sync.py complete "<title>" [-l "<list>"]
| Option | Required | Default | Description |
|--------|----------|---------|-------------|
| title | Yes | — | Exact task title |
| -l, --list | No | (default list) | List name where the task resides. If not specified, uses your default list. |
Output: ✓ Task completed:
delete — Delete a task
uv run scripts/ms-todo-sync.py delete "<title>" [-l "<list>"] [-y]
| Option | Required | Default | Description |
|--------|----------|---------|-------------|
| title | Yes | — | Exact task title |
| -l, --list | No | (default list) | List name. If not specified, uses your default list. |
...
安装 ms-todo-sync 后,可以对 AI 说这些话来触发它
Help me get started with ms-todo-sync
Explains what ms-todo-sync does, walks through the setup, and runs a quick demo based on your current project
Use ms-todo-sync to a CLI skill to manage Microsoft To Do tasks via Microsoft Graph API
Invokes ms-todo-sync with the right parameters and returns the result directly in the conversation
What can I do with ms-todo-sync in my documents & notes workflow?
Lists the top use cases for ms-todo-sync, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/ms-todo-sync/ 目录(个人级,所有项目可用),或 .claude/skills/ms-todo-sync/(项目级)。重启 AI 客户端后,用 /ms-todo-sync 主动调用,或让 AI 根据上下文自动发现并使用。
ms-todo-sync 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
ms-todo-sync 可免费安装使用。请查阅仓库了解许可证信息。
A CLI skill to manage Microsoft To Do tasks via Microsoft Graph API. Supports listing, creating, completing, deleting, searching tasks and lists, viewing overdue/today/pending tasks, and exporting data.
ms-todo-sync 属于「Documents & Notes」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my documents & notes tasks using ms-todo-sync
Identifies repetitive steps in your workflow and sets up ms-todo-sync to handle them automatically