API
Update a task
Changes a task. Send only the fields that change.
PATCH/tasks/{id}
Runs the real call on your workspace.
PATCH /tasks/{id}
Changes a task. Send only the fields that change.
Example
Needs the same scopes as creating, counted against the toolkits the task will have afterwards.
curl -X PATCH "$OE/tasks/tsk_4b9e2c7a1f3d86e05a9c2b7d" -H "$AUTH" -H 'content-type: application/json' -d '{ "autonomy": "reply", "toolkits": ["drafts", "notes", "knowledge", "calendar"]}'{ "object": "task", "id": "tsk_4b9e2c7a1f3d86e05a9c2b7d", "name": "Morning summary", "instruction": "Go through the mail that arrived since yesterday. Tell me which conversations need a reply from me, most urgent first, and draft a short reply for each.", "status": "active", "pausedReason": null, "trigger": { "kind": "schedule", "schedule": { "cadence": "daily", "everyHours": 1, "hour": 8, "minute": 0, "weekdays": [1, 2, 3, 4, 5], "monthDay": 1, "timezone": "Europe/London" }, "mail": null }, "autonomy": "organize", "toolkits": ["notes", "drafts", "knowledge"], "model": "standard", "notify": "attention", "maxRunsPerDay": 50, "maxSteps": 20, "nextRunAt": "2026-10-14T07:00:00.000Z", "heldUntil": null, "lastRunAt": "2026-10-13T07:00:04.112Z", "lastRunStatus": "done", "runCount": 12, "pendingApprovals": 0, "createdAt": "2026-10-01T09:12:44.000Z", "updatedAt": "2026-10-13T07:01:10.530Z"}A trigger replaces the old one whole, and a new schedule works out nextRunAt again.
A run that is already going keeps the instruction and the settings it started with.
Pausing and resuming have their own endpoints, so status is not a field here.