Title
Create new category
Edit page index title
Edit category
Edit link
Hours
The hours[] array describes the physical operating schedule of a Supplier, Product, or Rate - when the entity is open, active, or running. It defines the window during which a guest can actually attend an experience.
🏢 Entity Hierarchy
| Entity | Operational Function |
|---|---|
| Supplier | Usually used for Corporate Business Hours. Indicates when the operator's central customer service or head office is open to take inquiries. |
| Product | General Operating Hours. Indicates the overarching availability of the experience (e.g., "The Museum is open 09:00 to 17:00, Tuesday through Sunday"). |
| Rate | Also used for General Operating Hours or for the specific rate option hours. Indicates the overarching availability of the experience specific to that option. |
A Supplier can have hours details at all those 3 different levels or have the same values for all of them. It could be a product with the corresponding operating hours and then have rates under it with the specific hour times that the rate is valid for.
These hours are for informational purposes only and do not correspond to availability.
Hours vs. Availability vs. Validity
These three concepts are frequently confused. They are independent of each other and each serves a distinct purpose:
| Concept | Field | What it controls |
|---|---|---|
| Hours | hours[] | When the experience physically operates, the schedule of open days and times. |
| Valid | valid.from / valid.until | When the Rate is available for purchase, the booking sale window. |
| Availability | /availability endpoint | Real-time capacity and bookable slots - how many spots remain at a given time. |
Timezones and Datetime formats
To know the local timezone value, you should check the timezone field under the Rate (rates.hours.timezone). Within Travel Curious, we do a hierarchical check order to verify the rate, product, and supplier timezone, if not present at any of these levels Travel Curious defaults to UTC at that point.
These hours are for informational purposes only and do not correspond to availability.
Travel Curious Availabilities endpoint response start and end times will return the information in Zulu, with a value like 2023-10-06T11:00:00Z; check the timezone field on the rate response to convert availability into the appropriate timezone. If this conversion is not done, pricing and availability could return inaccurately, especially for those suppliers in a timezone that borders the end of day UTC.
Seasonal Hours with valid field
The valid field on an OpenHoursRule restricts when that rule is active. This is the correct way the Supplier would represent seasonal schedules:
xxxxxxxxxx"hours": [ { "timezone": "Europe/Madrid", "daysOfWeek": [1, 2, 3, 4, 5, 6, 7], "times": [{ "open": "10:00", "close": "20:00" }], "valid": { "from": "2026-06-01T00:00:00Z", "until": "2026-08-31T23:59:59Z" } }, { "timezone": "Europe/Madrid", "daysOfWeek": [1, 2, 3, 4, 5], "times": [{ "open": "10:00", "close": "17:00" }], "valid": { "from": "2026-09-01T00:00:00Z", "until": "2026-12-31T23:59:59Z" } }]The first rule applies every day during summer (extended hours). The second applies weekdays only in autumn (reduced hours). Neither conflict because their valid ranges do not overlap.
🔗 Find the full details here: Reseller API Reference
Questions? We'd love to hear them. Contact Travel Curious Support.