---
title: "Update Task"
method: PATCH
path: "/tasks/{id}"
tags: ["Tasks"]
---

# Update Task

`PATCH /tasks/{id}`

## Request

- Base URL: `https://timelodge.com/api/v1`
- URL: `https://timelodge.com/api/v1/tasks/{id}`
- Auth: HTTP bearer

Send the ETag from the latest GET in `If-Match`. Requires `tasks:write`.

## Path parameters

- `id` integer, required

## Headers

- `Idempotency-Key` string, required
- `If-Match` string, required

## Request body

- TaskWrite
  - `name` string, nullable, required
  - `code` string, nullable
  - `billable_by_default` boolean, nullable
  - `is_active` boolean, nullable

## Response `200`

The updated resource.

- TaskResponse
  - `data` Task, required
    - `id` integer, nullable
    - `name` string, nullable
    - `code` string, nullable
    - `billable_by_default` boolean, nullable
    - `is_active` boolean, nullable
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable
    - `version` string: Opaque representation version used for optimistic concurrency.

## Other responses

- `400`: Invalid request.
- `401`: Missing or invalid token.
- `403`: The token lacks the required scope.
- `404`: Resource not found.
- `409`: Idempotency conflict or request in progress.
- `412`: The resource has changed since it was read.
- `422`: Validation failed.
- `428`: An If-Match header is required.
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/timelodge/apis/timelodge-api.md) · [All operations](https://skmtc.dev/timelodge/apis/timelodge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/timelodge/apis/timelodge-api/revisions/9072baafaa20?raw)
