---
title: "Confirm a pending hand-marked save (the Confirm button on /free)"
method: POST
path: "/api/manual-availability/confirm"
---

# Confirm a pending hand-marked save (the Confirm button on /free)

`POST /api/manual-availability/confirm`

## Request

- Base URL: `https://whenmeet.me`
- URL: `https://whenmeet.me/api/manual-availability/confirm`
- Auth: none declared

No auth — the emailed token is the capability (single use, 7-day expiry, only its sha256 is stored). Publishes the save exactly like a live one (replacing that window; the rows carry the pending save's time, so a host-scoped save made after it still wins for that host) and drops it plus every older pending save for the address.

## Request body

- object
  - `t` string, required

## Response `200`

{ ok: true, email, k? } — the save is now live for everyone; k is the owner proof for the address (`.<sig>`, the click proved the mailbox), so the page's later edits save live for everyone without another email.

- object
  - `ok` boolean
  - `email` string
  - `k` string

## Other responses

- `400`: invalid_token (missing, unknown, used, expired or unreadable).

---

[API](https://skmtc.dev/whenmeet/apis/whenmeet-me-api.md) · [All operations](https://skmtc.dev/whenmeet/apis/whenmeet-me-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whenmeet/apis/whenmeet-me-api/revisions/202b80022215?raw)
