# Prepared EMS CPR Class with Prepared EMS

> Book a 4-hour CPR class block. BLS CPR runs 3 hours; Heartsaver CPR/AED/First Aid runs 4 hours. Book at least 7 days ahead. For dates more than a month out, email info@preparedems.com.

- Host: Prepared EMS
- Duration: 240 min
- Location: In Person (Attendee Address)
- Host time zone: America/Los_Angeles
- Confirmation: Bookings are confirmed instantly.
- Booking page: https://cal.com/preparedems/cpr-class
- Event type id: 7634531

## Check availability

```http
GET https://api.cal.com/v2/slots?eventTypeId=7634531&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": 7634531,
  "start": "<UTC ISO 8601 start from the slots response>",
  "attendee": {
    "name": "…",
    "email": "…",
    "timeZone": "<IANA time zone>"
  },
  "location": {
    "type": "attendeeAddress",
    "address": "…"
  },
  "guests": [
    "guest@example.com"
  ],
  "bookingFieldsResponses": {
    "attendeePhoneNumber": "…",
    "Which-class": "…",
    "Company-Organization-Agency": "…",
    "Location-of-Training--full-address": "…",
    "Number-of-Students--6-Minimum": "…",
    "Day-of-Contact-Name": "…",
    "Day-of-Contact-Phone": "…",
    "notes": "…"
  }
}
```

- Required fields: `name` (Your name), `email` (Email address), `attendeePhoneNumber` (Phone number), `Which-class` (Which class?), `Company-Organization-Agency` (Company/Organization/Agency), `Location-of-Training--full-address` (Location of Training (full address)), `Number-of-Students--6-Minimum` (Number of Students (6 Minimum)), `Day-of-Contact-Name` (Day-of Contact Name), `Day-of-Contact-Phone` (Day-of Contact Phone)
- 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.
- `location` is required: `location.address` is the attendee’s own.
