---
title: "Update Task"
method: PUT
path: "/v2.0/tasks/{taskId}"
tags: ["Tasks & Appointments V2"]
---

# Update Task

`PUT /v2.0/tasks/{taskId}`

Partially updates a task or appointment. Only non-null fields in the request body are applied.

Notes:
- To mark an entry as completed or not, use the finish / unfinish endpoints instead.
- At least one of content, startAt, endAt, address must be supplied; an entirely empty payload returns 400 MISSING_PARAMETER.
- Caller must have manage permission on the entry's lead.

## Path parameters

- `taskId` integer, required

## Headers

- `Authorization` string, required
- `Content-Type` string, required

## Request body

- UpdateTaskRequestV2 — Partial update payload. Only non-null fields are applied.
  - `content` string — Description of the task
  - `startAt` string — When this task/appointment should start. ISO8601 format in specified timezone, e.g., '2026-03-01T15:00:00-08:00'
  - `endAt` string — When this task/appointment should end. ISO8601 format in specified timezone, e.g., '2026-03-01T16:00:00-08:00'. For regular tasks, this represents the deadline
  - `timeZoneCode` string — Timezone code for this task/appointment
  - `address` string — Address/location for appointment type tasks

## Response `200`

Task updated. Response body is a simple message envelope.

- MessageResponse — Generic message response
  - `message` string — Result message

## Other responses

- `400` — Missing or invalid parameter (20012 INVALID_PARAMETER / MISSING_PARAMETER).
- `401` — Missing or invalid authentication token.
- `404` — Task or appointment does not exist (TASK_NOT_EXIST) or caller has no access to the lead (20006 LEAD_NOT_EXIST).
- `500` — Internal server error.

---

[API](https://skmtc.net/lofty/apis/lofty-service-open-apis.md) · [All operations](https://skmtc.net/lofty/apis/lofty-service-open-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lofty/lofty-service-open-apis/versions/23e640467118/schema)
