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

  1. todo CLI installed (pip install microsoft-todo-cli)
  2. Microsoft Azure app registered (see references/setup.md)
  3. Credentials configured at ~/.config/microsoft-todo-cli/keys.yml
  4. 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

MethodStabilityUse Case
--id "AAMk..."StableAutomation, scripts
Index (0, 1)UnstableInteractive only
Name ("Task")UnstableUnique 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

TypeExamples
Relative1h, 30m, 2d, 1h30m
Time9:30, 9am, 17:00, 5:30pm
Daystomorrow, monday, fri
Date2026-12-31, 31.12.2026
Keywordsmorning (7:00), evening (18:00)

Recurrence Patterns

PatternDescription
dailyEvery day
weeklyEvery week
monthlyEvery month
yearlyEvery year
weekdaysMonday to Friday
weekly:mon,wed,friSpecific days
every 2 daysCustom interval

Aliases

AliasCommand
ttasks
nnew
ccomplete
drm
snshow-note
cnclear-note

Notes

  • Always use --json for all commands to get structured output
  • Always use -y with rm commands to skip confirmation
  • Use --id with -l ListName for list context
  • First run opens browser for OAuth authentication