update_todo
Edit and manage existing to-dos in Things.app by updating titles, notes, checklist items, tags, scheduling, project/area assignments, and completion status. Streamline task organization and prioritization with detailed customization options.
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
Name | Required | Description | Default |
---|---|---|---|
addTags | No | Add these tag names to existing tags without removing current ones (max 20 total tags). Preserves existing tags | |
appendChecklistItems | No | Add these checklist items to the end of the existing checklist without removing current items | |
appendNotes | No | Add text to the end of existing notes without replacing them. Useful for adding follow-up information or status updates | |
areaId | No | Move the to-do to a different area by specifying the area ID | |
areaName | No | Move the to-do to a different area by specifying the area name (e.g., "Work", "Personal", "Health") | |
canceled | No | Mark the to-do as canceled (true) or restore it (false). Canceled to-dos are moved to the Trash | |
checklistItems | No | Replace all current checklist items with this new set (max 100 items). This completely replaces existing checklist items | |
completed | No | Mark the to-do as completed (true) or reopen it (false). Completed to-dos are moved to the Logbook | |
completionDate | No | Set a specific completion date using ISO8601 datetime (YYYY-MM-DDTHH:MM:SS). Only used when marking as completed | |
creationDate | No | Override the creation date with a specific ISO8601 datetime (YYYY-MM-DDTHH:MM:SS). Useful for data migration | |
deadline | No | Update the deadline in ISO date format (YYYY-MM-DD). Creates or updates deadline reminder in Things.app | |
headingId | No | Move the to-do under a specific heading within the target project by heading ID | |
headingName | No | Move the to-do under a specific heading within the target project by heading name (e.g., "Phase 1", "Research") | |
id | Yes | The unique ID of the to-do to update. This ID can be obtained from the list_todos tool | |
notes | No | Replace existing notes with new content (max 10,000 characters). Supports markdown formatting. This completely replaces existing notes | |
prependChecklistItems | No | Add these checklist items to the beginning of the existing checklist without removing current items | |
prependNotes | No | Add text to the beginning of existing notes without replacing them. Useful for adding updates or new information | |
projectId | No | Move the to-do to a different project by specifying the project ID | |
projectName | No | Move the to-do to a different project by specifying the project name. Things.app will find the project by name | |
tags | No | Replace all current tags with this new set of tag names (max 20 tags). This completely replaces existing tags | |
title | No | Update the to-do title with a new clear, actionable description of the task | |
when | No | 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 |
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"
}