Skip to main content

Simple CLI tool to integrate with Microsoft To Do, allowing users to manage their tasks from the command line.

Project description

ms-todo

Coverage

CLI and importable Python package for Microsoft To Do via Microsoft Graph.

Install (in your virtualenv)

pip install -e .

Config File (~/.ms-todo/.env)

By default, config is loaded from ~/.ms-todo/.env. You can override the config directory with MS_TODO_CONFIG_DIR.

CLIENT_ID=YOUR_CLIENT_ID
TENANT_ID=consumers
TASK_LIST_ID=YOUR_TASK_LIST_ID

Optional:

CLIENT_SECRET=YOUR_CLIENT_SECRET

CLIENT_SECRET is not used by the device-code CLI flow, but can remain for other scripts.

CLI Usage

ms-todo --help

Who Am I

ms-todo whoami

Shows signed-in user account info and To Do mailbox diagnostics.

Get Task List IDs

List all:

ms-todo get-task-list-id

Find one by name:

ms-todo get-task-list-id --list-name "Tasks"

Add a Todo

Using default list from config (TASK_LIST_ID):

ms-todo add-todo "Call accountant"

Explicit list ID:

ms-todo add-todo "Call accountant" --task-list-id "<LIST_ID>"

Interactive prompt:

ms-todo add-todo --interactive

Complete a Todo by ID

With tracked lookup (no list ID needed if task was added via this tool):

ms-todo complete-todo --todo-id "<TODO_ID>"

With explicit list ID:

ms-todo complete-todo --todo-id "<TODO_ID>" --task-list-id "<LIST_ID>"

Complete a Todo by Source Title

ms-todo complete-from-source "Call accountant"

With explicit list ID:

ms-todo complete-from-source "Call accountant" --task-list-id "<LIST_ID>"

Bulk Add From File

Using default list from config (TASK_LIST_ID):

ms-todo bulk-add-from-file --file todos.txt

Explicit list ID:

ms-todo bulk-add-from-file --file todos.txt --task-list-id "<LIST_ID>"

Interactive list selection:

ms-todo bulk-add-from-file --file todos.txt --interactive

The file should contain one todo title per line. Successfully added titles are removed from the file.

Debug Logging

ms-todo --debug whoami

The --debug flag can be prepended to any command.

Docs

For Azure app registration and full setup, see docs/docs/index.md or run:

just mkdocs-serve

History

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

0.1.1 (2026-04-20)

  • Updated README and move to hatch and xapp-tools.

0.1.0 (2026-03-07)

  • First release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ms_todo-0.1.1.tar.gz (156.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ms_todo-0.1.1-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

File details

Details for the file ms_todo-0.1.1.tar.gz.

File metadata

  • Download URL: ms_todo-0.1.1.tar.gz
  • Upload date:
  • Size: 156.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for ms_todo-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1810958a7dabe7addda3d976fe5d1fa5d9f1bb7cb8358c995ddd43db26dca4a2
MD5 4e2b95e94f68c3f0875201d7d123bd3c
BLAKE2b-256 25f353d0a7e7b12dcf5946ea35b9f075a1ba2455af1fe508afca12e624a4fca0

See more details on using hashes here.

File details

Details for the file ms_todo-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ms_todo-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for ms_todo-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 813f43cb8575d69ee9042f3e49374574254724c939429dca6ea4d651bcb4e80a
MD5 e0c978f8de8f8b6b57fac496374bb589
BLAKE2b-256 1113d8d8f174ecf7d989bbb71e63c240cbe1e5ee14f64574f7c8bb1a48281eb7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page