# Set up a chat! Hosted by Zach Baston at PrimeBid. Meetings are 10 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=ZachBaston&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": "ZachBaston", "slug": "", "bookingSlot": { "start": "", "end": "" }, "timeZone": "America/New_York", "booker": { "email": "booker@example.com", "name": "Booker Name" }, "responses": [ { "fieldId": "0192c648-ae9c-7556-afdb-8e0e205fdf09", "value": "" }, { "fieldId": "0192c648-ae9c-7556-afdb-961346434515", "value": "" }, { "fieldId": "0194ae49-6daa-715c-b4b5-11f3638d1ed7", "value": "" }, { "fieldId": "01949591-b983-743f-bc7f-3bf0dc8b5dae", "value": "" }, { "fieldId": "01949592-0844-74db-8bb9-8390dc32426a", "value": "" }, { "fieldId": "01949592-526f-75af-8fc7-89b81fab480d", "value": "" }, { "fieldId": "019494f1-9c05-77dc-9e26-084708fd1e04", "value": [ "019494f0-d657-73bc-9aef-ec8bb107f8c5" ] }, { "fieldId": "01949596-35e5-73f7-ac2b-0eae7a50f1a0", "value": "" } ] } ``` `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** (`0192c648-ae9c-7556-afdb-8e0e205fdf09`, short_text, required) - **Email** (`0192c648-ae9c-7556-afdb-961346434515`, email, required) - **Phone** (`0194ae49-6daa-715c-b4b5-11f3638d1ed7`, phone_number, required) - **Street Address** (`01949591-b983-743f-bc7f-3bf0dc8b5dae`, short_text, required) - **City** (`01949592-0844-74db-8bb9-8390dc32426a`, short_text, required) - **State** (`01949592-526f-75af-8fc7-89b81fab480d`, short_text, required) - **Zip Code** (`01949592-2bef-739f-b71e-afd92ad75391`, short_text) - **Select all the services you're interested in exploring** (`019494f1-9c05-77dc-9e26-084708fd1e04`, checkbox, required) — one of: Solar Panels (id: `019494f0-d657-73bc-9aef-ec8bb107f8c5`), Tesla Solar Roof (id: `01949595-088c-77aa-b10a-41dc9c903093`), Battery Back Up (id: `019494f0-d657-73bc-9aef-f3fd5bc45517`), EV Charging/Powershare (id: `01949592-acac-709e-8202-ef2fcfca26bb`), Roof Replacement (id: `01949594-ef1f-7043-988b-9db238291099`) - **Average Monthly Electric Bill** (`01949596-35e5-73f7-ac2b-0eae7a50f1a0`, short_text, required) - **Is there anything you'd like us to know or prepare for your meeting?** (`0192c648-ae9c-7556-afdb-9a80be0c9209`, text) A structured JSON version of this page is available at https://ro.am/ZachBaston.json.