SkillHub

microsoft-todo

v1.0.0

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.

Sourced from ClawHub, Authored by underwear

Installation

Please help me install the skill `microsoft-todo` from SkillHub official store. npx skills add 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

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 --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