mark_done
Complete a task in Amazing Marvin by ID, stopping any running time tracking and safely handling recurring instances. Returns clear errors if the task doesn't exist or is already done.
Instructions
Mark a task as done (via /markDone, with the correct timezone offset).
Tasks ONLY: for projects the API responds 400 'Can only mark Tasks done
with this API' (verified live 2026-08-19) — projects are completed in the
Marvin app (done=true via /doc/update would technically work but skips
the app's side effects). Safe for generated instances of recurring tasks
too (verified live): the instance ID is deterministic
('YYYY-MM-DD_'), so no duplicates can occur.
Error codes (live-tested 2026-08-29): 404 = the task does not exist
(deleted/wrong ID — unlike /doc/update, which responds 500);
400 = already marked done (harmless, nothing changes). Stops running
time tracking on the task and writes the tracking interval to
task.times (receipt also in /tracks; live-tested 2026-09-02 in two
runs — on 2026-08-29 times was NOT written, the server behavior has
changed; a direct /track STOP still does not write times, see
stop_tracking). Pinned task: the original stays open and
pinned as documented; the completed copy gets its own ID and can be
found via get_done_items. Leaves day untouched; the app sets day =
today only on unscheduled and future-dated tasks, a past day is kept
there too (app code, 2026-08-30). Completed tasks can be read back with
/doc (by ID) and listed with get_done_items.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Task ID (NOT a project — see description) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||