---
title: "Confirm a meeting"
method: POST
path: "/api/meetings/{id}/confirm"
tags: ["Meetings"]
---

# Confirm a meeting

`POST /api/meetings/{id}/confirm`

## Request

- Base URL: `https://api.wondercal.com`
- URL: `https://api.wondercal.com/api/meetings/{id}/confirm`
- Auth: HTTP bearer

Confirms a meeting at a specific time. Creates Google Calendar events for participants and sends email notifications. Only the organizer can confirm.

## Path parameters

- `id` string, required

## Headers

- `Idempotency-Key` string

## Request body

- ConfirmMeetingRequest
  - `time` string, date-time, required: ISO 8601 datetime for the confirmed meeting time

## Response `200`

Meeting confirmed

- object
  - `data` ConfirmResponse
    - `confirmed` boolean
    - `time` string, date-time
    - `googleCalendarCreated` boolean: Whether a Google Calendar event was created
    - `emailSent` boolean: Whether notification emails were sent
    - `calendarLink` string, nullable: Link to the Google Calendar event, if created
    - `errors` string[]: Non-fatal errors during confirmation (e.g., email send failure)

## Other responses

- `400`: Validation error (missing time, already confirmed)
- `401`: Not authenticated
- `403`: User is not the organizer
- `404`: Meeting not found
- `409`: Idempotency-Key conflict. Two possible cases: (1) Permanent conflict — the same key was previously used with a different request body. Use a new key for this request. No Retry-After header is present. (2) Transient conflict — a request with the same key is still being processed. The Retry-After header indicates when to retry the identical request.
- `413`: Request body exceeds 1 MB limit
- `429`: Rate limit exceeded. The Retry-After header indicates how many seconds to wait before retrying.

---

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