update_task
Update any field of an existing TickTick task, including title, content, priority, due date, tags, and status, with partial updates.
Instructions
Update any fields of an existing task. Only provided fields are changed
(read-modify-write under the hood — safe for partial updates).
[Category: Tasks — Write] [Auth: V1]
[Related: get_task_detail, create_task, complete_task, reopen_task]
Args:
task_id: The task to update.
project_id: The project containing the task (required by API).
title: New title.
content: New body/description.
desc: Alt description field.
priority: 0=none, 1=low, 3=medium, 5=high.
due_date: ISO 8601. Pass "" to clear.
start_date: ISO 8601. Pass "" to clear.
time_zone: IANA timezone.
tags: Full replacement list. Pass [] to clear all tags.
status: 0=active, 2=completed, -1=abandoned (V2).
all_day: True/False.
column_id: Move to a kanban column.
reminder_minutes: List of minutes-before. Pass [] to clear reminders.
⚠️ V1/V2 GOTCHA — REMINDER ANCHOR REQUIRED:
Tasks created via V2 batch may have dueDate invisible to V1 (returns null).
V1 uses dueDate as the anchor to compute reminder trigger offsets (TRIGGER:-P2D).
If due_date is null, reminder_minutes is silently ignored — no error, no reminder.
FIX: ALWAYS pass due_date + time_zone explicitly alongside reminder_minutes,
even if you are not changing the due date. Read the existing due date from
get_task_detail() first, then pass it through. Example:
update_task(task_id='...', project_id='...', due_date='2026-06-03T21:00:00+0000',
time_zone='Europe/Paris', reminder_minutes=[2880, 1440])
Returns reminders: ['TRIGGER:-P2D', 'TRIGGER:-P1D'] when correctly anchored.
recurrence: RRULE string (use build_recurrence_rule). Pass "" to clear.
progress: 0-100 percentage (V2).
sort_order: Custom sort order.
kind: "TEXT", "NOTE", or "CHECKLIST".Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| project_id | Yes | ||
| title | No | ||
| content | No | ||
| desc | No | ||
| priority | No | ||
| due_date | No | ||
| start_date | No | ||
| time_zone | No | ||
| tags | No | ||
| status | No | ||
| all_day | No | ||
| column_id | No | ||
| reminder_minutes | No | ||
| recurrence | No | ||
| progress | No | ||
| sort_order | No | ||
| kind | No |