Availability
Each option has its own calendar. The seller sets weekly start times or opening hours, the places on each start, and the days it doesn’t run; tourpingo works out each day from those, the bookings and the holds.
A month at a time
Section titled “A month at a time”GET /v1/public/options/{optionId}/calendar takes a month and answers
each day with its starts:
curl "https://api.stg.vacationpackagesoman.com/v1/public/options/9e4c2a71-3b5d-4e8f-a1c6-7d20f5b93e48/calendar?month=2026-11" \ -H "Tp-Publishable-Key: $TP_KEY"const res = await fetch("https://api.stg.vacationpackagesoman.com/v1/public/options/9e4c2a71-3b5d-4e8f-a1c6-7d20f5b93e48/calendar?month=2026-11", { headers: { "Tp-Publishable-Key": process.env.TP_KEY!, },})const answer = await res.json()Answer: 200 OK (shortened)
[ { "date": "2026-11-13", "status": "sold_out", "starts": [ { "time": "15:00", "status": "sold_out", "remaining": 0 } ] }, { "date": "2026-11-14", "status": "open", "starts": [ { "time": "15:00", "status": "open", "remaining": 14 } ] }, { "date": "2026-11-15", "status": "closed", "starts": [] }]Day or start status |
Meaning |
|---|---|
open |
Bookable. |
sold_out |
No places left. |
closed |
It doesn’t run then. |
past_cutoff |
Too late to book. |
remaining is the places left on a start, or null when the option
doesn’t count them (capacity_mode free_sale). A start’s time is
null when the option is open all day.
No prices on the calendar
Section titled “No prices on the calendar”The calendar says when, not how much. A price depends on the travellers, their ages, the extras and the currency, so ask for a quote once the traveller has chosen a day.
Places are held, then sold
Section titled “Places are held, then sold”Checking out takes a few minutes, so places are held first: a hold keeps
them for 15 minutes, and the calendar counts them as taken until the hold
ends or becomes a booking. A start can show sold_out and open again when
a hold runs out. See bookings and holds.
Times are the trip’s own
Section titled “Times are the trip’s own”Dates and times on the calendar, in quotes and on bookings are local to
where the trip starts (the trip’s timezone), never converted to the
traveller’s.