curl --request GET \
--url 'https://api.novacal.io/v1/event-types/123/slots?start=2026-05-29&end=2026-05-30&timezone=UTC' \
--header 'Authorization: Bearer <token>'
{
"success": true,
"data": {
"slots": {
"2026-05-29": [
{
"start": "2026-05-29T09:00:00+00:00",
"end": "2026-05-29T09:30:00+00:00"
},
{
"start": "2026-05-29T09:30:00+00:00",
"end": "2026-05-29T10:00:00+00:00"
}
]
}
}
}Availability
Get Slots
Retrieve bookable time slots for a Novacal event type, with duration, slot interval, buffers and minimum notice already applied.
GET
/
v1
/
event-types
/
{id}
/
slots
curl --request GET \
--url 'https://api.novacal.io/v1/event-types/123/slots?start=2026-05-29&end=2026-05-30&timezone=UTC' \
--header 'Authorization: Bearer <token>'
{
"success": true,
"data": {
"slots": {
"2026-05-29": [
{
"start": "2026-05-29T09:00:00+00:00",
"end": "2026-05-29T09:30:00+00:00"
},
{
"start": "2026-05-29T09:30:00+00:00",
"end": "2026-05-29T10:00:00+00:00"
}
]
}
}
}curl --request GET \
--url 'https://api.novacal.io/v1/event-types/123/slots?start=2026-05-29&end=2026-05-30&timezone=UTC' \
--header 'Authorization: Bearer <token>'
What this endpoint is for
Use this endpoint to get times a guest can actually book. Every slot returned is already valid, so you can render it straight into a booking UI and post it to Create Event.Slots versus availability
Get Availability returns the raw windows an organizer is free. This endpoint takes those windows and applies the event type’s rules for you:- The event type
duration, so each slot is the right length - The
time_slot_interval, which controls how often a slot starts buffer_time_before_eventandbuffer_time_after_eventmin_scheduling_notice, so slots too close to now are left out- Existing bookings and
booking_frequency_limits
Response shape
Slots are grouped by local date. A date with no bookable time is omitted, so an event type with nothing available returns an empty object.{
"success": true,
"data": {
"slots": {
"2026-05-29": [
{ "start": "2026-05-29T09:00:00+00:00", "end": "2026-05-29T09:30:00+00:00" },
{ "start": "2026-05-29T09:30:00+00:00", "end": "2026-05-29T10:00:00+00:00" }
]
}
}
}
timezone as an optional IANA timezone, such as Europe/Belgrade, to
receive slots converted to that timezone and grouped by local date. If omitted,
the response uses UTC.
Pass duration when the event type offers a choice of meeting lengths, to get
slots sized for the length the guest picked.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID of the event type to return slots for
Example:
123
Query Parameters
Start date for the requested range
Example:
"2026-05-29"
End date for the requested range
Example:
"2026-05-30"
Optional IANA timezone used to convert returned slots. Defaults to UTC.
Example:
"Europe/Belgrade"
Optional meeting length in minutes, for event types that offer a choice of durations. Defaults to the event type duration.
Required range:
1 <= x <= 1440Example:
30