update_task
Modify fields on an existing task such as title, note, dates, labels, or sections. Use other tools for category/project moves, priority changes, or marking tasks done.
Instructions
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), '' removes. NOTE: stored, but no visible section link renders in Today even with the strategy active (verified in the app 2026-08-29) | |
| 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 | |||