Step 3 — Create the Booking (Event)
Create the event booking using the selected sessionId and sessionTableId values retrieved in Step 2. This request links one or more consecutive sessions to a court and publishes the event.
Now that you have selected the correct sessions and extracted:
sessionIdsessionTableId
You can create the actual event booking.
This request links one or more consecutive sessions to the selected court and publishes the event.
Create the Booking Request
To create the event, send a POST request to:
POST /bookingsFull URL:
https://sandbox1.podplay.app/apis/v2/bookingsYou must include:
The event configuration (type, subtype, status, etc.)
An
items[]arrayOne object per session being booked
Example — 1-Hour Open Play Event
curl -sS -X POST \
-H "x-api-key: <your-api-key>" \
-H "Content-Type: application/json" \
"https://sandbox1.podplay.app/apis/v2/bookings" \
-d '{
"type": "ORDER",
"eventSubtype": "OPEN_PLAY",
"bookingMode": "FREE_OF_CHARGE",
"eventName": "Open Play Session",
"eventStatus": "PUBLISHED",
"admission": "OPEN",
"admissionRate": {
"regular": 0,
"membersDefault": 0,
"chargingStrategy": "SPOT"
},
"totalTeams": 0,
"teamSize": 0,
"termsAgreed": true,
"liabilityWaiverAgreed": true,
"eventFeatures": [],
"items": [
{
"session": {
"id": "b066d668-e64f-480a-ad31-110b3433c080@1772643600000"
},
"sessionTable": {
"id": "b066d668-e64f-480a-ad31-110b3433c080@61e3f1c2-d23b-4eb3-bebb-77c4eeda6d03@1772643600000"
}
},
{
"session": {
"id": "b066d668-e64f-480a-ad31-110b3433c080@1772645400000"
},
"sessionTable": {
"id": "b066d668-e64f-480a-ad31-110b3433c080@61e3f1c2-d23b-4eb3-bebb-77c4eeda6d03@1772645400000"
}
}
]
}'Understanding the Payload
The booking request contains two main parts:
Event configuration
Session allocation (
items[])
Event Configuration Fields
type
"ORDER"
Required. Use "ORDER" when creating an event booking.
eventSubtype
"OPEN_PLAY"
Defines the event category (e.g. "OPEN_PLAY", "ADULT_CLASS").
bookingMode
"FREE_OF_CHARGE"
Required for events. Indicates no payment is collected.
eventStatus
"PUBLISHED" or "DRAFT"
"PUBLISHED" makes the event visible to users. "DRAFT" keeps it hidden.
admission
"OPEN" or "MEMBERS_ONLY"
"OPEN" allows all players to join. "MEMBERS_ONLY" restricts participation.
Session Allocation (items[])
The items[] array defines which sessions are being booked.
Each object inside items[] represents:
One session
One specific court allocation for that session
Each item must contain:
A
session.idThe corresponding
sessionTable.id
These values are not generated here — they come directly from Step 2, when you retrieved available sessions and matched them to your selected tableId.
Structure
In this example, the two session objects used in the booking request are exactly the ones retrieved in Step 2 for:
How This Looks in the Admin Dashboard (EST Time)
After the booking is successfully created, the event becomes visible in the Admin calendar view.
Below is the Open Play event created for:
March 4th
17:00 → 18:00 UTC
Which corresponds to:
12:00 → 13:00 EST (New York)


Step 3 Completed — Event Successfully Created
At this point:
The booking request has been accepted (
201 Created)The Open Play event is visible in the Admin dashboard
The two 30-minute sessions are combined into one 1-hour event
The event is scheduled on:
March 4th
12:00 → 13:00 EST
Court 1 (C1)
The API and the Admin UI now reflect the same state.
In the next step, we will verify the event programmatically using the Events endpoint.
Last updated
Was this helpful?

