@wix/auto_sdk_bookings_multi-service-availability-time-slots 1.0.156 → 1.0.157

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,193 +1,185 @@
1
1
  import { NonNullablePaths } from '@wix/sdk-types';
2
2
 
3
3
  /**
4
- * The `TimeSlot` object represents the availability information
5
- * for an `Appointment` service's specific slot, including:
4
+ * A time slot represents a specific time period when a service is available for booking.
5
+ * It provides all the information needed to display availability to customers, including whether customers can actually book it, the remaining capacity, and which staff members or resources are available.
6
+ * Available time slots may not always be bookable due to service booking policies - when this occurs, the time slot includes information about the specific booking restrictions.
6
7
  *
7
- * 1. Whether the slot is bookable for the given service?
8
- *
9
- * 2. In what location the service is available for this slot?
10
- *
11
- * 3. Which available resources can provide the service for this slot?
12
- *
13
- * 4. Does booking the slot for the service violates any of the service booking policies?
14
- *
15
- * 5. What is the total capacity and remaining capacity of the service at the time of the calculation of the `TimeSlot`?
16
- *
17
- * > __Note:__
18
- * > When the `TimeSlot` has a non empty `NestedTimeSlots`, it represents the availability information
19
- * > for a given list of `Appointment` services within a specific time slot.
8
+ * For multi-service bookings, the top-level time slot acts as a container spanning the entire service sequence (from the start of the first service to the end of the last service). Individual service details are provided in nested time slots.
20
9
  */
21
10
  interface TimeSlot {
22
11
  /**
23
- * Service ID.
12
+ * Service ID ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/introduction)).
24
13
  *
25
- * > Not returned from `MultiServiceAvailabilityTimeSlots` API calls.
26
- * > Instead, each nested time slot has its own serviceId.
14
+ * Available only for single-service bookings. For multi-service bookings, this field is empty and individual service IDs are provided in `nestedTimeSlots`.
27
15
  * @format GUID
28
16
  */
29
17
  serviceId?: string | null;
30
18
  /**
31
- * Local start date of the time slot in ISO-8601 format.
32
- * For example, "2024-01-30T13:30:00".
19
+ * Local start date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
20
+ * For example, `2026-01-30T13:30:00`.
21
+ *
22
+ * For multi-service bookings, this represents the start time of the first service in the sequence.
33
23
  * @format LOCAL_DATE_TIME
34
24
  */
35
25
  localStartDate?: string | null;
36
26
  /**
37
- * Local end date of the time slot in ISO-8601 format.
38
- * For example, "2024-01-30T14:30:00".
27
+ * Local end date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
28
+ * For example, `2026-01-30T14:00:00`.
29
+ *
30
+ * For multi-service bookings, this represents the end time of the last service in the sequence.
39
31
  * @format LOCAL_DATE_TIME
40
32
  */
41
33
  localEndDate?: string | null;
42
34
  /**
43
- * Whether the slot is bookable according to the service's booking policies.
35
+ * Whether customers can book the slot according to the service's booking policies ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/booking-policies/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)).
44
36
  *
45
- * If booking this time slot does not violates any of the service's booking policies,
46
- * the returned value is `true`. Otherwise, returns `false`.
37
+ * For multi-service bookings, this is `true` only when all services in the sequence comply with their respective booking policies.
47
38
  */
48
39
  bookable?: boolean | null;
49
- /** The geographic location of the slot. */
40
+ /** Information about where the business provides the service to the customer. */
50
41
  location?: Location;
51
- /** The event information if the time slot is an event based slot. */
42
+ /**
43
+ * Information about the event ([SDK](https://dev.wix.com/docs/sdk/backend-modules/calendar/events/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction)) related to the slot.
44
+ * Available only for classes. Not available for appointment-based services and courses.
45
+ */
52
46
  eventInfo?: EventInfo;
53
47
  /**
54
48
  * Total number of spots for the slot.
49
+ *
50
+ * For multi-service bookings, this is always `1` because customers book the entire service sequence as a single unit.
55
51
  * @min 1
56
52
  * @max 1000
57
53
  */
58
54
  totalCapacity?: number | null;
59
55
  /**
60
56
  * Remaining number of spots for the slot.
61
- * For example, for an appointment service with total capacity of 1 spot and one booked spot, the remaining capacity will be 0.
57
+ * This is calculated as total capacity minus booked spots, but doesn't account for waitlist reservations.
58
+ *
59
+ * If the service has a waitlist enabled, use `bookableCapacity` instead to get the accurate number of spots customers can actually book.
60
+ *
61
+ * For single-service bookings: An appointment service with total capacity of 3 spots and 1 booked spot results in a remaining capacity of `2`.
62
+ * For multi-service bookings: This is either `1` (sequence available) or `0` (sequence unavailable).
62
63
  * @max 1000
63
64
  */
64
65
  remainingCapacity?: number | null;
65
66
  /**
66
- * Number of spots in the slot that are available for booking.
67
- * This is calculated as the remaining capacity minus the spots reserved for the waiting list.
67
+ * Number of spots that customers can book for the slot.
68
+ * Calculated as the remaining capacity minus the spots reserved for the waitlist.
69
+ * If the service has no waitlist, identical to `remainingCapacity`.
70
+ *
71
+ * For multi-service bookings, this is either `1` (sequence can be booked) or `0` (sequence cannot be booked).
68
72
  */
69
73
  bookableCapacity?: number | null;
70
74
  /**
71
- * Indicators for booking policy violations for the slot.
75
+ * Information about booking policy violations for the slot.
72
76
  *
73
- * Each nested field is checked on its own. i.e. if `tooEarlyToBook` is defined and `bookOnlineDisabled` is not defined
74
- * we will return also slots for which `tooEarlyToBook` is same as on the request, regardless of `bookOnlineDisabled`.
77
+ * For multi-service bookings, this aggregates violations from all services in the sequence.
75
78
  */
76
79
  bookingPolicyViolations?: BookingPolicyViolations;
77
80
  /**
78
- * List of `AvailableResources` for the time slot.
79
- * Each `AvailableResources` contains information about available resources of the same type.
81
+ * List of resources ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resources/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/introduction)) available during the time slot.
80
82
  *
81
- * > Not returned from `MultiServiceAvailabilityTimeSlots` API calls.
82
- * > Instead, each nested time slot has its own available resources.
83
+ * Available only for single-service bookings. For multi-service bookings, resource information is provided in `nestedTimeSlots`.
83
84
  */
84
85
  availableResources?: AvailableResources[];
85
86
  /**
86
- * > Nested time slots.
87
- * > Returned only from `MultiServiceAvailabilityTimeSlots` API calls.
87
+ * Nested time slots for multi-service bookings.
88
+ * Each nested slot represents 1 service in the sequence, ordered according to the service sequence specified in the request.
89
+ *
90
+ * Available only for multi-service bookings. Empty for single-service bookings.
88
91
  * @maxSize 8
89
92
  */
90
93
  nestedTimeSlots?: NestedTimeSlot[];
91
- /** Reasons why the time slot is not available for booking. */
94
+ /** Information about why customers can't book the time slot. */
92
95
  nonBookableReasons?: NonBookableReasons;
93
96
  /**
94
- * The schedule ID associated with this time slot.
95
- * Same as the services schedule ID.
97
+ * Schedule ID associated with this time slot.
98
+ * Same as the service's schedule ID.
96
99
  * @format GUID
97
100
  */
98
101
  scheduleId?: string | null;
99
102
  }
100
103
  interface Location {
101
104
  /**
102
- * Business Location ID. Present only if the location is a business location.
105
+ * Location ID ([SDK](https://dev.wix.com/docs/sdk/backend-modules/business-tools/locations/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/locations/introduction)).
106
+ * Available only for business locations.
103
107
  * @format GUID
104
108
  */
105
109
  _id?: string | null;
106
- /** The location name. */
110
+ /** Location name. */
107
111
  name?: string | null;
108
- /** A string representation for the full address of the location. */
112
+ /** Formatted location address. */
109
113
  formattedAddress?: string | null;
110
- /**
111
- * The type of location:
112
- * - `CUSTOM`: The location is specific to this service, and is not derived from the business location.
113
- * - `BUSINESS`: A business location, either the default business address, or locations defined for the business by the Business Info.
114
- * - `CUSTOMER`: The location is determined by the customer and is not set up beforehand.
115
- */
114
+ /** Location type. */
116
115
  locationType?: LocationTypeWithLiterals;
117
116
  }
118
117
  declare enum LocationType {
119
118
  UNKNOWN_LOCATION_TYPE = "UNKNOWN_LOCATION_TYPE",
120
119
  /** A business location, either the default business address, or locations defined for the business by the Business Info. */
121
120
  BUSINESS = "BUSINESS",
122
- /** The location is unique to this service and isn't defined as one of the business locations. */
121
+ /** The location is unique to this service and isn't defined as 1 of the business locations. */
123
122
  CUSTOM = "CUSTOM",
124
- /** The location can be determined by the customer and is not set up beforehand. */
123
+ /** The location can be determined by the customer and isn't set up beforehand. */
125
124
  CUSTOMER = "CUSTOMER"
126
125
  }
127
126
  /** @enumType */
128
127
  type LocationTypeWithLiterals = LocationType | 'UNKNOWN_LOCATION_TYPE' | 'BUSINESS' | 'CUSTOM' | 'CUSTOMER';
129
- /** relevant for event based slots, and not for availability based slots */
128
+ /** Available for event based slots, and not for availability based slots */
130
129
  interface EventInfo {
131
130
  /**
132
- * The event ID.
131
+ * Event ID.
133
132
  * @minLength 36
134
133
  * @maxLength 250
135
134
  */
136
135
  eventId?: string | null;
137
- /** Waiting list details for the event, if enabled in the service's booking policy. */
136
+ /** Information about the event's waitlist. Available only if the service has a waitlist. */
138
137
  waitingList?: WaitingList;
139
138
  }
140
139
  interface WaitingList {
141
140
  /**
142
- * Total number of spots in the waiting list.
141
+ * Total number of spots in the waitlist.
143
142
  * @min 1
144
143
  */
145
144
  totalCapacity?: number | null;
146
145
  /**
147
- * Number of remaining spots in the waiting list.
148
- * For example, a yoga event with a capacity of `10` and `3` registrants will have a `remainingCapacity` of `7`.
146
+ * Number of remaining spots in the waitlist.
147
+ * For example, an event with a waitlist for 10 people and 3 registrants, results in a remaining capacity of `7`.
149
148
  */
150
149
  remainingCapacity?: number | null;
151
150
  }
152
151
  interface BookingPolicyViolations {
153
- /** Bookings policy violation. Too early to book this slot. */
152
+ /** Whether it's too early for customers to book the slot. */
154
153
  tooEarlyToBook?: boolean | null;
155
- /** The earliest time at which booking for this slot is allowed, in UTC format (`YYYY-MM-DDThh:mm:ss.sssZ`). */
154
+ /** Earliest time for booking the slot in `YYYY-MM-DDThh:mm:ss.sssZ` format. */
156
155
  earliestBookingDate?: Date | null;
157
- /** Bookings policy violation. Too late to book this slot. */
156
+ /** Whether it's too late for customers to book the slot. */
158
157
  tooLateToBook?: boolean | null;
159
- /** Bookings policy violation. Online booking is disabled for the `TimeSlot` service. */
158
+ /** Whether customers can book the service online. */
160
159
  bookOnlineDisabled?: boolean | null;
161
160
  }
162
161
  interface AvailableResources {
163
162
  /**
164
- * Resource type ID.
163
+ * Resource type ID ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resource-types/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resource-types-v2/introduction)).
165
164
  * @format GUID
166
165
  */
167
166
  resourceTypeId?: string | null;
168
167
  /**
169
- * Available resources for the time slot.
170
- *
171
- * + When returned from `ListAvailabilityTimeSlots`, empty by default.
172
- * + + If you provided `includeResourceTypeIds` or `resourceIds` in request,
173
- * contains __up__ to 10 available resources out of those provided.
174
- *
175
- * + When returned from `GetAvailabilityTimeSlots`, contains all available resources by default.
176
- * + + If you provided `includeResourceTypeIds` or `resourceIds` in request,
177
- * contains all of the available resources out of those provided.
168
+ * Details about resources available during the time slot.
178
169
  *
170
+ * Behavior varies by method:
179
171
  *
180
- * > + When returned from `ListMultiServiceAvailabilityTimeSlots`, empty by default.
181
- * > + + If you provided `includeResourceTypeIds` or `resourceIds` in request,
182
- * > contains __up__ to 10 available resources out of those provided.
172
+ * List methods (List Availability Time Slots and List Multi Service Availability Time Slots):
173
+ * - Empty by default.
174
+ * - Up to 10 resources when specifying `includeResourceTypeIds` or `resourceIds` in the request.
183
175
  *
184
- * > + When returned from `GetMultiServiceAvailabilityTimeSlots`, contains all available resources by default.
185
- * > + + If you provided `includeResourceTypeIds` or `resourceIds` in request,
186
- * > contains all of the available resources out of those provided.
176
+ * Get methods (Get Availability Time Slots and Get Multi Service Availability Time Slots):
177
+ * - All resources by default.
178
+ * - Filtered resources when specifying `includeResourceTypeIds` or `resourceIds` in the request.
187
179
  */
188
180
  resources?: Resource[];
189
181
  /**
190
- * Whether there are more available resources for the slot that are not listed in `resources` due to size limitations.
182
+ * Whether there are more available resources for the slot than those listed in `resources`.
191
183
  * @readonly
192
184
  */
193
185
  hasMoreAvailableResources?: boolean | null;
@@ -211,20 +203,19 @@ interface NestedTimeSlot {
211
203
  */
212
204
  serviceId?: string;
213
205
  /**
214
- * Local start date of the nested time slot in ISO-8601 format.
215
- * For example, "2024-01-30T13:30:00".
206
+ * Local start date of the nested time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
207
+ * For example, `2026-01-30T13:30:00`.
216
208
  * @format LOCAL_DATE_TIME
217
209
  */
218
210
  localStartDate?: string;
219
211
  /**
220
- * Local end date of the nested time slot in ISO-8601 format.
221
- * For example, "2024-01-30T14:30:00".
212
+ * Local end date of the nested time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
213
+ * For example, `2026-01-30T13:30:00`.
222
214
  * @format LOCAL_DATE_TIME
223
215
  */
224
216
  localEndDate?: string;
225
217
  /**
226
- * List of `AvailableResources` for the nested time slot.
227
- * Each `AvailableResources` contains information about available resources of the same type.
218
+ * List of resources ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resources/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/introduction)) available during the nested time slot.
228
219
  * @maxSize 10
229
220
  */
230
221
  availableResources?: AvailableResources[];
@@ -236,129 +227,76 @@ interface NestedTimeSlot {
236
227
  scheduleId?: string | null;
237
228
  }
238
229
  interface NonBookableReasons {
239
- /** The slot is fully booked with no remaining capacity. */
230
+ /** Whether the slot is fully booked with no remaining capacity. */
240
231
  noRemainingCapacity?: boolean | null;
241
- /** Booking this slot would violate the service's booking policy. */
232
+ /** Whether booking the slot violates any of the service's booking policies. */
242
233
  violatesBookingPolicy?: boolean | null;
243
- /** The slot is reserved for the waiting list and not available for direct booking. */
234
+ /** Whether the slot is reserved for the waitlist. A new customer can't book the reserved slot. */
244
235
  reservedForWaitingList?: boolean | null;
245
236
  }
246
237
  interface ListMultiServiceAvailabilityTimeSlotsRequest {
247
238
  /**
248
- * Services for which the multiService time slots are being returned for.
249
- * Each service contains its own resources filters within.
239
+ * Services for which the multi-service time slots are returned.
240
+ * Each service can include its own resource filters.
250
241
  *
251
- * MinSize: `2`.
252
- * MaxSize: `8`.
253
- *
254
- * Required, unless `cursorPaging`.`cursor` is provided.
242
+ * Required unless you specify `cursorPaging.cursor`.
255
243
  * @maxSize 8
256
244
  */
257
245
  services?: Service[];
258
246
  /**
259
- * Lower boundary for `localStartDate` to include in response, in ISO-8601 format.
260
- * For example, "2024-01-30T13:30:00".
261
- *
262
- * Each returned `TimeSlot` in response has a `localStartDate`
263
- * within the provided `fromLocalDate` and `toLocalDate` exclusive.
247
+ * Lower boundary for `localStartDate` in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
248
+ * For example, `2026-01-30T13:30:00`.
249
+ * Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate`.
264
250
  *
265
- * Required, unless `cursorPaging`.`cursor` is provided.
251
+ * Required unless you specify `cursorPaging.cursor`.
266
252
  * @format LOCAL_DATE_TIME
267
253
  */
268
254
  fromLocalDate?: string | null;
269
255
  /**
270
- * Upper boundary for `localStartDate` to include in response, in ISO-8601 format.
271
- * For example, "2024-01-30T14:30:00".
256
+ * Upper boundary for `localToDate` in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
257
+ * For example, `2026-01-30T13:30:00`.
258
+ * Each returned time slot has a `localEndDate` between `fromLocalDate` and `toLocalDate`.
272
259
  *
273
- * Each returned `TimeSlot` in response has a `localStartDate`
274
- * within the provided `fromLocalDate` and `toLocalDate` exclusive.
275
- *
276
- * Required, unless `cursorPaging`.`cursor` is provided.
260
+ * Required unless you specify `cursorPaging.cursor`.
277
261
  * @format LOCAL_DATE_TIME
278
262
  */
279
263
  toLocalDate?: string | null;
280
264
  /**
281
- * Time zone, in IANA time zone format.
265
+ * 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`.
266
+ *
267
+ * Required unless you specify `cursorPaging.cursor`.
282
268
  *
283
- * Required, unless `cursorPaging`.`cursor` is provided.
269
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
284
270
  * @minLength 1
285
271
  * @maxLength 150
286
272
  */
287
273
  timeZone?: string | null;
288
274
  /**
289
- * Location for which the multiService TimeSlots are being returned for.
275
+ * Location for which the multi-service time slots are returned. If you filter by `{"type": "BUSINESS"}`, you must also specify a location ID. A filter for `location.name` is ignored.
290
276
  *
291
- * You can specify location or location type for which the TimeSlots will be returned for.
292
- * If locationType is `BUSINESS`, you __must__ provide a locationId.
293
- *
294
- * <blockquote class="warning">
295
- * <p><strong>warning:</strong><br/>
296
- * Supports filtering by location type, or by location ID. </br>
297
- * Other fields like <code class="grey-background">name</code> are ignored.</p>
298
- * </blockquote>
299
- *
300
- * Required, unless `cursorPaging`.`cursor` is provided.
277
+ * Required unless you specify `cursorPaging.cursor`.
301
278
  */
302
279
  location?: Location;
303
280
  /**
304
- * Whether the `TimeSlot` is bookable according to all of the services booking policies.
305
- *
306
- * If booking any of the `TimeSlot`.`NestedTimeSlot`s violates any of its services bookings policies,
307
- * returns as `false`. Otherwise, returns as `true`.
308
- *
309
- * > __Note:__
310
- * > A `TimeSlot` with a `NestedTimeSlot` that doesn't meet its service's bookings policies will be returned with `bookable` = false,
311
- * > while a `TimeSlot` with no available resources will not be returned at all.
281
+ * Whether the time slot is bookable according to all services' booking policies.
282
+ * If not specified, returns both bookable and un-bookable time slots.
312
283
  */
313
284
  bookable?: boolean | null;
314
285
  /**
315
- * Indicators for service's booking policy violations for booking the `TimeSlot`.
316
- *
317
- * A bookable time slot must not violate any policy,
318
- * therefor, this filter is only relevant when `bookable` filter is false.
319
- *
320
- * Each nested field is checked on all `NestedTimeSlot`s. For example, if only one of the `NestedTimeSlot`'s
321
- * has a service with `tooEarlyToBook` same as in the request, we return the `TimeSlot` regardless of whether
322
- * the other `NestedTimeSlots` has the same `tooEarlyToBook` as in request.
323
- *
324
- * Each nested field is checked on its own. For example, if `tooEarlyToBook` is defined and `bookOnlineDisabled` is not defined
325
- * we return slots for which `tooEarlyToBook` is same as on the request, regardless of `bookOnlineDisabled`.
286
+ * Indicators for service's booking policy violations.
287
+ * Only relevant when `bookable` filter is false.
326
288
  */
327
289
  bookingPolicyViolations?: BookingPolicyViolations;
328
290
  /**
329
- * Maximum number of slots to load for each day. For example, if `timeSlotsPerDay` is set to `3`,
330
- * we return at most 3 available TimeSlots for each day within the date range specified in request.
331
- *
332
- * By default,
333
- * if `bookable` filter was not specified,
334
- * and a day has both `bookable` and `un-bookable` slots, `bookable` slots are returned first.
335
- *
336
- * If the number of `bookable` slots is less than the requested `timeSlotsPerDay`,
337
- * `un-bookable` slots will be returned according to the specified filters.
291
+ * Maximum number of slots to return for each day in the specified time range.
292
+ * If `bookable` filter isn't specified, bookable slots are returned first.
338
293
  */
339
294
  timeSlotsPerDay?: number | null;
340
295
  /**
341
- * CursorPaging.
342
- *
343
- * Enables you to fetch TimeSlots in smaller, more manageable chunks
344
- * by setting a limit on the number of results returned in response.
345
- * This is useful in order to enhance efficiency of data retrieval and reduce load on both the client and server.
346
- *
347
- * If there are more results than the specified limit, the response will contain a `cursorPagingMetaData`
348
- * with a cursor pointing to next page of results. In order to fetch the next page of results, you should pass the
349
- * returned cursor to the next call as `cursorPaging`.`cursor`.
350
- *
351
- * For the first call, you should only specify the `limit` for the results page.
352
- * For each following call, you should only pass the previous returned cursor as `cursorPaging`.`cursor`
353
- * the `cursorPaging`.`limit`. You may pass a different `limit`.
354
- * No need to specify any additional parameters.
355
- *
356
- * <blockquote class="important">
357
- * <p><strong>Important:</strong><br/>
358
- * If you only provide a <code class="grey-background">cursorPaging</code>. <code class="grey-background">cursor</code>,
359
- * the response will contain the default size of results which is `1000`.
360
- * </p>
361
- * </blockquote>
296
+ * Cursor-based paging configuration.
297
+ * Enables fetching results in smaller chunks by setting a limit on the number of results.
298
+ * For consistent pagination behavior, use the same `limit` value throughout a pagination sequence.
299
+ * When specifying a new `limit` in follow-up requests, the API respects the new value.
362
300
  */
363
301
  cursorPaging?: CursorPaging;
364
302
  }
@@ -375,7 +313,7 @@ interface Service {
375
313
  */
376
314
  resourceIds?: string[];
377
315
  /**
378
- * The resource type ID's to include in returned time slots.
316
+ * Resource type IDs to include in returned time slots.
379
317
  * This is in addition to the specifically requested resources.
380
318
  *
381
319
  * <blockquote class="important">
@@ -400,7 +338,7 @@ interface Service {
400
338
  */
401
339
  interface V2CustomerChoices {
402
340
  /**
403
- * The selected customer duration in minutes.
341
+ * Selected customer duration in minutes.
404
342
  * Min: `1 minute`
405
343
  * Max: `44639 minutes` (30 days, 23 hours, and 59 minutes)
406
344
  * @min 1
@@ -408,14 +346,14 @@ interface V2CustomerChoices {
408
346
  */
409
347
  durationInMinutes?: number | null;
410
348
  /**
411
- * The selected add-ons IDs.
349
+ * Selected add-on IDs.
412
350
  * Max: Derived from max amount of Add-On groups * max amount of Add-Ons per group.
413
351
  * @format GUID
414
352
  * @maxSize 21
415
353
  */
416
354
  addOnIds?: string[] | null;
417
355
  /**
418
- * The selected duration choice ID.
356
+ * Selected duration choice ID.
419
357
  * @format GUID
420
358
  */
421
359
  durationChoiceId?: string | null;
@@ -440,29 +378,22 @@ interface CursorPaging {
440
378
  }
441
379
  interface ListMultiServiceAvailabilityTimeSlotsResponse {
442
380
  /**
443
- * Time slots.
381
+ * Retrieved time slots.
382
+ * Sorted by `localStartDate` in ascending order. When multiple slots have the same start time, no specific secondary sorting is guaranteed.
444
383
  * @maxSize 1000
445
384
  */
446
385
  timeSlots?: TimeSlot[];
447
386
  /**
448
- * Time zone, in IANA time zone format.
449
- * Shared for all TimeSlots in response.
387
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
388
+ * For example, `America/New_York` or `UTC`.
389
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
450
390
  * @minLength 1
451
391
  * @maxLength 150
452
392
  */
453
393
  timeZone?: string | null;
454
394
  /**
455
- * CursorPagingMetaData.
456
- * Contains information about the next page of results.
457
- *
458
- * By default,
459
- * if there are more than 1000 results,
460
- * the response will contain a `cursorPagingMetaData` with a cursor to the next page of results.
461
- *
462
- * <blockquote class="important">
463
- * <p><strong>Important:</strong><br/>
464
- * <code class="grey-background">count</code> is not supported.</p>
465
- * </blockquote>
395
+ * Paging metadata for the next page of results.
396
+ * Contains a cursor if there are more than 1000 results.
466
397
  */
467
398
  cursorPagingMetadata?: CursorPagingMetadata;
468
399
  }
@@ -484,51 +415,47 @@ interface Cursors {
484
415
  }
485
416
  interface GetMultiServiceAvailabilityTimeSlotRequest {
486
417
  /**
487
- * Services for which the multiService TimeSlots are being returned for.
488
- * Each service contains its own resources filters within.
489
- *
490
- * MinSize: 2.
491
- * MaxSize: 8.
418
+ * Services for which the multi-service time slots are returned.
419
+ * You can specify resource filters for each service.
492
420
  * @minSize 2
493
421
  * @maxSize 8
494
422
  */
495
423
  services: Service[];
496
424
  /**
497
- * Local start date of the time slot, in ISO-8601 format.
498
- * For example, "2024-01-30T13:30:00".
425
+ * Local start date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
426
+ * For example, `2026-01-30T13:30:00`.
499
427
  * @format LOCAL_DATE_TIME
500
428
  */
501
429
  localStartDate: string;
502
430
  /**
503
- * Local end date of the time slot, in ISO-8601 format.
504
- * For example, "2024-01-30T14:30:00".
431
+ * Local end date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
432
+ * For example, `2026-01-30T13:30:00`.
505
433
  * @format LOCAL_DATE_TIME
506
434
  */
507
435
  localEndDate: string;
508
436
  /**
509
- * Time zone, in IANA time zone format.
437
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
438
+ * For example, `America/New_York` or `UTC`.
439
+ *
440
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
510
441
  * @minLength 1
511
442
  * @maxLength 150
512
443
  */
513
444
  timeZone: string | null;
514
445
  /**
515
- * The location of the time slot.
516
- *
517
- * You must provide a specific `locationType`.
518
- * If locationType is `BUSINESS`, you __must__ also provide a `locationId`.
446
+ * Location for which the multi-service time slots are returned. If you filter by `{"type": "BUSINESS"}`, you must also specify a location ID. A filter for `location.name` is ignored.
519
447
  *
520
- * <blockquote class="warning">
521
- * <p>Supports filtering by location type, or by location ID.
522
- * Other fields like <code class="grey-background">name</code> are ignored.</p>
523
- * </blockquote>
448
+ * Required unless you specify `cursorPaging.cursor`.
524
449
  */
525
450
  location: Location;
526
451
  }
527
452
  interface GetMultiServiceAvailabilityTimeSlotResponse {
528
- /** Time slot. */
453
+ /** Retrieved time slot. */
529
454
  timeSlot?: TimeSlot;
530
455
  /**
531
- * The time zone, in IANA time zone format.
456
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
457
+ * For example, `America/New_York` or `UTC`.
458
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
532
459
  * @minLength 1
533
460
  * @maxLength 150
534
461
  */
@@ -536,141 +463,92 @@ interface GetMultiServiceAvailabilityTimeSlotResponse {
536
463
  }
537
464
  interface ListAvailabilityTimeSlotsRequest {
538
465
  /**
539
- * Service ID for which the time slots are being returned for.
540
- * Currently supported only for services of type `APPOINTMENT`.
541
- *
542
- * Required, unless `cursorPaging`.`cursor` is provided.
466
+ * Service ID for which to retrieve time slots. You must specify the ID of an appointment-based service.
467
+ * Required, unless you specify `cursorPaging.cursor`.
543
468
  * @format GUID
544
469
  */
545
470
  serviceId?: string | null;
546
471
  /**
547
- * Lower boundary for `localStartDate` to include in response, in ISO-8601 format.
548
- * For example, "2024-01-30T13:30:00".
472
+ * Lower boundary for `localStartDate` to include in response.
473
+ * Each returned time slot has a `localStartDate` within the provided `fromLocalDate` and `toLocalDate` exclusive.
474
+ * Required, unless you specify `cursorPaging.cursor`.
549
475
  *
550
- * Each returned `TimeSlot` in response has a `localStartDate`
551
- * within the provided `fromLocalDate` and `toLocalDate` exclusive.
552
- *
553
- * Required, unless `cursorPaging`.`cursor` is provided.
476
+ * Local start date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
477
+ * For example, `2026-01-30T13:30:00`.
554
478
  * @format LOCAL_DATE_TIME
555
479
  */
556
480
  fromLocalDate?: string | null;
557
481
  /**
558
- * Upper boundary for `localStartDate` to include in response, in ISO-8601 format.
559
- * For example, "2024-01-30T14:30:00".
560
- *
561
- * Each returned `TimeSlot` in response has a `localStartDate`
562
- * within the provided `fromLocalDate` and `toLocalDate` exclusive.
482
+ * Upper boundary for `localStartDate` to include in response.
483
+ * Each returned time slot has a `localStartDate` within the provided `fromLocalDate` and `toLocalDate` exclusive.
484
+ * Required, unless you specify `cursorPaging.cursor`.
563
485
  *
564
- * Required, unless `cursorPaging`.`cursor` is provided.
486
+ * Local end date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
487
+ * For example, `2026-01-30T13:30:00`.
565
488
  * @format LOCAL_DATE_TIME
566
489
  */
567
490
  toLocalDate?: string | null;
568
491
  /**
569
- * Time zone, in IANA time zone format.
492
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
493
+ * For example, `America/New_York` or `UTC`.
570
494
  *
571
- * Required, unless `cursorPaging`.`cursor` is provided.
495
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
572
496
  * @minLength 1
573
497
  * @maxLength 150
574
498
  */
575
499
  timeZone?: string | null;
576
500
  /**
577
501
  * Locations to include in response.
578
- *
579
- * By default,
580
- * if no locations are provided,
581
- * the response contains TimeSlots for all locations where the service is available.
582
- *
583
- * You can specify locations or location types for which the time slots will be returned for.
584
- * If locationType is `BUSINESS`, you __must__ provide a locationId.
585
- *
586
- * <blockquote class="warning">
587
- * <p><strong>warning:</strong><br/>
588
- * Supports filtering by location type, or by location ID. </br>
589
- * Other fields like <code class="grey-background">name</code> are ignored.</p>
590
- * </blockquote>
502
+ * If not specified, returns time slots for all locations where the service is available.
591
503
  * @maxSize 5
592
504
  */
593
505
  locations?: Location[];
594
506
  /**
595
507
  * Resources to include in response.
596
- *
597
- * If specified,
598
- * the returned TimeSlots will contain __up__ to 10 available resources out of the provided list.
599
- * Otherwise, the returned TimeSlots returns with an empty `AvailableResources`.
508
+ * If specified, returns up to 10 available resources out of the provided list.
509
+ * Otherwise, returns time slots with empty `availableResources`.
600
510
  * @format GUID
601
511
  * @maxSize 135
602
512
  * @deprecated
603
513
  */
604
514
  resourceIds?: string[];
605
515
  /**
606
- * Resource type ID's to include in response, this is in addition to the requested `resourceIds`.
607
- *
608
- * If specified in request, the returned TimeSlots will contain __up__ to 10 `AvailableResources` with `ResourceTypeId`
609
- * out of those specified, each contains __up__ to 10 available resources of this type.
516
+ * Resource type IDs to include in the response.
517
+ * If specified, returns up to 10 `availableResources` with matching `resourceTypeId`.
518
+ * This controls which resource details are included in the response but doesn't filter the time slots themselves.
610
519
  * @format GUID
611
520
  * @maxSize 100
612
521
  */
613
522
  includeResourceTypeIds?: string[];
614
523
  /**
615
- * Whether the `TimeSlot` is bookable according to the service's booking policies.
616
- *
617
- * If booking this `TimeSlot` does not violates any of the service's booking policies,
618
- * returns as `true`. Otherwise, returns as `false`.
619
- *
620
- * > __Note:__
621
- * > A time slot that doesn't meet the service's bookings policies will be returned with `bookable` = false,
622
- * > while a time slot with no available resources will not be returned at all.
524
+ * Whether the time slot is bookable according to the service's booking policies.
525
+ * If not specified, returns both bookable and un-bookable time slots.
623
526
  */
624
527
  bookable?: boolean | null;
625
528
  /**
626
- * Indicators for service's booking policy violations for booking the `TimeSlot`.
627
- *
628
- * A bookable time slot must not violate any policy,
629
- * therefor, this filter is only relevant when `bookable` filter is false.
630
- *
631
- * Each nested field is checked on its own. i.e. if `tooEarlyToBook` is defined and `bookOnlineDisabled` is not defined
632
- * we return slots for which `tooEarlyToBook` is same as on the request, regardless of `bookOnlineDisabled`.
529
+ * Indicators for service's booking policy violations.
530
+ * Only relevant when `bookable` filter is set to `false`. Allows filtering for time slots with specific violation types:
531
+ * - `tooEarlyToBook`: Returns slots that violate minimum advance booking time.
532
+ * - `tooLateToBook`: Returns slots that violate maximum advance booking time.
533
+ * - `bookOnlineDisabled`: Returns slots where online booking is disabled.
633
534
  */
634
535
  bookingPolicyViolations?: BookingPolicyViolations;
635
536
  /**
636
- * Maximum number of slots to load for each day. For example, if `timeSlotsPerDay` is set to `3`,
637
- * we return at most 3 available TimeSlots for each day within the date range specified in request.
638
- *
639
- * By default,
640
- * if `bookable` filter was not specified,
641
- * and a day has both `bookable` and `un-bookable` slots, `bookable` slots are returned first.
642
- *
643
- * If the number of `bookable` slots is less than the requested `timeSlotsPerDay`,
644
- * `un-bookable` slots will be returned according to the specified filters.
537
+ * Maximum number of slots to return for each day in the specified time range.
538
+ * If `bookable` filter isn't specified, bookable slots are returned first.
645
539
  */
646
540
  timeSlotsPerDay?: number | null;
647
541
  /**
648
- * CursorPaging.
649
- *
650
- * Enables you to fetch results in smaller, more manageable chunks
651
- * by setting a limit on the number of results returned in response.
652
- * This is useful in order to enhance efficiency of data retrieval and reduce load on both the client and server.
653
- *
654
- * If there are more results than the specified limit, the response will contain a `cursorPagingMetaData`
655
- * with a cursor pointing to next page of results. In order to fetch the next page of results, you should pass the
656
- * returned cursor to the next call as `cursorPaging`.`cursor`.
657
- *
658
- * For the first call, you should only specify the `limit` for the results page.
659
- * For each following call, you should only pass `cursorPaging`.`cursor` with the returned cursor from previous call, and
660
- * a `cursorPaging`.`limit`.
661
- * No need to specify any additional parameters.
662
- *
663
- * <blockquote class="important">
664
- * <p><strong>Important:</strong><br/>
665
- * If you only provide a <code class="grey-background">cursorPaging</code>. <code class="grey-background">cursor</code>,
666
- * the response will contain the default size of results which is `1000`.
667
- * </p>
668
- * </blockquote>
542
+ * Cursor-based paging configuration.
543
+ * Enables fetching results in smaller chunks by setting a limit on the number of results.
544
+ * For consistent pagination behavior, use the same `limit` value throughout a pagination sequence.
545
+ * When specifying a new `limit` in follow-up requests, the API respects the new value.
669
546
  */
670
547
  cursorPaging?: CursorPaging;
671
548
  /**
672
- * resources filter
673
- * If specified, only time slots with these resources will be returned.
549
+ * Resource types to filter time slots.
550
+ * Only returns time slots that have these specific resource types available.
551
+ * This filters the time slots themselves, unlike `includeResourceTypeIds` which only controls response details.
674
552
  * @maxSize 3
675
553
  */
676
554
  resourceTypes?: ResourceType[];
@@ -703,13 +581,13 @@ interface CustomerChoices {
703
581
  }
704
582
  interface ResourceType {
705
583
  /**
706
- * Resource type ID.
584
+ * Resource type ID ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resource-types/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resource-types-v2/introduction)).
707
585
  * @format GUID
708
586
  */
709
587
  resourceTypeId?: string | null;
710
588
  /**
711
589
  * Resource IDs.
712
- * The response will contain only slots that have at least one of the specified resources.
590
+ * Available only if there is at least 1 resource available for the slot.
713
591
  * @format GUID
714
592
  * @minSize 1
715
593
  * @maxSize 135
@@ -718,84 +596,70 @@ interface ResourceType {
718
596
  }
719
597
  interface ListAvailabilityTimeSlotsResponse {
720
598
  /**
721
- * Time slots.
599
+ * Retrieved time slots.
600
+ * Sorted by `localStartDate` in ascending order. When multiple slots have the same start time, no specific secondary sorting is guaranteed.
722
601
  * @maxSize 1000
723
602
  */
724
603
  timeSlots?: TimeSlot[];
725
604
  /**
726
- * Time zone, in IANA time zone format.
727
- * Shared for all TimeSlots in response.
605
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
606
+ * For example, `America/New_York` or `UTC`.
607
+ *
608
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
728
609
  * @minLength 1
729
610
  * @maxLength 150
730
611
  */
731
612
  timeZone?: string | null;
732
613
  /**
733
- * CursorPagingMetaData.
734
- * Contains information about the next page of results.
735
- *
736
- * By default,
737
- * if there are more than 1000 results,
738
- * the response will contain a `cursorPagingMetaData` with a cursor to the next page of results.
739
- *
740
- * <blockquote class="important">
741
- * <p><strong>Important:</strong><br/>
742
- * <code class="grey-background">count</code> is not supported.</p>
743
- * </blockquote>
614
+ * Paging metadata for the next page of results.
615
+ * Contains a cursor if there are more than 1000 results.
744
616
  */
745
617
  cursorPagingMetadata?: CursorPagingMetadata;
746
618
  }
747
619
  interface GetAvailabilityTimeSlotRequest {
748
620
  /**
749
621
  * Service ID of the time slot.
750
- * Currently supported only for services of type `APPOINTMENT`.
622
+ * You must specify the ID of an appointment-based service.
751
623
  * @format GUID
752
624
  */
753
625
  serviceId?: string;
754
626
  /**
755
- * Local start date of the time slot, in ISO-8601 format.
756
- * For example, "2024-01-30T13:30:00".
627
+ * Local start date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
628
+ * For example, `2026-01-30T13:30:00`.
757
629
  * @format LOCAL_DATE_TIME
758
630
  */
759
631
  localStartDate?: string;
760
632
  /**
761
- * Local end date of the time slot, in ISO-8601 format.
762
- * For example, "2024-01-30T14:30:00".
633
+ * Local end date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
634
+ * For example, `2026-01-30T13:30:00`.
763
635
  * @format LOCAL_DATE_TIME
764
636
  */
765
637
  localEndDate?: string;
766
638
  /**
767
- * Time zone, in IANA time zone format.
639
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
640
+ * For example, `America/New_York` or `UTC`.
641
+ *
642
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
768
643
  * @minLength 1
769
644
  * @maxLength 150
770
645
  */
771
646
  timeZone?: string | null;
772
647
  /**
773
- * The location of the time slot.
774
- *
775
- * You must provide a specific `locationType`.
776
- * If locationType is `BUSINESS`, you __must__ also provide a `locationId`.
648
+ * Location to filter time slots by.
777
649
  *
778
- * <blockquote class="warning">
779
- * <p>Supports filtering by location type, or by location ID.
780
- * Other fields like <code class="grey-background">name</code> are ignored.</p>
781
- * </blockquote>
650
+ * For business locations, you must specify a location ID.
651
+ * When specifying a location ID, all other location field filters are ignored.
782
652
  */
783
653
  location?: Location;
784
654
  /**
785
- * Resources to include in response.
786
- *
787
- * If specified,
788
- * the returned `TimeSlot` contains only the available resources out of provided list.
789
- * Otherwise, the returned `TimeSlot` returned with all possible `AvailableResources`.
655
+ * IDs of the resources ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resources/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/introduction)) to check availability for.
656
+ * If omitted, time slots are returned if there's at least 1 available resource.
790
657
  * @format GUID
791
658
  * @maxSize 135
792
659
  */
793
660
  resourceIds?: string[];
794
661
  /**
795
- * Resource type IDs to include in response, this is in addition to the requested `resourceIds`.
796
- *
797
- * If specified in request, the returned `TimeSlot` contains only the `AvailableResources` with `ResourceTypeId`
798
- * out of those specified, each contains all the available resources of this type.
662
+ * IDs of the resource types ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resource-types/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resource-types-v2/introduction)) to check availability for.
799
663
  * @format GUID
800
664
  * @maxSize 100
801
665
  */
@@ -803,23 +667,26 @@ interface GetAvailabilityTimeSlotRequest {
803
667
  }
804
668
  interface GetAvailabilityTimeSlotRequestCustomerChoices {
805
669
  /**
806
- * The selected add-ons IDs.
670
+ * Selected add-on IDs.
807
671
  * Max: Derived from max amount of Add-On groups * max amount of Add-Ons per group.
808
672
  * @format GUID
809
673
  * @maxSize 21
810
674
  */
811
675
  addOnIds?: string[] | null;
812
676
  /**
813
- * The selected duration choice ID.
677
+ * Selected duration choice ID.
814
678
  * @format GUID
815
679
  */
816
680
  durationChoiceId?: string | null;
817
681
  }
818
682
  interface GetAvailabilityTimeSlotResponse {
819
- /** Time slot. */
683
+ /** Retrieved time slot. */
820
684
  timeSlot?: TimeSlot;
821
685
  /**
822
- * Time zone, in IANA time zone format.
686
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
687
+ * For example, `America/New_York` or `UTC`.
688
+ *
689
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
823
690
  * @minLength 1
824
691
  * @maxLength 150
825
692
  */
@@ -827,87 +694,102 @@ interface GetAvailabilityTimeSlotResponse {
827
694
  }
828
695
  interface ListEventTimeSlotsRequest {
829
696
  /**
830
- * Local start date for which event time slots are returned, in ISO-8601 format.
831
- * E.g., "2024-01-30T13:30:00".
832
- * Required, unless `cursorPaging` is provided.
697
+ * Lower boundary for `localStartDate` to include in the response.
698
+ * Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate.
699
+ * Required unless you specify `cursorPaging.cursor`.
700
+ *
701
+ * Local start date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
702
+ * For example, `2026-01-30T13:30:00`.
833
703
  * @format LOCAL_DATE_TIME
834
704
  */
835
705
  fromLocalDate?: string | null;
836
706
  /**
837
- * Local end date for which event time slots are returned, in ISO-8601 format.
838
- * E.g., "2024-01-30T13:30:00".
839
- * Required, unless `cursorPaging` is provided.
707
+ * Upper boundary for `localStartDate` to include in the response.
708
+ * Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate`.
709
+ * Required unless you specify `cursorPaging.cursor`.
710
+ *
711
+ * Local end date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
712
+ * For example, `2026-01-30T13:30:00`.
840
713
  * @format LOCAL_DATE_TIME
841
714
  */
842
715
  toLocalDate?: string | null;
843
716
  /**
844
- * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database).
845
- * For example, `America/New_York`.
717
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
718
+ * For example, `America/New_York` or `UTC`.
846
719
  *
847
- * Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties).
720
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
848
721
  * @maxLength 100
849
722
  */
850
723
  timeZone?: string | null;
851
724
  /**
852
- * Optional service IDs to filter by.
725
+ * Optional service IDs to filter the response.
853
726
  * If not provided, time slots for all services are returned.
854
727
  * @format GUID
855
728
  * @maxSize 100
856
729
  */
857
730
  serviceIds?: string[] | null;
858
731
  /**
859
- * Whether to filter bookable slots only.
860
- * A bookable slot is a slot that has remaining capacity and also satisfies the booking policy.
861
- * Default true: bookable and non-bookable slots are returned.
732
+ * Whether to include time slots that aren't bookable according to the service's booking policy or that are fully booked.
733
+ *
734
+ * Default: `true` - both bookable and non-bookable slots are returned.
862
735
  */
863
736
  includeNonBookable?: boolean | null;
864
737
  /**
865
- * Filter event time slots by the minimum bookable capacity.
738
+ * Minimum bookable capacity.
739
+ * Use to filter out sessions that can't accommodate the desired party size.
866
740
  * @min 1
867
741
  */
868
742
  minBookableCapacity?: number | null;
869
743
  /**
870
- * Optional filter to apply to the events. E.g., resource, location, etc.
871
- * See the Events API [Supported Filters and Sorting](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/supported-filters-and-sorting) for more information.
744
+ * Optional filter to apply to the events, for example resource or location.
745
+ * See the [Events API Supported Filters and Sorting article](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/supported-filters-and-sorting) for a complete list of filters.
872
746
  */
873
747
  eventFilter?: Record<string, any> | null;
874
748
  /**
875
- * The maximum number of time slots to return for each day.
876
- * For example, if `maxSlotsPerDay` is set to `1`, at most 1 available slot is returned for each day.
877
- * When a day has both bookable and non-bookable slots, bookable slots are returned first.
878
- * If `maxSlotsPerDay` is provided, `toLocalDate` must also be provided and must be at most 1 month after `fromLocalDate`.
749
+ * Maximum number of slots to return for each day in the specified time range.
750
+ * If both bookable and un-bookable slots exist on the same day, bookable slots are returned first.
751
+ *
752
+ * When you specify `maxSlotsPerDay`, you must also specify `toLocalDate`, and it must be no more than 1 month after `fromLocalDate`.
879
753
  * @min 1
880
754
  * @max 1000
881
755
  */
882
756
  maxSlotsPerDay?: number | null;
883
- /** Cursor to retrieve the next page of results. */
757
+ /**
758
+ * Cursor-based paging configuration.
759
+ * Enables fetching results in smaller chunks by setting a limit on the number of returned items.
760
+ */
884
761
  cursorPaging?: CursorPaging;
885
762
  }
886
763
  interface ListEventTimeSlotsResponse {
887
764
  /** Retrieved time slots matching the specified filters. */
888
765
  timeSlots?: TimeSlot[];
889
766
  /**
890
- * The time slots time zone.
891
- * Either provided explicitly or default to the business time zone.
767
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
768
+ * For example, `America/New_York` or `UTC`.
769
+ *
770
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
892
771
  * @minLength 1
893
772
  * @maxLength 150
894
773
  */
895
774
  timeZone?: string | null;
896
- /** Paging metadata. */
775
+ /**
776
+ * Paging metadata for the next page of results.
777
+ * Contains a cursor if more data is available.
778
+ */
897
779
  pagingMetadata?: CursorPagingMetadata;
898
780
  }
899
781
  interface GetEventTimeSlotRequest {
900
782
  /**
901
- * The event ID.
783
+ * Event ID.
902
784
  * @minLength 36
903
785
  * @maxLength 250
904
786
  */
905
787
  eventId?: string | null;
906
788
  /**
907
- * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database).
908
- * For example, `America/New_York`.
789
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
790
+ * For example, `America/New_York` or `UTC`.
909
791
  *
910
- * Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties).
792
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
911
793
  * @maxLength 100
912
794
  */
913
795
  timeZone?: string | null;
@@ -916,8 +798,10 @@ interface GetEventTimeSlotResponse {
916
798
  /** The time slot. */
917
799
  timeSlot?: TimeSlot;
918
800
  /**
919
- * The time slot time zone.
920
- * Either provided explicitly or default to the business time zone.
801
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
802
+ * For example, `America/New_York` or `UTC`.
803
+ *
804
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
921
805
  * @minLength 1
922
806
  * @maxLength 150
923
807
  */
@@ -963,83 +847,28 @@ type GetMultiServiceAvailabilityTimeSlotApplicationErrors = {
963
847
  };
964
848
  type TimeSlotNonNullablePaths = `location.locationType` | `availableResources` | `nestedTimeSlots` | `nestedTimeSlots.${number}.serviceId` | `nestedTimeSlots.${number}.localStartDate` | `nestedTimeSlots.${number}.localEndDate`;
965
849
  /**
966
- * Retrieves a list of multiService `TimeSlot`s that match the provided filters.
967
- *
968
- * <blockquote class="important">
969
- * <p><strong>Important:</strong><br/>
970
- * Currently supported only for services of type <code class="grey-background">APPOINTMENT</code>.</p>
971
- * </blockquote>
972
- *
973
- * The request body __must__ include either:
974
- * + All of the following filters: `service`.`serviceId`, `fromLocalDate`, `toLocalDate`, `location`, and `timeZone`. You may add additional filters as you wish.
975
- * + A `cursorPaging` with a valid `cursor` from previous response.
976
- *
977
- *
978
- * Each [TimeSlot](https://bo.wix.com/wix-docs/rest/all-apis/wix-service-availability/availability-time-slots/time-slot-object) in response
979
- * represents the availability of the given sequence of services in a specific order, location, and within a given range of time.
980
- *
981
- * Each `TimeSlot`.`NestedTimeSlot` represents a single service from the given list. The order of the `NestedTimeSlots` is the same as the order
982
- * of the given services in request.
983
- * The first `NestedTimeSlot` has `localStartDate` within the given `fromLocalDate` and `toLocalDate` exclusive,
984
- * and each following `NestedTimeSlot` has a `localStartDate` that equals to the previous `NestedTimeSlot`'s `localEndDate`.
985
- *
986
- * By default,
987
- * the response contains at most 1000 results.
988
- * If there are more than 1000 results, we return a `cursorPagingMetadata` with
989
- * a cursor for the next page of results, regardless of whether a `cursorPaging`
990
- * was provided in request.
850
+ * Retrieves a list of multi-service time slots that match the provided filters.
991
851
  *
992
- * > __Notes:__
993
- * > + All nested time slots share the same location.
994
- * > + You can pass up to 8 services in request.
995
852
  *
996
- * ### AvailableResources in response:
997
- * The `TimeSlot`.`NestedTimeSlot`'s `AvailableResources` contains information about the resources that are available to provide the service
998
- * within the `NestedTimeSlot` range of time. Each `AvailableResources` contains information about available resources of the same type.
853
+ * ## Required filters
999
854
  *
1000
- * <blockquote class="important">
1001
- * <p><strong>Important:</strong><br/>
1002
- * By default,
1003
- * if you don't specify <code class="grey-background">service</code>.<code class="grey-background">includeResourceTypeIds</code>
1004
- * or <code class="grey-background">service</code>.<code class="grey-background">resourceIds</code> filters in request,
1005
- * we return TimeSlots with <code class="grey-background">NestedTimeSlot</code>s with an empty <code class="grey-background">AvailableResources</code>.
1006
- * <br/><strong>Note:</strong><br/> Not specifying resources filters can be handy in case you want to avoid large response in flows that only
1007
- * interested of whether the time slots are available. [Finding the next available slot within the next 3 months](https://bo.wix.com/wix-docs/rest/all-apis/service-availability/multi-service-availability-time-slots/sample-flows?localViewerId=inbari#all-apis_service-availability_multi-service-availability-time-slots_sample-flows_find-the-first-date-within-the-next-3-months-that-all-selected-services-are-available-for)
1008
- * is an example for such flow.
1009
- * </p>
1010
- * </blockquote>
855
+ * You must supply either:
856
+ * - `services.serviceId`, `fromLocalDate`, `toLocalDate`, `location`, and `timeZone` (additional filters are optional), or
857
+ * - `cursorPaging.cursor` returned from a previous response.
1011
858
  *
859
+ * Each returned `timeSlot` acts as a container spanning the entire service sequence, with nested time slots providing individual service details.
1012
860
  *
1013
- * If you wish to get a list of available resources for a `TimeSlot`.`NestedTimeSlot` you should either:
1014
- * + provide `service`.`resourceIds` in request.
1015
- * + provide `service`.`includeResourceTypeIds` in request.
861
+ * ## Defaults
1016
862
  *
1017
- * __Notes:__
1018
- * + In both cases the returned `TimeSlot`.`NestedTimeSlot` contains __up__ to 10 `AvailableResources` that match the provided filters. Each `AvailableResources` contains __up__ to 10 available `resources` of the same type that match the provided filters.
1019
- * + If an `AvailableResources` has more available resources which are not listed within it, we return `AvailableResources`.`hasMoreAvailableResources` as true.
1020
- * + If you wish to get the full available resources list for all `NestedTimeSlot` of a specific `TimeSlot`, you should call [GetMultiServiceAvailabilityTimeSlot](https://bo.wix.com/wix-docs/rest/all-apis/wix-service-availability/multi-service-availability-time-slots/get-multi-service-availability-time-slot).
863
+ * - Results are sorted by `localStartDate` in ascending order.
864
+ * - `cursorPaging.limit` is `1000`.
865
+ * - The response contains both bookable and un-bookable slots.
1021
866
  *
867
+ * ## Service type limitations
1022
868
  *
1023
- * ### Availability VS Bookability
1024
- * An `available` time slot is not necessarily `bookable`.
1025
- * The `bookable` field of a `TimeSlot` indicates whether the customer can book all of the of the services within the given time slot,
1026
- * at a specific period of time.
1027
- * Read more about [Availability VS Bookability](https://bo.wix.com/wix-docs/rest/all-apis/wix-service-availability/multi-service-availability-time-slots/introduction#all-apis_wix-service-availability_multi-service-availability-time-slots_introduction_availability-vs-bookability).
869
+ * Only appointment-type services are supported.
1028
870
  *
1029
- * By default,
1030
- * + The response does not contains `unavailable` TimeSlots.For example, if there are no available resources to provide one of the services from `2024-01-30T14:30:00` to `2024-01-30T15:30:00`, we don't return TimeSlots with `NestedTimeSlot`.`localStartDate` within this range for this service.
1031
- * + The response contains both `bookable` and `un-bookable` TimeSlots.For example, if one of the services has a booking policy which enforces booking the service up to 10 minutes before the session starts, we return TimeSlots with the violating `NestedTimeSlot`.`localStartDate`, with `bookable` as `false`. If you want to list only __bookable__ TimeSlots you should pass `bookable` as `true`.
1032
- * + If booking one of the `NestedTimeSlot`s violates one of the corresponding service's booking policies, the `TimeSlot` returns with `bookable` as false. There is no indication which service's policy was violated.
1033
- *
1034
- * <blockquote class="important">
1035
- * <p><strong>Important:</strong>
1036
- * Because of DST, there are edge cases where certain times either do not exist or exist twice for a local time zone.
1037
- * Read more about <a href="https://bo.wix.com/wix-docs/rest/all-apis/wix-service-availability/multi-service-availability-time-slots/introduction#all-apis_wix-service-availability_multi-service-availability-time-slots_introduction_daylight-saving-time-dst-handling">DST Handling</a></p>
1038
- * </blockquote>
1039
- *
1040
- * ### ListAvailabilityTimeSlots runs with the following defaults:
1041
- * + `localStartDate` is sorted in `ASC` order.
1042
- * + `cursorPaging`.`limit` is `1000`.
871
+ * To retrieve appointment availability for a single service, call List Availability Time Slots ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/availability/availability-time-slots/list-availability-time-slots) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/availability/availability-time-slots/list-availability-time-slots)).
1043
872
  * @public
1044
873
  * @documentationMaturity preview
1045
874
  * @permissionId BOOKINGS.AVAILABILITY_READ_MULTI_SERVICE_TIME_SLOTS
@@ -1054,170 +883,101 @@ declare function listMultiServiceAvailabilityTimeSlots(options?: ListMultiServic
1054
883
  }>;
1055
884
  interface ListMultiServiceAvailabilityTimeSlotsOptions {
1056
885
  /**
1057
- * Services for which the multiService time slots are being returned for.
1058
- * Each service contains its own resources filters within.
886
+ * Services for which the multi-service time slots are returned.
887
+ * Each service can include its own resource filters.
1059
888
  *
1060
- * MinSize: `2`.
1061
- * MaxSize: `8`.
1062
- *
1063
- * Required, unless `cursorPaging`.`cursor` is provided.
889
+ * Required unless you specify `cursorPaging.cursor`.
1064
890
  * @maxSize 8
1065
891
  */
1066
892
  services?: Service[];
1067
893
  /**
1068
- * Lower boundary for `localStartDate` to include in response, in ISO-8601 format.
1069
- * For example, "2024-01-30T13:30:00".
1070
- *
1071
- * Each returned `TimeSlot` in response has a `localStartDate`
1072
- * within the provided `fromLocalDate` and `toLocalDate` exclusive.
894
+ * Lower boundary for `localStartDate` in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
895
+ * For example, `2026-01-30T13:30:00`.
896
+ * Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate`.
1073
897
  *
1074
- * Required, unless `cursorPaging`.`cursor` is provided.
898
+ * Required unless you specify `cursorPaging.cursor`.
1075
899
  * @format LOCAL_DATE_TIME
1076
900
  */
1077
901
  fromLocalDate?: string | null;
1078
902
  /**
1079
- * Upper boundary for `localStartDate` to include in response, in ISO-8601 format.
1080
- * For example, "2024-01-30T14:30:00".
903
+ * Upper boundary for `localToDate` in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
904
+ * For example, `2026-01-30T13:30:00`.
905
+ * Each returned time slot has a `localEndDate` between `fromLocalDate` and `toLocalDate`.
1081
906
  *
1082
- * Each returned `TimeSlot` in response has a `localStartDate`
1083
- * within the provided `fromLocalDate` and `toLocalDate` exclusive.
1084
- *
1085
- * Required, unless `cursorPaging`.`cursor` is provided.
907
+ * Required unless you specify `cursorPaging.cursor`.
1086
908
  * @format LOCAL_DATE_TIME
1087
909
  */
1088
910
  toLocalDate?: string | null;
1089
911
  /**
1090
- * Time zone, in IANA time zone format.
912
+ * 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`.
913
+ *
914
+ * Required unless you specify `cursorPaging.cursor`.
1091
915
  *
1092
- * Required, unless `cursorPaging`.`cursor` is provided.
916
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
1093
917
  * @minLength 1
1094
918
  * @maxLength 150
1095
919
  */
1096
920
  timeZone?: string | null;
1097
921
  /**
1098
- * Location for which the multiService TimeSlots are being returned for.
922
+ * Location for which the multi-service time slots are returned. If you filter by `{"type": "BUSINESS"}`, you must also specify a location ID. A filter for `location.name` is ignored.
1099
923
  *
1100
- * You can specify location or location type for which the TimeSlots will be returned for.
1101
- * If locationType is `BUSINESS`, you __must__ provide a locationId.
1102
- *
1103
- * <blockquote class="warning">
1104
- * <p><strong>warning:</strong><br/>
1105
- * Supports filtering by location type, or by location ID. </br>
1106
- * Other fields like <code class="grey-background">name</code> are ignored.</p>
1107
- * </blockquote>
1108
- *
1109
- * Required, unless `cursorPaging`.`cursor` is provided.
924
+ * Required unless you specify `cursorPaging.cursor`.
1110
925
  */
1111
926
  location?: Location;
1112
927
  /**
1113
- * Whether the `TimeSlot` is bookable according to all of the services booking policies.
1114
- *
1115
- * If booking any of the `TimeSlot`.`NestedTimeSlot`s violates any of its services bookings policies,
1116
- * returns as `false`. Otherwise, returns as `true`.
1117
- *
1118
- * > __Note:__
1119
- * > A `TimeSlot` with a `NestedTimeSlot` that doesn't meet its service's bookings policies will be returned with `bookable` = false,
1120
- * > while a `TimeSlot` with no available resources will not be returned at all.
928
+ * Whether the time slot is bookable according to all services' booking policies.
929
+ * If not specified, returns both bookable and un-bookable time slots.
1121
930
  */
1122
931
  bookable?: boolean | null;
1123
932
  /**
1124
- * Indicators for service's booking policy violations for booking the `TimeSlot`.
1125
- *
1126
- * A bookable time slot must not violate any policy,
1127
- * therefor, this filter is only relevant when `bookable` filter is false.
1128
- *
1129
- * Each nested field is checked on all `NestedTimeSlot`s. For example, if only one of the `NestedTimeSlot`'s
1130
- * has a service with `tooEarlyToBook` same as in the request, we return the `TimeSlot` regardless of whether
1131
- * the other `NestedTimeSlots` has the same `tooEarlyToBook` as in request.
1132
- *
1133
- * Each nested field is checked on its own. For example, if `tooEarlyToBook` is defined and `bookOnlineDisabled` is not defined
1134
- * we return slots for which `tooEarlyToBook` is same as on the request, regardless of `bookOnlineDisabled`.
933
+ * Indicators for service's booking policy violations.
934
+ * Only relevant when `bookable` filter is false.
1135
935
  */
1136
936
  bookingPolicyViolations?: BookingPolicyViolations;
1137
937
  /**
1138
- * Maximum number of slots to load for each day. For example, if `timeSlotsPerDay` is set to `3`,
1139
- * we return at most 3 available TimeSlots for each day within the date range specified in request.
1140
- *
1141
- * By default,
1142
- * if `bookable` filter was not specified,
1143
- * and a day has both `bookable` and `un-bookable` slots, `bookable` slots are returned first.
1144
- *
1145
- * If the number of `bookable` slots is less than the requested `timeSlotsPerDay`,
1146
- * `un-bookable` slots will be returned according to the specified filters.
938
+ * Maximum number of slots to return for each day in the specified time range.
939
+ * If `bookable` filter isn't specified, bookable slots are returned first.
1147
940
  */
1148
941
  timeSlotsPerDay?: number | null;
1149
942
  /**
1150
- * CursorPaging.
1151
- *
1152
- * Enables you to fetch TimeSlots in smaller, more manageable chunks
1153
- * by setting a limit on the number of results returned in response.
1154
- * This is useful in order to enhance efficiency of data retrieval and reduce load on both the client and server.
1155
- *
1156
- * If there are more results than the specified limit, the response will contain a `cursorPagingMetaData`
1157
- * with a cursor pointing to next page of results. In order to fetch the next page of results, you should pass the
1158
- * returned cursor to the next call as `cursorPaging`.`cursor`.
1159
- *
1160
- * For the first call, you should only specify the `limit` for the results page.
1161
- * For each following call, you should only pass the previous returned cursor as `cursorPaging`.`cursor`
1162
- * the `cursorPaging`.`limit`. You may pass a different `limit`.
1163
- * No need to specify any additional parameters.
1164
- *
1165
- * <blockquote class="important">
1166
- * <p><strong>Important:</strong><br/>
1167
- * If you only provide a <code class="grey-background">cursorPaging</code>. <code class="grey-background">cursor</code>,
1168
- * the response will contain the default size of results which is `1000`.
1169
- * </p>
1170
- * </blockquote>
943
+ * Cursor-based paging configuration.
944
+ * Enables fetching results in smaller chunks by setting a limit on the number of results.
945
+ * For consistent pagination behavior, use the same `limit` value throughout a pagination sequence.
946
+ * When specifying a new `limit` in follow-up requests, the API respects the new value.
1171
947
  */
1172
948
  cursorPaging?: CursorPaging;
1173
949
  }
1174
950
  /**
1175
- * Retrieves an available multiService `TimeSlot` that match the provided filters.
951
+ * Retrieves a multi-service time slot that matches the specified filters.
952
+ *
1176
953
  *
1177
- * Throws `SlotNotFound` if there is no such available time slot.
954
+ * Call this method after finding a suitable slot with List Multi-Service Availability Time Slots to obtain full capacity, resource, and booking-policy details.
1178
955
  *
1179
- * <blockquote class="important">
1180
- * <p><strong>Important:</strong><br/>
1181
- * Currently supported only for services of type <code class="grey-background">APPOINTMENT</code>.</p>
1182
- * </blockquote>
956
+ * The returned time slot acts as a container spanning the entire service sequence, with nested time slots providing detailed information for each individual service.
1183
957
  *
1184
- * By default,
1185
- * if you don't provide a `service`.`includeResourceTypeIds` or `service`.`resourceIds` in request,
1186
- * we return for each `TimeSlot`.`NestedTimeSlot` all `AvailableResources` with all `AvailableResources`.`resources` which are available to provide
1187
- * the corresponding service within the time slot.
958
+ * ## Defaults
1188
959
  *
1189
- * If you specify `service`.`includeResourceTypeIds` or `service`.`resourceIds` in request,
1190
- * the returned `TimeSlot`.`NestedTimeSlot` for this service will contain only `AvailableResources` with at least one available resource
1191
- * which match the given resources filters,
1192
- * each contains all available resources out of those requested.
960
+ * - Returns all available resources unless you filter by `services.resourceIds` or `services.includeResourceTypeIds`.
961
+ * - Includes full booking-status and capacity details.
1193
962
  *
1194
- * + Notes:
1195
- * + All nested time slots share the same location.
1196
- * + You can pass up to 8 services.
963
+ * ## Service type limitations
1197
964
  *
1198
- * <blockquote class="tip">
1199
- * <p><strong>Tip:</strong><br/>
1200
- * Use this API in order to get the availability of a specific <code class="grey-background">TimeSlot</code> out of those returned from <code class="grey-background">ListMultiServiceAvailabilityTimeSlots</code> API.</p>
1201
- * </blockquote>
1202
- * @param services - Services for which the multiService TimeSlots are being returned for.
1203
- * Each service contains its own resources filters within.
965
+ * Only appointment-type services are supported.
1204
966
  *
1205
- * MinSize: 2.
1206
- * MaxSize: 8.
1207
- * @param localStartDate - Local start date of the time slot, in ISO-8601 format.
1208
- * For example, "2024-01-30T13:30:00".
1209
- * @param localEndDate - Local end date of the time slot, in ISO-8601 format.
1210
- * For example, "2024-01-30T14:30:00".
1211
- * @param timeZone - Time zone, in IANA time zone format.
1212
- * @param location - The location of the time slot.
967
+ * To retrieve appointment availability for a single service, call List Availability Time Slots ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/availability/availability-time-slots/list-availability-time-slots) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/availability/availability-time-slots/list-availability-time-slots)).
968
+ * @param services - Services for which the multi-service time slots are returned.
969
+ * You can specify resource filters for each service.
970
+ * @param localStartDate - Local start date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
971
+ * For example, `2026-01-30T13:30:00`.
972
+ * @param localEndDate - Local end date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
973
+ * For example, `2026-01-30T13:30:00`.
974
+ * @param timeZone - Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
975
+ * For example, `America/New_York` or `UTC`.
1213
976
  *
1214
- * You must provide a specific `locationType`.
1215
- * If locationType is `BUSINESS`, you __must__ also provide a `locationId`.
977
+ * Default: `timeZone` specified in the business site properties ([SDK](https://dev.wix.com/docs/sdk/backend-modules/site-properties/properties/get-site-properties) | [REST](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties)).
978
+ * @param location - Location for which the multi-service time slots are returned. If you filter by `{"type": "BUSINESS"}`, you must also specify a location ID. A filter for `location.name` is ignored.
1216
979
  *
1217
- * <blockquote class="warning">
1218
- * <p>Supports filtering by location type, or by location ID.
1219
- * Other fields like <code class="grey-background">name</code> are ignored.</p>
1220
- * </blockquote>
980
+ * Required unless you specify `cursorPaging.cursor`.
1221
981
  * @public
1222
982
  * @documentationMaturity preview
1223
983
  * @requiredField localEndDate