> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getkato.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a Raycast task

> Update a visible task, including its record links, meeting links, or section.

Update a visible task, including its record links, meeting links, or section.

Use an OAuth access token issued to `kato-raycast`. Developer keys cannot call this endpoint. See [Raycast authentication](/api-reference/raycast/overview).

Required scopes: `tasks:write`.

Supply at least one recognized change. Omitted values remain unchanged. Null clears dueDate, estimatedTime, or sectionId. If sectionId is supplied together with linkedRecordIds, include the section’s record in the links. Invalid targets return `400`; inaccessible or archived tasks return `404`.

## Parameters

<ParamField path="taskId" type="string" required>
  Task ID accessible to the key owner.
</ParamField>

<ParamField body="title" type="string">
  Trimmed 1–500 characters.
</ParamField>

<ParamField body="description" type="string">
  Up to 100,000 characters.
</ParamField>

<ParamField body="status" type="string">
  Workspace status slug from the Raycast status endpoint.
</ParamField>

<ParamField body="priority" type="string">
  no\_priority, low, medium, high, or urgent.
</ParamField>

<ParamField body="dueDate" type="string | null">
  ISO 8601 datetime, or null. This differs from developer task writes.
</ParamField>

<ParamField body="assignees" type="string[]">
  Up to 50 workspace auth-user IDs, each 1–200 characters. Supplied arrays replace the current selection; \[] clears it.
</ParamField>

<ParamField body="estimatedTime" type="integer | null">
  Positive minutes, maximum 525,600. Null clears the value.
</ParamField>

<ParamField body="linkedRecordIds" type="string[]">
  Up to 10 accessible record IDs. Supplied arrays replace the current selection; \[] clears it.
</ParamField>

<ParamField body="linkedMeetingIds" type="string[]">
  Up to 10 accessible native meeting IDs. Supplied arrays replace the current selection; \[] clears it.
</ParamField>

<ParamField body="sectionId" type="string | null">
  Task section ID, 1–200 characters. Null clears the value.
</ParamField>

## Response

**200** — Returns the resource under `data`. Example IDs and values are illustrative.

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": {
      "id": "task_example",
      "title": "Prepare kickoff",
      "description": null,
      "status": "todo",
      "priority": "no_priority",
      "assignees": [],
      "dueDate": null,
      "timeLogged": 0,
      "estimatedTime": null,
      "createdBy": "user_example",
      "createdAt": "2026-09-07T12:00:00.000Z",
      "updatedAt": "2026-09-07T12:00:00.000Z",
      "linkedMeetingIds": [],
      "fileCount": 0,
      "linkedRecordCount": 0,
      "timerState": null,
      "webUrl": "https://app.getkato.io/northlane/tasks/task_example/details"
    }
  }
  ```
</ResponseExample>

<RequestExample>
  ```bash Request theme={null}
  curl --fail-with-body --silent --show-error \
    -X PATCH \
    "https://api.getkato.io/v1/raycast/tasks/$KATO_TASK_ID" \
    -H "Authorization: Bearer $KATO_RAYCAST_ACCESS_TOKEN" \
    -H "Content-Type: application/json" \
    --data '{
    "priority": "high",
    "dueDate": null
  }'
  ```
</RequestExample>

Set path-ID environment variables to values returned by your workspace before running the request.

This request changes workspace data. A timeout does not prove that the write failed; inspect the result before retrying.


## Related topics

- [All endpoints](/api-reference/endpoints.md)
- [Update a task](/api-reference/tasks/update.md)
- [List my Raycast tasks](/api-reference/raycast/tasks-list.md)
- [Create a Raycast task](/api-reference/raycast/tasks-create.md)
- [Tasks API](/api-reference/tasks/overview.md)
