microsoft-todo
✓Verified·Scanned 2/18/2026
Manage Microsoft To Do tasks via the todo CLI. Use when user wants to add, list, complete, remove tasks, manage subtasks (steps), notes, or organize task lists.
from clawhub.ai·vb488c57·6.5 KB·0 installs
Scanned from 1.0.0 at b488c57 · Transparency log ↗
$ vett add clawhub.ai/underwear/microsoft-todo
Microsoft To Do CLI
Manage tasks in Microsoft To Do using the todo command.
References
references/setup.md(Azure app registration + OAuth configuration)
Prerequisites
todoCLI installed (pip install microsoft-todo-cli)- Microsoft Azure app registered (see
references/setup.md) - Credentials configured at
~/.config/microsoft-todo-cli/keys.yml - First run completes OAuth flow in browser
Commands
Tasks
# List tasks
todo tasks --json # Default list
todo tasks Work --json # Specific list
todo tasks --due-today --json # Due today
todo tasks --overdue --json # Past due
todo tasks --important --json # High priority
todo tasks --completed --json # Done tasks
todo tasks --all --json # Everything
# Create task
todo new "Task name" --json # Basic
todo new "Task" -l Work --json # In specific list
todo new "Task" -d tomorrow --json # With due date
todo new "Task" -r 2h --json # With reminder
todo new "Task" -d mon -r 9am --json # Due Monday, remind 9am
todo new "Task" -I --json # Important
todo new "Task" -R daily --json # Recurring daily
todo new "Task" -R weekly:mon,fri --json # Specific days
todo new "Task" -S "Step 1" -S "Step 2" --json # With subtasks
todo new "Task" -N "Note content" --json # With note
# Update task
todo update "Task" --title "New" --json
todo update "Task" -d friday -I --json
# Complete/Uncomplete
todo complete "Task" --json
todo complete 0 1 2 --json # Batch by index
todo uncomplete "Task" --json
# Delete
todo rm "Task" -y --json
Subtasks (Steps)
todo new-step "Task" "Step text" --json
todo list-steps "Task" --json
todo complete-step "Task" "Step" --json
todo uncomplete-step "Task" "Step" --json
todo rm-step "Task" 0 --json
Notes
todo note "Task" "Note content"
todo show-note "Task"
todo clear-note "Task"
Lists
todo lists --json
todo new-list "Project X" --json
todo rename-list "Old" "New" --json
todo rm-list "Project X" -y --json
Task Identification
| Method | Stability | Use Case |
|---|---|---|
--id "AAMk..." | Stable | Automation, scripts |
Index (0, 1) | Unstable | Interactive only |
Name ("Task") | Unstable | Unique names only |
Use ID for multi-step operations:
ID=$(todo new "Task" -l Work --json | jq -r '.id')
todo complete --id "$ID" -l Work --json
Date & Time Formats
| Type | Examples |
|---|---|
| Relative | 1h, 30m, 2d, 1h30m |
| Time | 9:30, 9am, 17:00, 5:30pm |
| Days | tomorrow, monday, fri |
| Date | 2026-12-31, 31.12.2026 |
| Keywords | morning (7:00), evening (18:00) |
Recurrence Patterns
| Pattern | Description |
|---|---|
daily | Every day |
weekly | Every week |
monthly | Every month |
yearly | Every year |
weekdays | Monday to Friday |
weekly:mon,wed,fri | Specific days |
every 2 days | Custom interval |
Aliases
| Alias | Command |
|---|---|
t | tasks |
n | new |
c | complete |
d | rm |
sn | show-note |
cn | clear-note |
Notes
- Always use
--jsonfor all commands to get structured output - Always use
-ywithrmcommands to skip confirmation - Use
--idwith-l ListNamefor list context - First run opens browser for OAuth authentication