---
title: "Update a meeting"
method: PATCH
path: "/meetings/{id}"
tags: ["Meetings"]
---

# Update a meeting

`PATCH /meetings/{id}`

## Request

- Base URL: `https://app.pencil.ink/api/v1`
- URL: `https://app.pencil.ink/api/v1/meetings/{id}`
- Auth: HTTP bearer

Requires a `write` key.

## Request body

- MeetingUpdate
  - `title` string
  - `summary` string
  - `transcript` string
  - `meetingAt` integer, nullable: Epoch ms. Send null or `clearMeetingAt` to clear.
  - `clearMeetingAt` boolean
  - `durationSec` integer, nullable
  - `clearDurationSec` boolean
  - `participants` MeetingParticipant[]
    - `name` string
    - `email` string
  - `organizerEmail` string
  - `projectId` string, nullable
  - `clearProjectId` boolean
  - `relatedObjects` MeetingRelatedObject[], nullable
    - `kind` 'task' | 'project' | 'product' | 'company' | 'initiative' | 'goal' | 'epic' | 'feature' | 'component' | 'requirement' | 'persona' | 'stakeholder' | 'feedback' | 'idea' | 'deliverable' | 'sprint' | 'iteration' | 'bug' | 'milestone' | 'repo', required
    - `objectId` string, required
    - `title` string, nullable: Resolved title in responses.
    - `globalId` string, nullable
  - `clearRelatedObjects` boolean
  - `tags` string[]
  - `sourceUrl` string
  - `recordingUrl` string
  - `decisions` string[]
  - `actionItems` MeetingActionItem[]
    - `text` string
    - `ownerHint` string, nullable
    - `status` 'suggested' | 'dismissed' | 'converted'
    - `taskId` string, nullable

## Response `200`

A single meeting.

- object
  - `data` Meeting
    - `id` string
    - `noteId` string
    - `title` string
    - `source` 'fireflies' | 'tldv' | 'google_meet' | 'microsoft_teams' | 'recall' | 'email' | 'manual'
    - `externalId` string, nullable
    - `meetingAt` integer, nullable: Epoch ms.
    - `durationSec` integer, nullable
    - `participants` MeetingParticipant[]
      - `name` string
      - `email` string
    - `organizerEmail` string, nullable
    - `summary` string, nullable
    - `summaryStatus` 'none' | 'pending' | 'ready' | 'error'
    - `summaryError` string, nullable
    - `decisions` string[]
    - `actionItems` MeetingActionItem[]
      - `text` string
      - `ownerHint` string, nullable
      - `status` 'suggested' | 'dismissed' | 'converted'
      - `taskId` string, nullable
    - `actionItemCount` integer
    - `openActionItemCount` integer
    - `sourceUrl` string, nullable
    - `recordingUrl` string, nullable
    - `projectId` string, nullable
    - `projectName` string, nullable
    - `relatedObjects` MeetingRelatedObject[]
      - `kind` 'task' | 'project' | 'product' | 'company' | 'initiative' | 'goal' | 'epic' | 'feature' | 'component' | 'requirement' | 'persona' | 'stakeholder' | 'feedback' | 'idea' | 'deliverable' | 'sprint' | 'iteration' | 'bug' | 'milestone' | 'repo', required
      - `objectId` string, required
      - `title` string, nullable: Resolved title in responses.
      - `globalId` string, nullable
    - `tags` string[]
    - `transcript` string, nullable: Only present on `GET /meetings/{id}?includeTranscript=true`.
    - `createdAt` integer: Epoch ms.
    - `updatedAt` integer, nullable: Epoch ms.

## Other responses

- `400`: Malformed request or invalid field (`validation_error`).
- `401`: Missing or invalid API key (`unauthorized`).
- `403`: The key is read-only and may not write (`forbidden`).
- `404`: Resource not found in this org (`not_found`).

---

[API](https://skmtc.dev/pencil/apis/pencil-public-api.md) · [All operations](https://skmtc.dev/pencil/apis/pencil-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pencil/apis/pencil-public-api/revisions/2b842698b76d?raw)
