Apply approved changes
apply_changesExecute individually approved changes on Todoist tasks during weekly review: reschedule, set priority, move to project, reword, complete, or apply labels. Only applies changes you explicitly confirm.
Instructions
Executes an explicit, already-approved list of changes against Todoist. ONLY call this
with changes the user has explicitly approved ITEM BY ITEM in chat. Never infer, batch,
or add a change the user did not individually confirm — if the user vetoed or didn't
respond to an item, leave it out of the changes array entirely.
Each change is { taskId, action, params? } where action is one of:
reschedule: params.dueDate (YYYY-MM-DD) OR params.dueString (Todoist natural language like "next monday"). Provide exactly one.
set_priority: params.priority, an integer 1-4, sent RAW to the API — 4 is highest/urgent, 1 is normal (inverse of the UI's P1 label). Do not remap.
move_to_project: params.projectName (a name, e.g. "Someday/Maybe"). The server finds the project by exact case-insensitive name, or creates it if missing, then moves the task there. This is the primary way to retire a task without deleting it.
reword: params.content, the new task text.
complete: no params. Marks the task done — the other way to retire a task.
apply_label: params.label. Fetches the task, appends the label if not already present, and saves it.
There is NO delete action in this server — tasks are never destroyed, only completed
or moved. split also does not exist in v1.
Input validation note: the changes array is validated as a whole against a strict
schema before any writes happen. If ANY item is malformed (unknown action, missing
required params, wrong type), the ENTIRE call is rejected and NOTHING is written — no
partial execution of a batch that contained a bad item. This is deliberately the safer
of two valid designs. Once validation passes, each item is executed independently and
the result reports success/failure per item (so a live API failure on one item, e.g. a
task that was deleted in Todoist meanwhile, does not stop the others).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes |