There are 3 modes how a product tours can be scheduled in Rezdy, they are called booking modes. It's necessary to take into account the differences between them, for displaying a product availability and making a booking using public API.
These 3 booking modes are:
- NO_DATE Do not ask for any date (I.e. open tickets valid 6 months from purchase date)
- DATE_ENQUIRY Require a date but the customer can choose any. There's no availability check.
- INVENTORY Require pre-populated availability (date+time)
In case of the NO_DATE products, there is no need to specify booking date and time in a booking request. (However there won't be an error if the startTime or startTimeLocal is specified in a booking request, just it won't be used)
We generate a fake session for the NO_DATE products into GET /availability response, the session startTimeLocal will be midnight and there will be always 999 seats available:
"startTimeLocal": "2016-07-01 00:00:00",
For the DATE_ENQUIRY products, the booking date and time is required, however there can be any booking date specified. For a booking time, it's a bit more tricky. Those product can be configure to accept any time or just predefined times. How to recognize, if any time is accepted?
We generate a session for DATE_ENQUIRY products into GET /availability response. If the product accept the any time booking, the session startTimeLocal will be a midnight - 00:00:00 time. Otherwise there will be a session for each predefined time.
Availability response - the DATE_ENQUIRY product, which accepts any time booking:
"startTimeLocal": "2016-06-01 00:00:00",
Availability response - the DATE_ENQUIRY product with predefined list of booking times (7:00 and 9:00 a.m.):
"startTimeLocal": "2016-05-31 07:00:00",
"startTimeLocal": "2016-05-31 09:00:00",
This mode is used by most of the products. It means the availability is defined by scheduled sessions. The booking date and time have to match a session startTime.
GET /availability response of INVENTORY mode products, will contain the list of scheduled sessions with a start time and seats available as the supplier scheduled:
"startTimeLocal": "2016-07-01 09:00:00",