> 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

# ListAvailabilityTimeSlotEndOptions

# Package: timeSlots

# Namespace: AvailabilityTimeSlots

# Method link: https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/list-availability-time-slot-end-options.md

## Permission Scopes:
Read Bookings Calendar Availability: SCOPE.DC-BOOKINGS.READ-CALENDAR

## Introduction

Retrieves the available end times for a selected start time of an appointment-based service configured with a duration range.


Call this after the customer selects a start time with [List Availability Time Slots](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/list-availability-time-slots.md). Each returned entry is a `TimeSlot` that shares the requested `localStartDate` and differs only in `localEndDate`. The response doesn't include resource lists.

Only supported for hourly duration-range services (services with `availabilityConstraints.durationRange.hourConfig` configured in [Services V2](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md)). Calling this for a fixed-duration or daily duration-range service returns `END_OPTIONS_NOT_SUPPORTED`.

---

## REST API

### Schema

```
 Method: listAvailabilityTimeSlotEndOptions
 Description: Retrieves the available end times for a selected start time of an appointment-based service configured with a duration range.   Call this after the customer selects a start time with [List Availability Time Slots](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/list-availability-time-slots.md). Each returned entry is a `TimeSlot` that shares the requested `localStartDate` and differs only in `localEndDate`. The response doesn't include resource lists.  Only supported for hourly duration-range services (services with `availabilityConstraints.durationRange.hourConfig` configured in [Services V2](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md)). Calling this for a fixed-duration or daily duration-range service returns `END_OPTIONS_NOT_SUPPORTED`.  ### Resource selection  Resource selection depends on the booking flow: - If the customer hasn't selected a resource yet, call [Get Availability Time Slot](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/get-availability-time-slot.md) with the selected `localEndDate` to retrieve candidate resources before booking. - If the customer selected a resource before the end time, pass that resource in `resourceTypes` so the response only includes end times that the selected resource can cover.  ### Time slot shape  The response uses the `TimeSlot` model with constrained semantics: - `localStartDate` and `location` are identical on every entry, echoing the request. - `localEndDate` varies across entries and represents each end option. - `availableResources` is always empty. Use [Get Availability Time Slot](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/get-availability-time-slot.md) to retrieve resources for a selected end time. - `eventInfo`, `nestedTimeSlots`, and `allDay` are not populated. - `totalCapacity` is always `1`.
 URL: https://www.wixapis.com/_api/service-availability/v2/time-slots/end-options
 Method: POST
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  serviceId, localStartDate, location
 Method parameters: 
   param name: localStartDate | type: localStartDate | description: Selected start time in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-03-23T10:00:00`. Each returned end option shares this start time. | required: true | validation: format LOCAL_DATE_TIME
   param name: location | type: Location   | required: true 
        - name: id | type: string | description: [Location GUID](https://dev.wix.com/docs/api-reference/business-management/locations/introduction.md). Available only for business locations.  | validation: format GUID
        - 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.
   param name: maxLocalEndDate | type: maxLocalEndDate | description: Latest end time to include in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-03-23T14:00:00`. The service's maximum duration always caps the result, even if a later value is specified.  Default: `localStartDate` plus the service's maximum duration from `durationRange.hourConfig`.  | validation: format LOCAL_DATE_TIME
   param name: resourceTypes | type: array<resourceTypes> | description: Resource types to constrain the end options. When the customer has already selected a resource before choosing an end time, pass that resource here so the response only includes end times the selected resource can cover.  If no resource has been preselected, omit this field. End options then reflect the full resource pool. Select the resource later by calling [Get Availability Time Slot](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/get-availability-time-slot.md) with the chosen `localEndDate`.  | validation: maxItems 3
              - name: resourceTypeId | type: string | description: [Resource type GUID](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction.md).  | validation: format GUID
              - name: resourceIds | type: array<string> | description: Resource GUIDs. Available only if there is at least 1 resource available for the slot.  | validation: maxItems 135, format GUID
   param name: serviceId | type: serviceId | description: [Service](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md) GUID. Must be an appointment-based service configured with `availabilityConstraints.durationRange.hourConfig`. | required: true | validation: format GUID
   param name: timeZone | type: timeZone | description: Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database). 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).  | validation: minLength 1, maxLength 150
 Return type: ListAvailabilityTimeSlotEndOptionsResponse
  - name: endOptions | type: array<TimeSlot> | description: Available end options for the requested start. Each entry is a `TimeSlot` sharing `localStartDate` with the request and varying only in `localEndDate`. Sorted by `localEndDate` in ascending order (shortest duration first).  | validation: maxItems 1000
     - 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`.  | validation: format GUID
     - 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`.  | validation: format LOCAL_DATE_TIME
     - 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.  | validation: format LOCAL_DATE_TIME
     - 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.  | validation: format GUID
        - 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.  | validation: minLength 36, maxLength 250
        - 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.  | validation: minimum 1, format int32
           - 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`.  | validation: minimum 0, format int32
        - name: eventTitle | type: string | description: Event title.  | validation: minLength 1, maxLength 200
     - 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`.  | validation: minimum 1, maximum 1000, format int32
     - 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`.  | validation: minimum 0, maximum 1000, format int32
     - 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`.  | validation: format int32
     - 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.  | validation: format date-time
        - 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<AvailableResources> | 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.  | validation: minItems 0
        - name: resourceTypeId | type: string | description: [Resource type GUID](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction.md).  | validation: format GUID
        - name: resources | type: array<Resource> | 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.  | validation: format GUID
           - name: name | type: string | description: Resource name.  | validation: minLength 1
        - name: hasMoreAvailableResources | type: boolean | description: Whether there are more available resources for the slot than those listed in `resources`.  
     - name: nestedTimeSlots | type: array<NestedTimeSlot> | 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.  | validation: maxItems 8
        - name: serviceId | type: string | description: Service GUID of the nested time slot.  | validation: format GUID
        - 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`.  | validation: format LOCAL_DATE_TIME
        - 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`.  | validation: format LOCAL_DATE_TIME
        - name: availableResources | type: array<AvailableResources> | 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.  | validation: maxItems 10
        - name: scheduleId | type: string | description: The schedule GUID associated with this nested time slot. Same as the service's schedule GUID.  | validation: format 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.  | validation: format GUID
     - name: allDay | type: boolean | description: Whether this time slot spans one or more full days. 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 example, `America/New_York` or `UTC`.  

 Possible Errors:
   HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: MAX_END_DATE_EXCEEDS_MAXIMUM | Description: The specified `maxLocalEndDate` exceeds the service's maximum duration.
   HTTP Code: 403 | Status Code: PERMISSION_DENIED | Application Code: UNAUTHORIZED_OPERATION | Description: The [identity](https://dev.wix.com/docs/api-reference/articles/authentication/about-identities.md) used to call the method doesn't have the required permissions.
   HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: MULTIPLE_IMPLEMENTERS_FOUND | Description: Multiple availability providers are installed. Only 1 provider can be active at a time.
   HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: NO_IMPLEMENTERS_FOUND | Description: No availability provider is installed or configured for this operation.
   HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: SERVICE_NOT_FOUND | Description: Couldn't find the service.
   HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: END_OPTIONS_NOT_SUPPORTED | Description: The service doesn't support end-options retrieval. The service must have `availabilityConstraints.durationRange.hourConfig` configured.


```

### Examples

### Retrieve available end times for a selected start
After the customer picks a start time from List Availability Time Slots, retrieves the available end times for that start. The service must be configured with a duration range.

```curl
curl -X POST 'https://www.wixapis.com/_api/service-availability/v2/time-slots/end-options' \
-H 'Authorization: <AUTH>' \
-d '{
  "serviceId": "27f2fb02-8925-4ede-be26-991411d6c905",
  "localStartDate": "2026-03-23T10:00:00",
  "timeZone": "America/New_York",
  "location": {
    "id": "92310bc9-10db-4163-85d2-65f83e0ddda9",
    "locationType": "BUSINESS"
  }
}'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.bookings.availabilityTimeSlots.listAvailabilityTimeSlotEndOptions(serviceId, options)
 Description: Retrieves the available end times for a selected start time of an appointment-based service configured with a duration range.   Call this after the customer selects a start time with [List Availability Time Slots](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/list-availability-time-slots.md). Each returned entry is a `TimeSlot` that shares the requested `localStartDate` and differs only in `localEndDate`. The response doesn't include resource lists.  Only supported for hourly duration-range services (services with `availabilityConstraints.durationRange.hourConfig` configured in [Services V2](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md)). Calling this for a fixed-duration or daily duration-range service returns `END_OPTIONS_NOT_SUPPORTED`.  ### Resource selection  Resource selection depends on the booking flow: - If the customer hasn't selected a resource yet, call [Get Availability Time Slot](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/get-availability-time-slot.md) with the selected `localEndDate` to retrieve candidate resources before booking. - If the customer selected a resource before the end time, pass that resource in `resourceTypes` so the response only includes end times that the selected resource can cover.  ### Time slot shape  The response uses the `TimeSlot` model with constrained semantics: - `localStartDate` and `location` are identical on every entry, echoing the request. - `localEndDate` varies across entries and represents each end option. - `availableResources` is always empty. Use [Get Availability Time Slot](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/get-availability-time-slot.md) to retrieve resources for a selected end time. - `eventInfo`, `nestedTimeSlots`, and `allDay` are not populated. - `totalCapacity` is always `1`.
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  serviceId, options.localStartDate, options.location, options
 Method parameters: 
   param name: options | type: ListAvailabilityTimeSlotEndOptionsOptions  none | required: true 
        - name: localStartDate | type: string | description: Selected start time in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-03-23T10:00:00`. Each returned end option shares this start time. | required: true | validation: format LOCAL_DATE_TIME
        - name: maxLocalEndDate | type: string | description: Latest end time to include in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-03-23T14:00:00`. The service's maximum duration always caps the result, even if a later value is specified.  Default: `localStartDate` plus the service's maximum duration from `durationRange.hourConfig`.  | validation: format LOCAL_DATE_TIME
        - name: timeZone | type: string | description: Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database). 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).  | validation: minLength 1, maxLength 150
        - name: location | type: Location | description: Location of the selected start time. Must match the location of the slot returned by [List Availability Time Slots](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/list-availability-time-slots.md). | required: true 
           - name: _id | type: string | description: [Location GUID](https://dev.wix.com/docs/api-reference/business-management/locations/introduction.md). Available only for business locations.  | validation: format GUID
           - 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: resourceTypes | type: array<ResourceType> | description: Resource types to constrain the end options. When the customer has already selected a resource before choosing an end time, pass that resource here so the response only includes end times the selected resource can cover.  If no resource has been preselected, omit this field. End options then reflect the full resource pool. Select the resource later by calling [Get Availability Time Slot](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/get-availability-time-slot.md) with the chosen `localEndDate`.  | validation: maxItems 3
           - name: resourceTypeId | type: string | description: [Resource type GUID](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction.md).  | validation: format GUID
           - name: resourceIds | type: array<string> | description: Resource GUIDs. Available only if there is at least 1 resource available for the slot.  | validation: maxItems 135, format GUID
   param name: serviceId | type: string | description: [Service](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md) GUID. Must be an appointment-based service configured with `availabilityConstraints.durationRange.hourConfig`. | required: true | validation: format GUID
 Return type: PROMISE<ListAvailabilityTimeSlotEndOptionsResponse>
  - name: endOptions | type: array<TimeSlot> | description: Available end options for the requested start. Each entry is a `TimeSlot` sharing `localStartDate` with the request and varying only in `localEndDate`. Sorted by `localEndDate` in ascending order (shortest duration first).  | validation: maxItems 1000
     - 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`.  | validation: format GUID
     - 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`.  | validation: format LOCAL_DATE_TIME
     - 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.  | validation: format LOCAL_DATE_TIME
     - 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.  | validation: format GUID
        - 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.  | validation: minLength 36, maxLength 250
        - 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.  | validation: minimum 1, format int32
           - 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`.  | validation: minimum 0, format int32
        - name: eventTitle | type: string | description: Event title.  | validation: minLength 1, maxLength 200
     - 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`.  | validation: minimum 1, maximum 1000, format int32
     - 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`.  | validation: minimum 0, maximum 1000, format int32
     - 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`.  | validation: format int32
     - 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<AvailableResources> | 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.  | validation: minItems 0
        - name: resourceTypeId | type: string | description: [Resource type GUID](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction.md).  | validation: format GUID
        - name: resources | type: array<Resource> | 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.  | validation: format GUID
           - name: name | type: string | description: Resource name.  | validation: minLength 1
        - name: hasMoreAvailableResources | type: boolean | description: Whether there are more available resources for the slot than those listed in `resources`.  
     - name: nestedTimeSlots | type: array<NestedTimeSlot> | 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.  | validation: maxItems 8
        - name: serviceId | type: string | description: Service GUID of the nested time slot.  | validation: format GUID
        - 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`.  | validation: format LOCAL_DATE_TIME
        - 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`.  | validation: format LOCAL_DATE_TIME
        - name: availableResources | type: array<AvailableResources> | 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.  | validation: maxItems 10
        - name: scheduleId | type: string | description: The schedule GUID associated with this nested time slot. Same as the service's schedule GUID.  | validation: format 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.  | validation: format GUID
     - name: allDay | type: boolean | description: Whether this time slot spans one or more full days. 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 example, `America/New_York` or `UTC`.  

 Possible Errors:
   HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: MAX_END_DATE_EXCEEDS_MAXIMUM | Description: The specified `maxLocalEndDate` exceeds the service's maximum duration.
   HTTP Code: 403 | Status Code: PERMISSION_DENIED | Application Code: UNAUTHORIZED_OPERATION | Description: The [identity](https://dev.wix.com/docs/api-reference/articles/authentication/about-identities.md) used to call the method doesn't have the required permissions.
   HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: MULTIPLE_IMPLEMENTERS_FOUND | Description: Multiple availability providers are installed. Only 1 provider can be active at a time.
   HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: NO_IMPLEMENTERS_FOUND | Description: No availability provider is installed or configured for this operation.
   HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: SERVICE_NOT_FOUND | Description: Couldn't find the service.
   HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: END_OPTIONS_NOT_SUPPORTED | Description: The service doesn't support end-options retrieval. The service must have `availabilityConstraints.durationRange.hourConfig` configured.


```

### Examples

### listAvailabilityTimeSlotEndOptions
```javascript
import { availabilityTimeSlots } from '@wix/bookings';

async function listAvailabilityTimeSlotEndOptions(serviceId,options) {
  const response = await availabilityTimeSlots.listAvailabilityTimeSlotEndOptions(serviceId,options);
};
```

### listAvailabilityTimeSlotEndOptions (with elevated permissions)
```javascript
import { availabilityTimeSlots } from '@wix/bookings';
import { auth } from '@wix/essentials';

async function myListAvailabilityTimeSlotEndOptionsMethod(serviceId,options) {
  const elevatedListAvailabilityTimeSlotEndOptions = auth.elevate(availabilityTimeSlots.listAvailabilityTimeSlotEndOptions);
  const response = await elevatedListAvailabilityTimeSlotEndOptions(serviceId,options);
}
```

### listAvailabilityTimeSlotEndOptions (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 { availabilityTimeSlots } from '@wix/bookings';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { availabilityTimeSlots },
  // Include the auth strategy and host as relevant
});


async function listAvailabilityTimeSlotEndOptions(serviceId,options) {
  const response = await myWixClient.availabilityTimeSlots.listAvailabilityTimeSlotEndOptions(serviceId,options);
};
```

---