Book a meeting
create_bookingBooks start, which must be one of the slots from get_available_slots. Free events are confirmed at once, unless the event type has requiresApproval: then it's a request (status=pending_approval) that holds the time until a host approves or declines it, and the invitee hears either way by email. Nobody answering by its start (holdExpiresAt) lets it lapse. Tell the human it isn't confirmed yet. Paid events return status=pending_payment and a paymentUrl. Give it to the human to pay before holdExpiresAt, or the slot is released. Once confirmed, the event is added to the host's calendar if they connected one, and the invitee gets a confirmation email with a calendar file (.ics). Keep manageUrl and token: they are the only way to view, reschedule or cancel later. 409 slot_unavailable says why the time can't be booked and lists the nearest open times. The result's when is the start in the invitee's time zone, to tell them.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | the invitee's full name | |
| slug | Yes | an event type slug from get_public_profile ("demo" in meettempi.com/acme/demo), or the whole link | |
| cover | No | leave it out: the id of the painting the booking page showed, when the event type shows a different one each booking (cover "hand", "light" or "still"), so the booking keeps it. Anything else is ignored, and Tempi picks one | |
| Yes | the invitee's email address, which gets the confirmation and its calendar file | ||
| notes | No | anything the invitee wants the host to know | |
| phone | No | the invitee's phone number with its country code, like +1 415 555 0134: required when the event type is a phone call (whereKind phone on get_public_profile), where the host calls them | |
| start | Yes | one of the `slots` values from get_available_slots, as given (ISO in UTC) | |
| handle | Yes | a handle, the first part of a booking link ("acme" in meettempi.com/acme/demo), or the whole link | |
| repeat | No | book a series instead: `count` meetings, `every` 1, 2 or 4 weeks at the host's clock time, when the event type's repeatMax allows. All or nothing: check_series first. The result's `series.meetings` give each start as `when` in the invitee's time zone, and `series.clockNote` says when that moves | |
| timezone | Yes | the invitee's time zone, an IANA id like America/New_York or an abbreviation like EST: their emails and reminders show times in it |