Book a free AfAMax initial call
book_appointmentBooks a free 15-minute initial phone call with the AfAMax team, in two steps.
STEP 1: after the user picked a slot from get_available_appointments, confirm the slot, their name and their own e-mail address with them, then call with startDateTime, name, email (and optionally phone, locale). AfAMax e-mails a 6-digit code to that address and returns status "verification_required" with a verificationId.
STEP 2: ask the user for the code from that e-mail and call again with only verificationId and otp. The code proves the address belongs to the user: use only the code the user gives you — never guess, invent or repeatedly retry codes. On success status is "booked" and a calendar invitation goes to the user.
Codes expire after 15 minutes and allow 5 attempts. If the slot was taken meanwhile, list slots again and offer another. If the e-mail belongs to an existing AfAMax account, the user must log in and book on the website (link in the error). Only book for the person you are talking to.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| otp | No | Step 2 — the 6-digit code the user received by e-mail. Only ever the code the user gives you; never guess or retry codes. / Der 6-stellige Code aus der E-Mail. | |
| name | No | Step 1 — the user's full name. / Vor- und Nachname. | |
| No | Step 1 — the user's own e-mail address; the 6-digit confirmation code is sent there. Confirm it with the user before calling. / E-Mail-Adresse für den Bestätigungscode. | ||
| phone | No | Step 1, optional — phone number for the call. / Telefonnummer für das Gespräch. | |
| locale | No | Step 1 — language of the confirmation e-mail, the appointment and the links (`de` if omitted); match the user's language. Step 2 keeps step 1's language unless set. / Sprache der E-Mails und des Termins. | |
| startDateTime | No | Step 1 — the chosen slot, copied exactly from get_available_appointments `startDateTime`. | |
| verificationId | No | Step 2 — the `verificationId` returned by step 1. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| meta | Yes | ||
| status | Yes | `verification_required`: ask the user for the code sent to `verification.maskedEmail`, then call again with verificationId + otp. `booked`: the appointment exists. | |
| requestId | Yes | ||
| appointment | Yes | ||
| attribution | Yes | ||
| verification | Yes |