---
title: "\"Let anyone who schedules with you see this\": promote a host-scoped save, confirmed by email"
method: POST
path: "/api/manual-availability/share"
---

# "Let anyone who schedules with you see this": promote a host-scoped save, confirmed by email

`POST /api/manual-availability/share`

## Request

- Base URL: `https://whenmeet.me`
- URL: `https://whenmeet.me/api/manual-availability/share`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Host-session`
  - none

After a save that went live only for the host whose ask-link k it carried, queue the same payload as a normal pending save (the same limits as POST /api/manual-availability; the issuer is noted, and its confirmation email and Confirm page say that host already sees the times). The confirmation click publishes it for everyone. k must be a valid host-issued signature for this email. Anonymous callers need a Turnstile token and may not use an address that has a connected account.

## Request body

- object
  - `email` string, email, required
  - `k` string, required: The host-issued ask-link signature `<issuerId>.<sig>`.
  - `payload` object, required
    - `windowFrom` integer, required
    - `windowTo` integer, required
    - `freeSlots` Interval[], required
      - `start` integer, required
      - `end` integer, required
    - `busySlots` Interval[]
      - `start` integer, required
      - `end` integer, required
  - `turnstileToken` string: Required for anonymous callers when Turnstile is configured.

## Response `202`

{ ok: true, pending: true, email } — a confirmation email went to that address.

- object
  - `ok` boolean
  - `pending` true
  - `email` string

## Other responses

- `400`: bad_request | invalid_email | invalid_k (missing, M7 issuer-less, owner proof or not valid for this email) | bad_window | window_out_of_range | too_many_slots | slots_out_of_window.
- `403`: turnstile_failed.
- `409`: account_exists (anonymous caller, the address has a connected calendar — sign in instead).
- `429`: rate_limited (30 saves/h per email, or a confirmation-email limit; nothing stored).
- `502`: email_failed (the confirmation email could not be sent; nothing kept).

---

[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)
