escaped in the shell\n (`\\$filter`) and URL-encoded spaces — quote the whole URL.\n- `wellknownListName: \"defaultList\"` is the user's default \"Tasks\" list — a good\n fallback when they don't name a list.\n- Pagination via `@odata.nextLink`; follow it for \"all tasks\".\n","licenseDocuments":[]}}
La interfaz está localizada; las descripciones y documentos de las Skills se traducen automáticamente con IA a su idioma. El código, los comandos, rutas y términos técnicos se mantienen en el original, y prevalece el documento del autor.
Explorar Skills
Productividad · SKILL.md

microsoft-todo

microsoft-todo

Read and manage Microsoft To Do task lists and tasks via Microsoft Graph v1.0. Use when the user mentions Microsoft To Do, their Outlook tasks, todo / pending items, due dates or reminders, adding or completing a task, or organising task lists.

Independent GitHub snapshot · Automated classification · Original documentation governs

Aacedatacloud / skillsApache-2.0

Documentación de la Skill

GitHub

name: microsoft-todo description: Read and manage Microsoft To Do task lists and tasks via Microsoft Graph v1.0. Use when the user mentions Microsoft To Do, their Outlook tasks, todo / pending items, due dates or reminders, adding or completing a task, or organising task lists. when_to_use: | Trigger when the user wants to inspect or manage Microsoft To Do — list task lists, surface pending / overdue items, add todos, mark complete, or update / delete tasks. The connector grants Tasks.ReadWrite (or Tasks.Read if the user chose read-only) — confirm before destructive writes. connections: [microsoft/todo] allowed_tools: [Bash] license: Apache-2.0 metadata: author: acedatacloud version: "1.0"

Drive Microsoft To Do via Microsoft Graph with curl + jq. The user's OAuth bearer token is in $MICROSOFT_TODO_TOKEN; every call needs Authorization: Bearer $MICROSOFT_TODO_TOKEN. Base URL: https://graph.microsoft.com/v1.0.

Failures are {"error":{"code","message"}} — show message verbatim. 401 means the token expired (re-install). 403/ErrorAccessDenied on a write means the user only granted Tasks.Read → ask them to re-connect with read+write.

G="https://graph.microsoft.com/v1.0"; AUTH="Authorization: Bearer $MICROSOFT_TODO_TOKEN"
# Task lists
curl -sS -H "$AUTH" "$G/me/todo/lists" | jq '.value[] | {id, displayName, wellknownListName}'

Tasks

LIST="LIST_ID"
# Open tasks in a list (filter notStarted/inProgress; $top caps page size)
curl -sS -H "$AUTH" \
  "$G/me/todo/lists/$LIST/tasks?\$filter=status ne 'completed'&\$top=50" \
  | jq '.value[] | {id, title, status, due: .dueDateTime.dateTime}'

# Create (confirm first). dueDateTime/reminderDateTime are optional.
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"title":"Follow up with Alex","dueDateTime":{"dateTime":"2026-06-30T17:00:00","timeZone":"UTC"}}' \
  "$G/me/todo/lists/$LIST/tasks" | jq '{id, title, status}'

# Complete: PATCH the task with {"status":"completed"}
curl -sS -X PATCH -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"status":"completed"}' "$G/me/todo/lists/$LIST/tasks/TASK_ID" | jq '{title, status}'

Gotchas

  • OData params ($filter, $top, $select) need the $ escaped in the shell (\$filter) and URL-encoded spaces — quote the whole URL.
  • wellknownListName: "defaultList" is the user's default "Tasks" list — a good fallback when they don't name a list.
  • Pagination via @odata.nextLink; follow it for "all tasks".
Skills guardadas