Complete or skip one day
Marks ONE day of a repeating task completed or skipped — the SAME shared operation the MCP `complete_task_occurrence` tool executes. The day may be in the PAST ("I brushed my teeth yesterday") or a scheduled FUTURE day finished early; neither breaks the chain, and neither touches any other day or the task's own `status`. Re-sending the state a day is already in is a no-op success, so retries are safe. A day the schedule does not produce (or a task that does not repeat) answers 404 `resource_not_found`.
Marks ONE day of a repeating task completed or skipped — the SAME shared operation the MCP complete_task_occurrence tool executes. The day may be in the PAST ("I brushed my teeth yesterday") or a scheduled FUTURE day finished early; neither breaks the chain, and neither touches any other day or the task's own status. Re-sending the state a day is already in is a no-op success, so retries are safe. A day the schedule does not produce (or a task that does not repeat) answers 404 resource_not_found.
Authorization
bearerAuth A gid_ API key (Settings → API keys) or an OAuth 2.1 access token.
In: header
Path Parameters
Task short id, e.g. T-123 (a bare 123 is also accepted on input).
^(?:T-)?[0-9]{1,12}$The calendar day the occurrence is for, as YYYY-MM-DD in the recurrence timezone.
^\d{4}-\d{2}-\d{2}$Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
The new state for this one day of the series.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X PATCH "https://example.com/v1/tasks/string/occurrences/string" \ -H "Content-Type: application/json" \ -d '{ "status": "COMPLETED" }'{ "task_id": "string", "occurrence_date": "string", "sequence": -9007199254740991, "status": "PENDING", "completed_at": "2019-08-24T14:15:22Z"}List a task's occurrences GET
Cursor-paginated ledger of the days a repeating task is due, most recent day first. Filter with `status`, and with `starting_on` / `ending_on` for a calendar window (both inclusive, and both interpreted in the recurrence's own timezone). Future days already exist inside the materialization horizon — that is what makes completing early possible. A task that does not repeat answers an empty page rather than 404. Every filter is baked into the cursor: reusing an `after` cursor with different filters answers 400 `validation_failed`.
List tasks GET
Cursor-paginated list of the credential organization's tasks (current version of each), most recently updated first. Filters: `status`, `project_id`, `parent_task_id` (subtasks of one task) and `archived` (default false — archived tasks are excluded). Every filter is baked into the cursor: reusing an `after` cursor with different filters answers 400 `validation_failed`.