> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # ListEventTimeSlots # Package: timeSlots # Namespace: EventTimeSlots # Method link: https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/list-event-time-slots.md ## Permission Scopes: Read Bookings Calendar Availability: SCOPE.DC-BOOKINGS.READ-CALENDAR ## Introduction Retrieves a list of class session time slots that match the provided filters. --- ## REST API ### Schema ``` Method: listEventTimeSlots Description: Retrieves a list of class session time slots that match the provided filters. ### Defaults List Event Time Slots uses the following defaults: - `providerId` set to the Bookings app GUID. - `timeZone` set to the business time zone. - `cursorPaging.limit` set to `50`. - Returns both bookable and non-bookable time slots. Time slots are always sorted by their `localStartDate` in ascending order. ### Service type limitations To retrieve appointment availability, call [List Availability Time Slots](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/list-availability-time-slots.md). To retrieve course availability, follow the [End-to-End Booking Flow for courses](https://dev.wix.com/docs/api-reference/business-solutions/bookings/end-to-end-booking-flows.md#book-a-course). ### Booking policy filtering Use `bookingPolicyViolations` to filter slots based on booking restrictions defined in your [booking policies](https://dev.wix.com/docs/api-reference/business-solutions/bookings/policies/booking-policies/introduction.md). *Default behavior**: When you don't specify any `bookingPolicyViolations` filters, all slots are returned regardless of their booking policy status. - Set `tooEarlyToBook` to `true` to retrieve slots that can't be booked yet due to minimum advance booking time restrictions. Currently, you can't specify `earliestBookingDate` to further filter by when the slot becomes bookable. - Set `tooLateToBook` to `true` to retrieve slots that can no longer be booked due to maximum advance booking time restrictions. - Set `bookOnlineDisabled` to `true` or `false` to filter by online booking availability settings. URL: https://www.wixapis.com/_api/service-availability/v2/time-slots/event Method: POST Method parameters: param name: bookingPolicyViolations | type: BookingPolicyViolations - name: tooEarlyToBook | type: boolean | description: Whether it's too early for customers to book the slot. By default, all slots are returned. Specifying `{"tooEarlyToBook": false}` returns only those that customers can already book, while specifying `{"tooEarlyToBook": true}` returns only those that can't be booked yet. - name: earliestBookingDate | type: string | description: Earliest time for booking the slot in `YYYY-MM-DDThh:mm:ss.sssZ` format. *In responses**: Contains a value when `tooEarlyToBook` is `true`, indicating the earliest time customers can book the slot. *In requests**: Don't specify a value for this field. Use `tooEarlyToBook` to filter slots that can't be booked yet due to minimum advance booking time restrictions. - name: tooLateToBook | type: boolean | description: Whether it's too late for customers to book the slot. By default, all slots are returned. Specifying `{"tooLateToBook": false}` returns only those that customers can still book, while specifying `{"tooLateToBook": true}` returns only those that can no longer be booked. - name: bookOnlineDisabled | type: boolean | description: Whether customers can book the service online. By default, both services with online booking enabled and disabled are returned. Providing the boolean set to `true` or `false` returns only matching slots. param name: cursorPaging | type: CursorPaging - name: limit | type: integer | description: Number of results to load. Default: `1000`. Max: `1000`. - name: cursor | type: string | description: Pointer to the next or previous page in the list of results. You can get the relevant cursor token from the `pagingMetadata` object in the previous call's response. Not relevant for the first request. param name: eventFilter | type: eventFilter | description: Optional filter to apply to the events, for example resource or location. See [Query Events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/query-events.md) for a list of supported filters. param name: fromLocalDate | type: fromLocalDate | description: Lower boundary for `localStartDate` to include in the response. Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate`. Required unless you specify `cursorPaging.cursor`. Local start date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`. param name: includeNonBookable | type: includeNonBookable | description: Whether to include time slots that aren't bookable according to the service's booking policy or that are fully booked. - `true`: Both bookable and non-bookable time slots are returned. - `false`: Only bookable time slots are returned. Default: `true` param name: maxSlotsPerDay | type: maxSlotsPerDay | description: Maximum number of slots to return for each day in the specified time range. If both bookable and non-bookable slots exist on the same day, bookable slots are returned first. When you specify `maxSlotsPerDay`, you must also specify `toLocalDate`, and it must be no more than 1 month after `fromLocalDate`. param name: minBookableCapacity | type: minBookableCapacity | description: Minimum bookable capacity. Use to filter out sessions that can't accommodate the desired party size. param name: serviceIds | type: array | description: Optional service GUIDs to filter the response. If not provided, time slots for all services are returned. param name: timeZone | type: timeZone | description: Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values. For example, `America/New_York` or `UTC`. Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties.md). param name: toLocalDate | type: toLocalDate | description: Upper boundary for `localStartDate` to include in the response. Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate`. Required unless you specify `cursorPaging.cursor`. Local end date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`. Return type: ListEventTimeSlotsResponse - name: timeSlots | type: array | description: Retrieved time slots matching the specified filters. - name: serviceId | type: string | description: [Service GUID] (https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md). Available only for single-service bookings. For multi-service bookings, this field is empty and individual service GUIDs are provided in `nestedTimeSlots`. - name: localStartDate | type: string | description: Local start date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`. For multi-service bookings, this represents the start time of the first service in the sequence. In `ListAvailabilityTimeSlotEndOptions`, this is identical on every entry and equals the request's `localStartDate`. - name: localEndDate | type: string | description: Local end date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T14:00:00`. For multi-service bookings, this represents the end time of the last service in the sequence. - name: bookable | type: boolean | description: Whether customers can book the slot according to the service's [booking policies](https://dev.wix.com/docs/api-reference/business-solutions/bookings/policies/booking-policies/introduction.md). For multi-service bookings, this is `true` only when all services in the sequence comply with their respective booking policies. - name: location | type: Location | description: Information about where the business provides the service to the customer. In `ListAvailabilityTimeSlotEndOptions`, this is the requested location, identical on every entry. - name: id | type: string | description: [Location GUID](https://dev.wix.com/docs/api-reference/business-management/locations/introduction.md). Available only for business locations. - name: name | type: string | description: Location name. - name: formattedAddress | type: string | description: Formatted location address. - name: locationType | type: LocationType | description: Location type. - enum: - BUSINESS: A business location, either the default business address, or locations defined for the business by the Business Info. - CUSTOM: The location is unique to this service and isn't defined as 1 of the business locations. - CUSTOMER: The location can be determined by the customer and isn't set up beforehand. - name: eventInfo | type: EventInfo | description: Information about the [event](https://dev.wix.com/docs/api-reference/business-management/calendar/events-v3/introduction.md) related to the slot. Available only for classes. Not available for appointment-based services and courses. - name: eventId | type: string | description: Event GUID. - name: waitingList | type: WaitingList | description: Information about the event's waitlist. Available only if the service has a waitlist. - name: totalCapacity | type: integer | description: Total number of spots in the waitlist. - name: remainingCapacity | type: integer | description: Number of remaining spots in the waitlist. For example, an event with a waitlist for 10 people and 3 registrants, results in a remaining capacity of `7`. - name: eventTitle | type: string | description: Event title. - name: totalCapacity | type: integer | description: Total number of spots for the slot. For multi-service bookings, this is always `1` because customers book the entire service sequence as a single unit. In `ListAvailabilityTimeSlotEndOptions`, capacity reflects whether at least one resource can cover `[localStartDate, localEndDate]`; the specific resource is selected later via `GetAvailabilityTimeSlot`. - name: remainingCapacity | type: integer | description: Remaining number of spots for the slot. - For appointment bookings: Either `1` (available) or `0` (unavailable). - For classes: Total capacity minus booked spots. Doesn't account for waitlist reservations. For classes with waitlists, use `bookableCapacity` to get the actual number of spots customers can book. - For courses: Total capacity minus booked spots. Courses don't currently support waitlists. In `ListAvailabilityTimeSlotEndOptions`, capacity reflects whether at least one resource can cover `[localStartDate, localEndDate]`; the specific resource is selected later via `GetAvailabilityTimeSlot`. - name: bookableCapacity | type: integer | description: Number of spots that customers can book for the slot. Calculated as the remaining capacity minus the spots reserved for the waitlist. If the service has no waitlist, identical to `remainingCapacity`. For multi-service bookings, this is either `1` (sequence can be booked) or `0` (sequence can't be booked). In `ListAvailabilityTimeSlotEndOptions`, capacity reflects whether at least one resource can cover `[localStartDate, localEndDate]`; the specific resource is selected later via `GetAvailabilityTimeSlot`. - name: bookingPolicyViolations | type: BookingPolicyViolations | description: Information about booking policy violations for the slot. For multi-service bookings, this aggregates violations from all services in the sequence. - name: tooEarlyToBook | type: boolean | description: Whether it's too early for customers to book the slot. By default, all slots are returned. Specifying `{"tooEarlyToBook": false}` returns only those that customers can already book, while specifying `{"tooEarlyToBook": true}` returns only those that can't be booked yet. - name: earliestBookingDate | type: string | description: Earliest time for booking the slot in `YYYY-MM-DDThh:mm:ss.sssZ` format. *In responses**: Contains a value when `tooEarlyToBook` is `true`, indicating the earliest time customers can book the slot. *In requests**: Don't specify a value for this field. Use `tooEarlyToBook` to filter slots that can't be booked yet due to minimum advance booking time restrictions. - name: tooLateToBook | type: boolean | description: Whether it's too late for customers to book the slot. By default, all slots are returned. Specifying `{"tooLateToBook": false}` returns only those that customers can still book, while specifying `{"tooLateToBook": true}` returns only those that can no longer be booked. - name: bookOnlineDisabled | type: boolean | description: Whether customers can book the service online. By default, both services with online booking enabled and disabled are returned. Providing the boolean set to `true` or `false` returns only matching slots. - name: availableResources | type: array | description: List of [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction.md) available during the time slot. Available only for single-service bookings. For multi-service bookings, resource information is provided in `nestedTimeSlots`. __Note__: Behavior varies by method: - For [List Availability Time Slots](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/list-availability-time-slots.md), this list is empty by default. To include resource details, specify `includeResourceTypeIds` or `resourceIds` in the request. - For [Get Availability Time Slot](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/get-availability-time-slot.md), all resources are returned by default. - **End options** (`ListAvailabilityTimeSlotEndOptions`): Always empty. The response does not surface resource lists for end options. If the customer hasn't already picked a resource earlier in the flow, call `GetAvailabilityTimeSlot` with the picked `localEndDate` to retrieve candidate resources before booking; if a resource is already chosen, pass it through to booking directly. - name: resourceTypeId | type: string | description: [Resource type GUID](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction.md). - name: resources | type: array | description: Details about resources available during the time slot. Behavior varies by method: List methods (List Availability Time Slots and List Multi Service Availability Time Slots): - Empty by default. - Up to 10 resources when specifying `includeResourceTypeIds` or `resourceIds` in the request. Get methods (Get Availability Time Slots and Get Multi Service Availability Time Slots): - All resources by default. - Filtered resources when specifying `includeResourceTypeIds` or `resourceIds` in the request. - name: id | type: string | description: Resource GUID. - name: name | type: string | description: Resource name. - name: hasMoreAvailableResources | type: boolean | description: Whether there are more available resources for the slot than those listed in `resources`. - name: nestedTimeSlots | type: array | description: Nested time slots for multi-service bookings. Each nested slot represents 1 service in the sequence, ordered according to the service sequence specified in the request. Available only for multi-service bookings. Empty for single-service bookings. - name: serviceId | type: string | description: Service GUID of the nested time slot. - name: localStartDate | type: string | description: Local start date of the nested time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`. - name: localEndDate | type: string | description: Local end date of the nested time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`. - name: availableResources | type: array | description: List of [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction.md) available during the nested time slot. - name: scheduleId | type: string | description: The schedule GUID associated with this nested time slot. Same as the service's schedule GUID. - name: nonBookableReasons | type: NonBookableReasons | description: Information about why customers can't book the time slot. - name: noRemainingCapacity | type: boolean | description: Whether the slot is fully booked with no remaining capacity. - name: violatesBookingPolicy | type: boolean | description: Whether booking the slot violates any of the service's booking policies. - name: reservedForWaitingList | type: boolean | description: Whether the slot is reserved for the waitlist. A new customer can't book the reserved slot. - name: eventCancelled | type: boolean | description: Whether the related event is cancelled. - name: scheduleId | type: string | description: Schedule GUID associated with this time slot. Same as the service's schedule GUID. - name: allDay | type: boolean | description: Whether this time slot spans one or more full days. Populated only for class- and course-based services. Not populated for appointment-based services. When `true`, `localStartDate` is `00:00:00` of the first day and `localEndDate` is `00:00:00` of the day after the last day (exclusive). Midnight boundaries are interpreted in the event's `timeZone`. The time component should be ignored for display purposes. Default: `false` - name: timeZone | type: string | description: Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values. For example, `America/New_York` or `UTC`. Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties.md). - name: pagingMetadata | type: CursorPagingMetadata | description: Paging metadata for the next page of results. Contains a cursor if more data is available. - name: cursors | type: Cursors | description: Offset that was requested. - name: next | type: string | description: Cursor pointing to next page in the list of results. - name: prev | type: string | description: Cursor pointing to previous page in the list of results. - name: hasNext | type: boolean | description: Indicates if there are more results after the current page. If `true`, another page of results can be retrieved. If `false`, this is the last page. ``` ### Examples ### List Event Time Slots with Cursor Pagination Retrieves the next page of event time slots using cursor pagination from a previous request. ```curl curl -X POST 'https://www.wixapis.com/_api/service-availability/v2/time-slots/event' \ -H 'Authorization: ' \ -d '{ "cursorPaging": { "cursor": "JWE.eyJhbGciOiJBMTI4S1ciLCJlbmMiOiJBMTI4Q0JDLUhTMjU2Iiwia2lkIjoiSGp3NWZDbWcifQ.kCW5RwNpPpNdpalS-nxAScn6FH-12OdjWiMqGhwJ7Ih0HLuiVHE_wA._J9j4MZvKvFWRCjMu1i_zg.o4-JRrCIRBujQax6xtQXksv2OjTDTS5X_dE0mUGq1809x1vbZ6hM20cvDjdkR43hw7p9LMnvSYbPE2c2LKtxP4C_bErpv3QxSfWOcXX8zRefWyWTfK0W87J2h-fHKXT1xp6B_SOOA2dsQ0Ho691qnBUhV-qhlwcCYy1ZXBsdUp2_qt8oDKuXGwuTgU35Jd9swc0ZjtkERCSDTPrtiXfjz_Kqwe-AGsJCkdtReYknlnZrV3KHwBRUMoCVN7mP9xWUbO0lSBOK_Pzzm0g1hqfae21jkfQZw9_S9JO7aoLt3lZzg-AjBQMdbzu_zQG5tItyZMd90pNLAYACtllWjs034PtSG4V0Y0KV9xjVXbxapcXGRcfjtGzTKAitaE8H9liReEG_58bVcGuWXXTlLRGncb0PU2qFDh8x4jarodc6l1p2ho6v6_PGb-gUrPmW4OLa3rcC9FfgLqCINJ8Lh1obzSCQ8if2xRcfQb5R25c58IGgaQgI-syYmVeKZ83JOF3TStASBGNif12ODo2xxZnN7eSmCa7jW6gzgERs2V7WNAljmAIUJfEd1AiCX1vVgQ6v1CrFrRfVTQxC6_P6-P6xLbmoqgqatq4T0M6-MYK2eHc.jGzu9sRG8ssk5wY_nf07rg", "limit": 2 } }' ``` ### Available class sessions with minimum capacity Lists available yoga class sessions that have at least 2 open spots, suitable for group booking scenarios. ```curl curl -X POST 'https://www.wixapis.com/_api/service-availability/v2/time-slots/event' \ -H 'Authorization: ' \ -d '{ "fromLocalDate": "2025-09-01T00:00:00", "toLocalDate": "2025-09-07T23:59:59", "timeZone": "America/New_York", "includeNonBookable": false, "cursorPaging": { "limit": 3 } }' ``` ### List Event Time Slots - Weekly Schedule Retrieves at most one event time slot per day for a weekly schedule (7 days) using maxSlotsPerDay filter for a specific service. ```curl curl -X POST 'https://www.wixapis.com/_api/service-availability/v2/time-slots/event' \ -H 'Authorization: ' \ -d '{ "fromLocalDate": "2025-09-04T00:00:00", "toLocalDate": "2025-09-10T23:59:59", "timeZone": "America/New_York", "serviceIds": [ "ecbf8d5f-abef-40de-9831-96ef99882450" ], "includeNonBookable": false, "maxSlotsPerDay": 1, "cursorPaging": { "limit": 10 } }' ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.timeSlots.EventTimeSlots.listEventTimeSlots(options) Description: Retrieves a list of class session time slots that match the provided filters. ### Defaults List Event Time Slots uses the following defaults: - `providerId` set to the Bookings app GUID. - `timeZone` set to the business time zone. - `cursorPaging.limit` set to `50`. - Returns both bookable and non-bookable time slots. Time slots are always sorted by their `localStartDate` in ascending order. ### Service type limitations To retrieve appointment availability, call [List Availability Time Slots](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/list-availability-time-slots.md). To retrieve course availability, follow the [End-to-End Booking Flow for courses](https://dev.wix.com/docs/api-reference/business-solutions/bookings/end-to-end-booking-flows.md#book-a-course). ### Booking policy filtering Use `bookingPolicyViolations` to filter slots based on booking restrictions defined in your [booking policies](https://dev.wix.com/docs/api-reference/business-solutions/bookings/policies/booking-policies/introduction.md). *Default behavior**: When you don't specify any `bookingPolicyViolations` filters, all slots are returned regardless of their booking policy status. - Set `tooEarlyToBook` to `true` to retrieve slots that can't be booked yet due to minimum advance booking time restrictions. Currently, you can't specify `earliestBookingDate` to further filter by when the slot becomes bookable. - Set `tooLateToBook` to `true` to retrieve slots that can no longer be booked due to maximum advance booking time restrictions. - Set `bookOnlineDisabled` to `true` or `false` to filter by online booking availability settings. Method parameters: param name: options | type: ListEventTimeSlotsOptions none - name: fromLocalDate | type: string | description: Lower boundary for `localStartDate` to include in the response. Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate`. Required unless you specify `cursorPaging.cursor`. Local start date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`. - name: toLocalDate | type: string | description: Upper boundary for `localStartDate` to include in the response. Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate`. Required unless you specify `cursorPaging.cursor`. Local end date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`. - name: timeZone | type: string | description: Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values. For example, `America/New_York` or `UTC`. Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties.md). - name: serviceIds | type: array | description: Optional service GUIDs to filter the response. If not provided, time slots for all services are returned. - name: includeNonBookable | type: boolean | description: Whether to include time slots that aren't bookable according to the service's booking policy or that are fully booked. - `true`: Both bookable and non-bookable time slots are returned. - `false`: Only bookable time slots are returned. Default: `true` - name: minBookableCapacity | type: integer | description: Minimum bookable capacity. Use to filter out sessions that can't accommodate the desired party size. - name: eventFilter | type: object | description: Optional filter to apply to the events, for example resource or location. See [Query Events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/query-events.md) for a list of supported filters. - name: maxSlotsPerDay | type: integer | description: Maximum number of slots to return for each day in the specified time range. If both bookable and non-bookable slots exist on the same day, bookable slots are returned first. When you specify `maxSlotsPerDay`, you must also specify `toLocalDate`, and it must be no more than 1 month after `fromLocalDate`. - name: cursorPaging | type: CursorPaging | description: Cursor-based paging configuration. Enables fetching results in smaller chunks by setting a limit on the number of returned items. - name: limit | type: integer | description: Number of results to load. Default: `1000`. Max: `1000`. - name: cursor | type: string | description: Pointer to the next or previous page in the list of results. You can get the relevant cursor token from the `pagingMetadata` object in the previous call's response. Not relevant for the first request. - name: bookingPolicyViolations | type: BookingPolicyViolations | description: Indicators for service's booking policy violations. Allows filtering for time slots with specific violation types based on [booking policies](https://dev.wix.com/docs/api-reference/business-solutions/bookings/policies/booking-policies/introduction.md). When you don't specify `bookingPolicyViolations` filters, all slots are returned regardless of their booking policy status. - name: tooEarlyToBook | type: boolean | description: Whether it's too early for customers to book the slot. By default, all slots are returned. Specifying `{"tooEarlyToBook": false}` returns only those that customers can already book, while specifying `{"tooEarlyToBook": true}` returns only those that can't be booked yet. - name: earliestBookingDate | type: Date | description: Earliest time for booking the slot in `YYYY-MM-DDThh:mm:ss.sssZ` format. *In responses**: Contains a value when `tooEarlyToBook` is `true`, indicating the earliest time customers can book the slot. *In requests**: Don't specify a value for this field. Use `tooEarlyToBook` to filter slots that can't be booked yet due to minimum advance booking time restrictions. - name: tooLateToBook | type: boolean | description: Whether it's too late for customers to book the slot. By default, all slots are returned. Specifying `{"tooLateToBook": false}` returns only those that customers can still book, while specifying `{"tooLateToBook": true}` returns only those that can no longer be booked. - name: bookOnlineDisabled | type: boolean | description: Whether customers can book the service online. By default, both services with online booking enabled and disabled are returned. Providing the boolean set to `true` or `false` returns only matching slots. Return type: PROMISE - name: timeSlots | type: array | description: Retrieved time slots matching the specified filters. - name: serviceId | type: string | description: [Service GUID] (https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md). Available only for single-service bookings. For multi-service bookings, this field is empty and individual service GUIDs are provided in `nestedTimeSlots`. - name: localStartDate | type: string | description: Local start date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`. For multi-service bookings, this represents the start time of the first service in the sequence. In `ListAvailabilityTimeSlotEndOptions`, this is identical on every entry and equals the request's `localStartDate`. - name: localEndDate | type: string | description: Local end date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T14:00:00`. For multi-service bookings, this represents the end time of the last service in the sequence. - name: bookable | type: boolean | description: Whether customers can book the slot according to the service's [booking policies](https://dev.wix.com/docs/api-reference/business-solutions/bookings/policies/booking-policies/introduction.md). For multi-service bookings, this is `true` only when all services in the sequence comply with their respective booking policies. - name: location | type: Location | description: Information about where the business provides the service to the customer. In `ListAvailabilityTimeSlotEndOptions`, this is the requested location, identical on every entry. - name: _id | type: string | description: [Location GUID](https://dev.wix.com/docs/api-reference/business-management/locations/introduction.md). Available only for business locations. - name: name | type: string | description: Location name. - name: formattedAddress | type: string | description: Formatted location address. - name: locationType | type: LocationType | description: Location type. - enum: - BUSINESS: A business location, either the default business address, or locations defined for the business by the Business Info. - CUSTOM: The location is unique to this service and isn't defined as 1 of the business locations. - CUSTOMER: The location can be determined by the customer and isn't set up beforehand. - name: eventInfo | type: EventInfo | description: Information about the [event](https://dev.wix.com/docs/api-reference/business-management/calendar/events-v3/introduction.md) related to the slot. Available only for classes. Not available for appointment-based services and courses. - name: eventId | type: string | description: Event GUID. - name: waitingList | type: WaitingList | description: Information about the event's waitlist. Available only if the service has a waitlist. - name: totalCapacity | type: integer | description: Total number of spots in the waitlist. - name: remainingCapacity | type: integer | description: Number of remaining spots in the waitlist. For example, an event with a waitlist for 10 people and 3 registrants, results in a remaining capacity of `7`. - name: eventTitle | type: string | description: Event title. - name: totalCapacity | type: integer | description: Total number of spots for the slot. For multi-service bookings, this is always `1` because customers book the entire service sequence as a single unit. In `ListAvailabilityTimeSlotEndOptions`, capacity reflects whether at least one resource can cover `[localStartDate, localEndDate]`; the specific resource is selected later via `GetAvailabilityTimeSlot`. - name: remainingCapacity | type: integer | description: Remaining number of spots for the slot. - For appointment bookings: Either `1` (available) or `0` (unavailable). - For classes: Total capacity minus booked spots. Doesn't account for waitlist reservations. For classes with waitlists, use `bookableCapacity` to get the actual number of spots customers can book. - For courses: Total capacity minus booked spots. Courses don't currently support waitlists. In `ListAvailabilityTimeSlotEndOptions`, capacity reflects whether at least one resource can cover `[localStartDate, localEndDate]`; the specific resource is selected later via `GetAvailabilityTimeSlot`. - name: bookableCapacity | type: integer | description: Number of spots that customers can book for the slot. Calculated as the remaining capacity minus the spots reserved for the waitlist. If the service has no waitlist, identical to `remainingCapacity`. For multi-service bookings, this is either `1` (sequence can be booked) or `0` (sequence can't be booked). In `ListAvailabilityTimeSlotEndOptions`, capacity reflects whether at least one resource can cover `[localStartDate, localEndDate]`; the specific resource is selected later via `GetAvailabilityTimeSlot`. - name: bookingPolicyViolations | type: BookingPolicyViolations | description: Information about booking policy violations for the slot. For multi-service bookings, this aggregates violations from all services in the sequence. - name: tooEarlyToBook | type: boolean | description: Whether it's too early for customers to book the slot. By default, all slots are returned. Specifying `{"tooEarlyToBook": false}` returns only those that customers can already book, while specifying `{"tooEarlyToBook": true}` returns only those that can't be booked yet. - name: earliestBookingDate | type: Date | description: Earliest time for booking the slot in `YYYY-MM-DDThh:mm:ss.sssZ` format. *In responses**: Contains a value when `tooEarlyToBook` is `true`, indicating the earliest time customers can book the slot. *In requests**: Don't specify a value for this field. Use `tooEarlyToBook` to filter slots that can't be booked yet due to minimum advance booking time restrictions. - name: tooLateToBook | type: boolean | description: Whether it's too late for customers to book the slot. By default, all slots are returned. Specifying `{"tooLateToBook": false}` returns only those that customers can still book, while specifying `{"tooLateToBook": true}` returns only those that can no longer be booked. - name: bookOnlineDisabled | type: boolean | description: Whether customers can book the service online. By default, both services with online booking enabled and disabled are returned. Providing the boolean set to `true` or `false` returns only matching slots. - name: availableResources | type: array | description: List of [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction.md) available during the time slot. Available only for single-service bookings. For multi-service bookings, resource information is provided in `nestedTimeSlots`. __Note__: Behavior varies by method: - For [List Availability Time Slots](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/list-availability-time-slots.md), this list is empty by default. To include resource details, specify `includeResourceTypeIds` or `resourceIds` in the request. - For [Get Availability Time Slot](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/get-availability-time-slot.md), all resources are returned by default. - **End options** (`ListAvailabilityTimeSlotEndOptions`): Always empty. The response does not surface resource lists for end options. If the customer hasn't already picked a resource earlier in the flow, call `GetAvailabilityTimeSlot` with the picked `localEndDate` to retrieve candidate resources before booking; if a resource is already chosen, pass it through to booking directly. - name: resourceTypeId | type: string | description: [Resource type GUID](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction.md). - name: resources | type: array | description: Details about resources available during the time slot. Behavior varies by method: List methods (List Availability Time Slots and List Multi Service Availability Time Slots): - Empty by default. - Up to 10 resources when specifying `includeResourceTypeIds` or `resourceIds` in the request. Get methods (Get Availability Time Slots and Get Multi Service Availability Time Slots): - All resources by default. - Filtered resources when specifying `includeResourceTypeIds` or `resourceIds` in the request. - name: _id | type: string | description: Resource GUID. - name: name | type: string | description: Resource name. - name: hasMoreAvailableResources | type: boolean | description: Whether there are more available resources for the slot than those listed in `resources`. - name: nestedTimeSlots | type: array | description: Nested time slots for multi-service bookings. Each nested slot represents 1 service in the sequence, ordered according to the service sequence specified in the request. Available only for multi-service bookings. Empty for single-service bookings. - name: serviceId | type: string | description: Service GUID of the nested time slot. - name: localStartDate | type: string | description: Local start date of the nested time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`. - name: localEndDate | type: string | description: Local end date of the nested time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`. - name: availableResources | type: array | description: List of [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction.md) available during the nested time slot. - name: scheduleId | type: string | description: The schedule GUID associated with this nested time slot. Same as the service's schedule GUID. - name: nonBookableReasons | type: NonBookableReasons | description: Information about why customers can't book the time slot. - name: noRemainingCapacity | type: boolean | description: Whether the slot is fully booked with no remaining capacity. - name: violatesBookingPolicy | type: boolean | description: Whether booking the slot violates any of the service's booking policies. - name: reservedForWaitingList | type: boolean | description: Whether the slot is reserved for the waitlist. A new customer can't book the reserved slot. - name: eventCancelled | type: boolean | description: Whether the related event is cancelled. - name: scheduleId | type: string | description: Schedule GUID associated with this time slot. Same as the service's schedule GUID. - name: allDay | type: boolean | description: Whether this time slot spans one or more full days. Populated only for class- and course-based services. Not populated for appointment-based services. When `true`, `localStartDate` is `00:00:00` of the first day and `localEndDate` is `00:00:00` of the day after the last day (exclusive). Midnight boundaries are interpreted in the event's `timeZone`. The time component should be ignored for display purposes. Default: `false` - name: timeZone | type: string | description: Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values. For example, `America/New_York` or `UTC`. Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties.md). - name: pagingMetadata | type: CursorPagingMetadata | description: Paging metadata for the next page of results. Contains a cursor if more data is available. - name: cursors | type: Cursors | description: Offset that was requested. - name: next | type: string | description: Cursor pointing to next page in the list of results. - name: prev | type: string | description: Cursor pointing to previous page in the list of results. - name: hasNext | type: boolean | description: Indicates if there are more results after the current page. If `true`, another page of results can be retrieved. If `false`, this is the last page. ``` ### Examples ### listEventTimeSlots ```javascript import { eventTimeSlots } from '@wix/bookings'; async function listEventTimeSlots(options) { const response = await eventTimeSlots.listEventTimeSlots(options); }; ``` ### listEventTimeSlots (with elevated permissions) ```javascript import { eventTimeSlots } from '@wix/bookings'; import { auth } from '@wix/essentials'; async function myListEventTimeSlotsMethod(options) { const elevatedListEventTimeSlots = auth.elevate(eventTimeSlots.listEventTimeSlots); const response = await elevatedListEventTimeSlots(options); } ``` ### listEventTimeSlots (self-hosted) Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md). ```javascript import { createClient } from '@wix/sdk'; import { eventTimeSlots } from '@wix/bookings'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { eventTimeSlots }, // Include the auth strategy and host as relevant }); async function listEventTimeSlots(options) { const response = await myWixClient.eventTimeSlots.listEventTimeSlots(options); }; ``` ---