Skip to main content
Glama

Things MCP Server

by BMPixel
MIT License
54
1
  • Apple

update_todo

Modify an existing to-do in Things.app by updating its title, notes, schedule, tags, checklist, project/area assignment, or status. Use specific IDs or names to adjust details like deadlines, completion, or location within projects.

Instructions

Update an existing to-do item in Things.app. Modify title, notes, scheduling, tags, checklist items, project/area assignment, and completion status.

Input Schema

NameRequiredDescriptionDefault
addTagsNoAdd these tag names to existing tags without removing current ones (max 20 total tags). Preserves existing tags
appendChecklistItemsNoAdd these checklist items to the end of the existing checklist without removing current items
appendNotesNoAdd text to the end of existing notes without replacing them. Useful for adding follow-up information or status updates
areaIdNoMove the to-do to a different area by specifying the area ID
areaNameNoMove the to-do to a different area by specifying the area name (e.g., "Work", "Personal", "Health")
canceledNoMark the to-do as canceled (true) or restore it (false). Canceled to-dos are moved to the Trash
checklistItemsNoReplace all current checklist items with this new set (max 100 items). This completely replaces existing checklist items
completedNoMark the to-do as completed (true) or reopen it (false). Completed to-dos are moved to the Logbook
completionDateNoSet a specific completion date using ISO8601 datetime (YYYY-MM-DDTHH:MM:SS). Only used when marking as completed
creationDateNoOverride the creation date with a specific ISO8601 datetime (YYYY-MM-DDTHH:MM:SS). Useful for data migration
deadlineNoUpdate the deadline in ISO date format (YYYY-MM-DD). Creates or updates deadline reminder in Things.app
headingIdNoMove the to-do under a specific heading within the target project by heading ID
headingNameNoMove the to-do under a specific heading within the target project by heading name (e.g., "Phase 1", "Research")
idYesThe unique ID of the to-do to update. This ID can be obtained from the list_todos tool
notesNoReplace existing notes with new content (max 10,000 characters). Supports markdown formatting. This completely replaces existing notes
prependChecklistItemsNoAdd these checklist items to the beginning of the existing checklist without removing current items
prependNotesNoAdd text to the beginning of existing notes without replacing them. Useful for adding updates or new information
projectIdNoMove the to-do to a different project by specifying the project ID
projectNameNoMove the to-do to a different project by specifying the project name. Things.app will find the project by name
tagsNoReplace all current tags with this new set of tag names (max 20 tags). This completely replaces existing tags
titleNoUpdate the to-do title with a new clear, actionable description of the task
whenNoReschedule the to-do. Use "today" for immediate action, "tomorrow" for next day, "evening" for later today, "anytime" for no specific time, "someday" for future consideration, or ISO date format (YYYY-MM-DD) for specific date

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "addTags": { "description": "Add these tag names to existing tags without removing current ones (max 20 total tags). Preserves existing tags", "items": { "minLength": 1, "type": "string" }, "maxItems": 20, "type": "array" }, "appendChecklistItems": { "description": "Add these checklist items to the end of the existing checklist without removing current items", "items": { "minLength": 1, "type": "string" }, "type": "array" }, "appendNotes": { "description": "Add text to the end of existing notes without replacing them. Useful for adding follow-up information or status updates", "type": "string" }, "areaId": { "description": "Move the to-do to a different area by specifying the area ID", "type": "string" }, "areaName": { "description": "Move the to-do to a different area by specifying the area name (e.g., \"Work\", \"Personal\", \"Health\")", "type": "string" }, "canceled": { "description": "Mark the to-do as canceled (true) or restore it (false). Canceled to-dos are moved to the Trash", "type": "boolean" }, "checklistItems": { "description": "Replace all current checklist items with this new set (max 100 items). This completely replaces existing checklist items", "items": { "minLength": 1, "type": "string" }, "maxItems": 100, "type": "array" }, "completed": { "description": "Mark the to-do as completed (true) or reopen it (false). Completed to-dos are moved to the Logbook", "type": "boolean" }, "completionDate": { "description": "Set a specific completion date using ISO8601 datetime (YYYY-MM-DDTHH:MM:SS). Only used when marking as completed", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}", "type": "string" }, "creationDate": { "description": "Override the creation date with a specific ISO8601 datetime (YYYY-MM-DDTHH:MM:SS). Useful for data migration", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}", "type": "string" }, "deadline": { "description": "Update the deadline in ISO date format (YYYY-MM-DD). Creates or updates deadline reminder in Things.app", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "type": "string" }, "headingId": { "description": "Move the to-do under a specific heading within the target project by heading ID", "type": "string" }, "headingName": { "description": "Move the to-do under a specific heading within the target project by heading name (e.g., \"Phase 1\", \"Research\")", "type": "string" }, "id": { "description": "The unique ID of the to-do to update. This ID can be obtained from the list_todos tool", "minLength": 1, "type": "string" }, "notes": { "description": "Replace existing notes with new content (max 10,000 characters). Supports markdown formatting. This completely replaces existing notes", "maxLength": 10000, "type": "string" }, "prependChecklistItems": { "description": "Add these checklist items to the beginning of the existing checklist without removing current items", "items": { "minLength": 1, "type": "string" }, "type": "array" }, "prependNotes": { "description": "Add text to the beginning of existing notes without replacing them. Useful for adding updates or new information", "type": "string" }, "projectId": { "description": "Move the to-do to a different project by specifying the project ID", "type": "string" }, "projectName": { "description": "Move the to-do to a different project by specifying the project name. Things.app will find the project by name", "type": "string" }, "tags": { "description": "Replace all current tags with this new set of tag names (max 20 tags). This completely replaces existing tags", "items": { "minLength": 1, "type": "string" }, "maxItems": 20, "type": "array" }, "title": { "description": "Update the to-do title with a new clear, actionable description of the task", "minLength": 1, "type": "string" }, "when": { "anyOf": [ { "enum": [ "today", "tomorrow", "evening", "anytime", "someday" ], "type": "string" }, { "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "type": "string" } ], "description": "Reschedule the to-do. Use \"today\" for immediate action, \"tomorrow\" for next day, \"evening\" for later today, \"anytime\" for no specific time, \"someday\" for future consideration, or ISO date format (YYYY-MM-DD) for specific date" } }, "required": [ "id" ], "type": "object" }
Install Server

Other Tools from Things MCP Server

Related Tools

    MCP directory API

    We provide all the information about MCP servers via our MCP API.

    curl -X GET 'https://glama.ai/api/mcp/v1/servers/BMPixel/things-mcp'

    If you have feedback or need assistance with the MCP directory API, please join our Discord server