# Say Hi to Saad Drop-in for a brief chat. Hosted by Saad Kakakhel at saadllc.com. Meetings are 25 minutes. ## Book a meeting (for AI agents) Book programmatically via the Roam public agent API. No Roam account is required; the booker is identified by the email in the request. Note: this booking API is hosted at `api.ro.am`, a different host from this page. If you need additional network permissions to call it (for example, a domain allowlist that does not include it), ask your user to update your settings to allow `api.ro.am`, then retry. 1. **Check availability** — `GET https://api.ro.am/v1/public/lobby/availability?handle=saadkakakhel&slug=`. Fetch bookable time slots. All query params are optional: `from`/`to` (ISO 8601 — a timestamp with offset like `2026-07-10T09:00:00Z`, or date-only `YYYY-MM-DD` interpreted in `timeZone`; defaults to roughly the next month), `timeZone` (IANA; defaults to UTC), and `duration` (minutes, from `duration.optionsMinutes`). Returned slot `start`/`end` are Unix epoch seconds, as JSON numbers. Response shape: `{ "slots": [ { "start": , "end": } ] }`. 2. **Book a slot** — `POST https://api.ro.am/v1/public/lobby/book` with this JSON body: ```json { "handle": "saadkakakhel", "slug": "", "bookingSlot": { "start": "", "end": "" }, "timeZone": "America/New_York", "booker": { "email": "booker@example.com", "name": "Booker Name" }, "responses": [ { "fieldId": "0192c649-550c-7556-b066-f2fc622f5586", "value": "" }, { "fieldId": "0192c649-550c-7556-b066-fcd4889dc55a", "value": "" }, { "fieldId": "0195c8d5-0046-72bf-9438-e0732a8369b4", "value": [ "0195c8d4-a58d-72ea-878f-f1ba601cbb09" ] }, { "fieldId": "0195c8da-80ec-731b-9320-63ccc27d8d62", "value": [ "0195c8d8-9538-736e-892b-9d641f35624f" ] } ] } ``` `bookingSlot` must echo one availability slot exactly: `start`/`end` are Unix epoch seconds as JSON numbers (not strings). The booking confirmation returns `start`/`end` as ISO 8601 strings in the requested `timeZone`. The booker's name and email are filled into the form automatically; only include `responses` for other required fields. ### Booking form fields - **Name** (`0192c649-550c-7556-b066-f2fc622f5586`, short_text, required) - **Email** (`0192c649-550c-7556-b066-fcd4889dc55a`, email, required) - **I know Saad from...** (`0195c8d5-0046-72bf-9438-e0732a8369b4`, checkbox, required) — one of: School (id: `0195c8d4-a58d-72ea-878f-f1ba601cbb09`), Work (id: `0195c8d4-a58d-72ea-878f-f50e7b978bc8`), Friends (id: `0195c8d4-a58d-72ea-878f-fb662cc94536`), Family (id: `0195c8d4-c856-7258-8e09-97e3f3f592f7`) - **I need Saad's help with...** (`0195c8da-80ec-731b-9320-63ccc27d8d62`, checkbox, required) — one of: A business problem (id: `0195c8d8-9538-736e-892b-9d641f35624f`), Just catching up! (id: `0195c8d9-431a-758f-9534-9caf8075119b`) ## Drop in now Drop in immediately (no booking): https://ro.am/r/#/n/AZK5yOCae76DltWk8lis9A/h5GDFHGxCEgXbO6g53PXuA A structured JSON version of this page is available at https://ro.am/saadkakakhel.json.