update_task
Update an existing task's title, schedule, deadline, labels, note, estimate, or sections. Modify task fields directly to keep task details current.
Instructions
Update a task: title, day, deadline, labels, note, estimate, sections. Update fields on an existing TASK via /doc/update (Full Access Token). For categories/projects, use update_category_or_project. For priority, use set_priority. Always complete tasks via mark_done, never here. Strategy-dependent fields (start/end date, planned_week/month, review_date, backburner, orbit, the sections) can be set even when the strategy is disabled in the app — they just are not shown in the UI then. A clock time (Time/taskTime) and the task's reminder fields are set in the APP, not here — an MCP limitation (double-write sync, see set_reminder), NOT a Marvin limitation: Marvin fully supports times on tasks. Note on recurring tasks: never edit recurrence rules here — neither on a generated instance (recurring=true, id 'YYYY-MM-DD') nor on the generator document. Do that editing in the Marvin app. Simple field changes (title, note) on a single instance are fine. Note: Marvin's server can sporadically respond 500 on /doc/update (transient and atomic — no partial write); just retry. But a PERMANENT 500 (persists across retries) means the document does not exist — deleted, or a wrong/never-existing ID (the server responds 500 instead of 404 for missing IDs, verified live 2026-08-29). Fetch a fresh ID via get_categories/get_children.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | Schedule on YYYY-MM-DD, 'today', or 'unassigned' to unschedule | |
| note | No | New note (replaces the existing one) | |
| orbit | No | Orbit strategy: True = put in orbit (verified in the app 2026-08-29: shows in the Orbit view + orbit icon in Today). UNDOCUMENTED field (missing from the official data types) | |
| title | No | New title | |
| item_id | Yes | Task ID | |
| due_date | No | Deadline YYYY-MM-DD, or '' to remove | |
| end_date | No | Soft deadline YYYY-MM-DD (Start & End Dates strategy), '' removes | |
| label_ids | No | New labels (IDs from get_labels; replaces existing ones, [] removes all) | |
| parent_id | No | Move to category/project ID (not validated by the server — a wrong ID yields an orphan, live-tested 2026-08-29; repaired by running FIX_CYCLES() in the app's console) | |
| backburner | No | True = put in the backburner, False = take out. NOTE: only effective on an UNSCHEDULED task — set day='unassigned' at the same time; scheduling trumps the flag in the UI (verified in the app 2026-08-29) | |
| start_date | No | Start date YYYY-MM-DD, '' removes. Mechanics (verified in the app 2026-08-29): the Start Dates strategy hides BACKBURNER items until their start date — combine with backburner=true and day='unassigned'; a scheduled task is not affected | |
| review_date | No | Review date YYYY-MM-DD, '' removes. Verified in the app 2026-08-29: shows in the Review view on the date; the day-view banner additionally requires the Review Alert workflow snippet | |
| planned_week | No | Plan into a week: the week's Monday YYYY-MM-DD (Planning Ahead strategy; verified in the app 2026-08-29 — also shows in the month view), '' removes. The app's view: clearing propagates server-side, but with Planning Ahead on (2026-08-29) the task stayed in the month view even after switching views — ask the user to reload the client (F5 in the web app/PWA, restart of the desktop app) before a missing render is taken for an error | |
| bonus_section | No | 'Essential' or 'Bonus' (bonusStructure strategy), '' removes | |
| daily_section | No | Day section 'Morning'/'Afternoon'/'Evening' (dailyStructure strategy), '' removes | |
| no_auto_orbit | No | Orbit strategy: True = exempt the task from automatic orbiting (auto-orbit otherwise pulls in scheduled tasks). UNDOCUMENTED field (bool type verified in live data 2026-08-29) | |
| planned_month | No | Plan into a month: YYYY-MM (Planning Ahead strategy, verified in the app 2026-08-29), '' removes | |
| reward_points | No | Reward points the task AWARDS on completion (coin + points in the list row when the Rewards strategy is on, verified in the app 2026-08-29), 0 removes. Do not set together with isReward | |
| custom_section | No | ID of a custom section from strategySettings.customStructure, '' removes | |
| perma_snooze_time | No | Hide the task every day until HH:mm (permaSnoozeTime), '' removes. Verified in the app 2026-08-29 | |
| time_block_section | No | Time block ID (from get_today_time_blocks, or time_block_id from create_time_block), '' removes. Shows under the block's section in Today when Time Block Sections is on, the day view is grouped by time block (per device, not synced) and the task is scheduled on the block's day — see create_task | |
| snooze_until_unix_ms | No | Snooze the task until unix time in milliseconds (itemSnoozeTime), 0 removes. Verified in the app 2026-08-29: hides from Today AND the category view (the wiki's 'everywhere except the master list' does not hold for the category view) | |
| time_estimate_minutes | No | Time estimate in minutes, 0 removes it |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||