# Pick my brain with Stefan Hager

> Not literally, I guess this might be unpleasant for the both of us. No, get some feedback on your idea, let's brainstorm or chat. There's no agenda, so please bring some questions or ideas what you'd like to talk about.

- Host: Stefan Hager
- Duration: 15, 30, 45 min
- Location: Zoom Video
- Host time zone: Europe/Berlin
- Confirmation: Bookings are confirmed instantly.
- Payment: required, and collected on the booking page.
- Booking page: https://cal.com/weirdness/pick-my-brain
- Event type id: 7328249

## Check availability

```http
GET https://api.cal.com/v2/slots?eventTypeId=7328249&start=YYYY-MM-DD&end=YYYY-MM-DD&timeZone=<IANA time zone>
cal-api-version: 2024-09-04
```

The response is `{"data":{"YYYY-MM-DD":[{"start":"<ISO 8601 with offset>"}]}}`; no API key is needed.

## Book

```http
POST https://api.cal.com/v2/bookings
cal-api-version: 2026-02-25
Content-Type: application/json

{
  "eventTypeId": 7328249,
  "start": "<UTC ISO 8601 start from the slots response>",
  "lengthInMinutes": 30,
  "attendee": {
    "name": "…",
    "email": "…",
    "timeZone": "<IANA time zone>"
  },
  "guests": [
    "guest@example.com"
  ],
  "bookingFieldsResponses": {
    "notes": "…"
  }
}
```

- Required fields: `name` (Your name), `email` (Email address)
- Optional fields: `notes` (Additional notes), `guests` (Add guests)
- `name` and `email` go in `attendee` and `guests` is a list of emails; every other field goes in `bookingFieldsResponses` under its name.
- `lengthInMinutes` picks one of 15, 30, 45; pass the same value to the slots request as `duration`.
