Create or update a task
save_taskUpsert a task. Omit id to create a new one (name required). Pass id to update an existing task — any subset of fields. To change part of the note, pass patch instead of note. Use null on listId to unlink a task from its list. Returns the saved task.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Task reference: TASKAID-45, #45 or 45. Pass to update an existing task; omit to create a new one. | |
| name | No | Required when creating. On update, omit to keep the current name. | |
| note | No | Task notes, as Markdown, up to 15,000 characters — rendered as rich text in the app. Headings, lists, bold, and inline code are supported. Send literal newlines and characters, not escape sequences. | |
| when | No | The day the task is scheduled for, as "YYYY-MM-DD" (e.g. "2026-05-21"). Omit or pass null when creating to leave the task in Inbox; pass null when updating to move it back there. | |
| patch | No | Edits to the note, applied in order and atomically — if one fails, nothing is written. Only on update, in place of `note`: text you do not send keeps its exact wording. | |
| listId | No | Pass null to unlink the task from its list. | |
| starred | No | ||
| duration | No | Estimated duration in minutes, up to a day. Null clears the estimate. | |
| completed | No | Marks the task done. True stamps `completedAt` with the time of the call, never the time the work finished. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| url | Yes | ||
| list | Yes | ||
| name | Yes | ||
| note | Yes | ||
| when | Yes | Calendar date, "YYYY-MM-DD", or null for Inbox. | |
| source | Yes | ||
| starred | Yes | ||
| duration | Yes | ||
| completed | Yes | ||
| updatedAt | Yes | ||
| completedAt | Yes |