---
title: "Finish Calendar Event"
method: POST
path: "/v2.0/calendar/{calendarId}/finish"
tags: ["Calendar V2 API"]
---

# Finish Calendar Event

`POST /v2.0/calendar/{calendarId}/finish`

## Request

- Base URL: `https://api.lofty.com`
- URL: `https://api.lofty.com/v2.0/calendar/{calendarId}/finish`
- Auth: none required
- TypeScript: <https://skmtc.dev/lofty/apis/lofty-service-open-apis/docs/v2.0/calendar/:calendarId/finish/post.ts> (a function with typed inputs; its response is checked against the schema)

Marks a Task or Appointment as finished. Caller must have manage permission on the entry's lead.

## Path parameters

- `calendarId` string, required

## Headers

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

## Response `200`

Calendar marked as finished.

- CalendarMessageResponseEnvelope: Simple message envelope used by PUT / DELETE / finish / unfinish calendar endpoints.
  - `message` string: Result message for the calendar operation.

## Other responses

- `400`: Invalid calendarId format or target not found (20012 INVALID_PARAMETER); caller is not the manager (20017 PERMISSION_DENIED).
- `401`: Missing or invalid authentication token.
- `500`: Internal server error.

---

[API](https://skmtc.dev/lofty/apis/lofty-service-open-apis.md) - [All operations](https://skmtc.dev/lofty/apis/lofty-service-open-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/lofty/apis/lofty-service-open-apis/revisions/23e640467118?raw)
