@wix/auto_sdk_bookings_availability-time-slots 1.0.246 → 1.0.248

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.
@@ -289,17 +289,11 @@ interface NonBookableReasons {
289
289
  /** Whether the related event is cancelled. */
290
290
  eventCancelled?: boolean | null;
291
291
  }
292
- interface ListAvailabilityTimeSlotsRequest {
293
- /**
294
- * Service ID for which to retrieve time slots. You must specify the ID of an appointment-based service.
295
- * Required, unless you specify `cursorPaging.cursor`.
296
- * @format GUID
297
- */
298
- serviceId?: string | null;
292
+ interface ListEventTimeSlotsRequest {
299
293
  /**
300
- * Lower boundary for `localStartDate` to include in response.
301
- * Each returned time slot has a `localStartDate` within the provided `fromLocalDate` and `toLocalDate` exclusive.
302
- * Required, unless you specify `cursorPaging.cursor`.
294
+ * Lower boundary for `localStartDate` to include in the response.
295
+ * Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate`.
296
+ * Required unless you specify `cursorPaging.cursor`.
303
297
  *
304
298
  * Local start date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
305
299
  * For example, `2026-01-30T13:30:00`.
@@ -307,9 +301,9 @@ interface ListAvailabilityTimeSlotsRequest {
307
301
  */
308
302
  fromLocalDate?: string | null;
309
303
  /**
310
- * Upper boundary for `localStartDate` to include in response.
311
- * Each returned time slot has a `localStartDate` within the provided `fromLocalDate` and `toLocalDate` exclusive.
312
- * Required, unless you specify `cursorPaging.cursor`.
304
+ * Upper boundary for `localStartDate` to include in the response.
305
+ * Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate`.
306
+ * Required unless you specify `cursorPaging.cursor`.
313
307
  *
314
308
  * Local end date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
315
309
  * For example, `2026-01-30T13:30:00`.
@@ -317,64 +311,58 @@ interface ListAvailabilityTimeSlotsRequest {
317
311
  */
318
312
  toLocalDate?: string | null;
319
313
  /**
320
- * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
314
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
321
315
  * For example, `America/New_York` or `UTC`.
322
316
  *
323
317
  * Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties).
324
- * @minLength 1
325
- * @maxLength 150
318
+ * @maxLength 100
326
319
  */
327
320
  timeZone?: string | null;
328
321
  /**
329
- * Locations to include in response.
330
- * If not specified, returns time slots for all locations where the service is available.
331
- * @maxSize 5
332
- */
333
- locations?: Location[];
334
- /**
335
- * Resource type IDs to include in the response.
336
- * If specified, returns up to 10 `availableResources` with matching `resourceTypeId`.
337
- * This controls which resource details are included in the response but doesn't filter the time slots themselves.
322
+ * Optional service IDs to filter the response.
323
+ * If not provided, time slots for all services are returned.
338
324
  * @format GUID
339
325
  * @maxSize 100
340
326
  */
341
- includeResourceTypeIds?: string[];
327
+ serviceIds?: string[] | null;
342
328
  /**
343
- * Whether the time slot is bookable according to the service's booking policies.
344
- * If not specified, returns both bookable and un-bookable time slots.
329
+ * Whether to include time slots that aren't bookable according to the service's booking policy or that are fully booked.
330
+ * - `true`: Both bookable and non-bookable time slots are returned.
331
+ * - `false`: Only bookable time slots are returned.
332
+ *
333
+ * Default: `true`
345
334
  */
346
- bookable?: boolean | null;
335
+ includeNonBookable?: boolean | null;
347
336
  /**
348
- * Indicators for service's booking policy violations.
349
- * Allows filtering for time slots with specific violation types based on [booking policies](https://dev.wix.com/docs/api-reference/business-solutions/bookings/policies/booking-policies/introduction)). When you don't specify `bookingPolicyViolations` filters, all slots are returned regardless of their booking policy status.
337
+ * Minimum bookable capacity.
338
+ * Use to filter out sessions that can't accommodate the desired party size.
339
+ * @min 1
350
340
  */
351
- bookingPolicyViolations?: BookingPolicyViolations;
341
+ minBookableCapacity?: number | null;
342
+ /**
343
+ * Optional filter to apply to the events, for example resource or location.
344
+ * See [Query Events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/query-events) for a list of supported filters.
345
+ */
346
+ eventFilter?: Record<string, any> | null;
352
347
  /**
353
348
  * Maximum number of slots to return for each day in the specified time range.
354
- * If `bookable` filter isn't specified, bookable slots are returned first.
349
+ * If both bookable and non-bookable slots exist on the same day, bookable slots are returned first.
350
+ *
351
+ * When you specify `maxSlotsPerDay`, you must also specify `toLocalDate`, and it must be no more than 1 month after `fromLocalDate`.
352
+ * @min 1
353
+ * @max 1000
355
354
  */
356
- timeSlotsPerDay?: number | null;
355
+ maxSlotsPerDay?: number | null;
357
356
  /**
358
357
  * Cursor-based paging configuration.
359
- * Enables fetching results in smaller chunks by setting a limit on the number of results.
360
- * For consistent pagination behavior, use the same `limit` value throughout a pagination sequence.
361
- * When specifying a new `limit` in follow-up requests, the API respects the new value.
358
+ * Enables fetching results in smaller chunks by setting a limit on the number of returned items.
362
359
  */
363
360
  cursorPaging?: CursorPaging;
364
361
  /**
365
- * Selected customer choices for service configuration.
366
- * If not specified, uses the service's default configuration.
367
- *
368
- * When using [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction), we recommend passing only `addOnIds` and omitting `durationInMinutes`. Wix Bookings then calculates the total duration automatically. If you specify both `addOnIds` and `durationInMinutes`, `durationInMinutes` must equal the service duration plus all selected add-on durations.
369
- */
370
- customerChoices?: CustomerChoices;
371
- /**
372
- * Resource types to filter time slots.
373
- * Only returns time slots that have these specific resource types available.
374
- * This filters the time slots themselves, unlike `includeResourceTypeIds` which only controls response details.
375
- * @maxSize 3
362
+ * Indicators for service's booking policy violations.
363
+ * Allows filtering for time slots with specific violation types based on [booking policies](https://dev.wix.com/docs/api-reference/business-solutions/bookings/policies/booking-policies/introduction). When you don't specify `bookingPolicyViolations` filters, all slots are returned regardless of their booking policy status.
376
364
  */
377
- resourceTypes?: ResourceType[];
365
+ bookingPolicyViolations?: BookingPolicyViolations;
378
366
  }
379
367
  interface CursorPaging {
380
368
  /**
@@ -394,51 +382,11 @@ interface CursorPaging {
394
382
  */
395
383
  cursor?: string | null;
396
384
  }
397
- /** Customer's selected choices during the booking flow. Use these values to calculate service configuration properties such as duration. */
398
- interface CustomerChoices {
399
- /**
400
- * Duration selected by the customer in minutes. Based on the customer's selection from [service options and variants](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/service-options-and-variants/introduction).
401
- * When using [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction), we recommend passing only `addOnIds` instead of `durationInMinutes`. Wix Bookings then calculates the total duration automatically. If you specify both `addOnIds` and `durationInMinutes`, `durationInMinutes` must equal the service duration plus all selected add-on durations.
402
- * @min 1
403
- * @max 44639
404
- */
405
- durationInMinutes?: number | null;
406
- /**
407
- * IDs of [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) selected by the customer.
408
- * When specifying this field, we recommend omitting `durationInMinutes`. Wix Bookings then calculates the total duration based on the service duration plus all selected add-on durations.
409
- * @format GUID
410
- * @maxSize 21
411
- */
412
- addOnIds?: string[] | null;
413
- /**
414
- * ID of the duration choice selected by the customer.
415
- * @format GUID
416
- */
417
- durationChoiceId?: string | null;
418
- }
419
- interface ResourceType {
420
- /**
421
- * [Resource type ID](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).
422
- * @format GUID
423
- */
424
- resourceTypeId?: string | null;
425
- /**
426
- * Resource IDs.
427
- * Available only if there is at least 1 resource available for the slot.
428
- * @format GUID
429
- * @maxSize 135
430
- */
431
- resourceIds?: string[] | null;
432
- }
433
- interface ListAvailabilityTimeSlotsResponse {
434
- /**
435
- * Retrieved time slots.
436
- * Sorted by `localStartDate` in ascending order. When multiple slots have the same start time, no specific secondary sorting is guaranteed.
437
- * @maxSize 1000
438
- */
385
+ interface ListEventTimeSlotsResponse {
386
+ /** Retrieved time slots matching the specified filters. */
439
387
  timeSlots?: TimeSlot[];
440
388
  /**
441
- * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
389
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
442
390
  * For example, `America/New_York` or `UTC`.
443
391
  *
444
392
  * Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties).
@@ -448,9 +396,9 @@ interface ListAvailabilityTimeSlotsResponse {
448
396
  timeZone?: string | null;
449
397
  /**
450
398
  * Paging metadata for the next page of results.
451
- * Contains a cursor if there are more than 1000 results.
399
+ * Contains a cursor if more data is available.
452
400
  */
453
- cursorPagingMetadata?: CursorPagingMetadata;
401
+ pagingMetadata?: CursorPagingMetadata;
454
402
  }
455
403
  interface CursorPagingMetadata {
456
404
  /** Offset that was requested. */
@@ -468,139 +416,27 @@ interface Cursors {
468
416
  /** Cursor pointing to previous page in the list of results. */
469
417
  prev?: string | null;
470
418
  }
471
- interface ListAvailabilityTimeSlotEndOptionsRequest {
472
- /**
473
- * Service ID. Must be an appointment-based service whose
474
- * `availabilityConstraints.durationRange` is configured. Call
475
- * [Get Service](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/get-service)
476
- * from Services V2 to check `availabilityConstraints.durationRange` before
477
- * invoking this method.
478
- * @format GUID
479
- */
480
- serviceId: string;
481
- /**
482
- * The picked start time. Each returned end option pairs with this start.
483
- * @format LOCAL_DATE_TIME
484
- */
485
- localStartDate: string;
486
- /**
487
- * Latest end time to include. Default: `localStartDate + maxDurationInMinutes`
488
- * from the service's `durationRange.hourConfig` (read from Services V2).
489
- * A tighter value is honored; `maxDurationInMinutes` always bounds the
490
- * result.
491
- * @format LOCAL_DATE_TIME
492
- */
493
- maxLocalEndDate?: string | null;
494
- /**
495
- * IANA time zone. Default: site `timeZone` property.
496
- * @minLength 1
497
- * @maxLength 150
498
- */
499
- timeZone?: string | null;
500
- /**
501
- * Location of the picked start. Required; must match the location of the
502
- * `localStartDate` slot returned by `ListAvailabilityTimeSlots`. The handler
503
- * validates that end options reachable from this start at this location.
504
- */
505
- location: Location;
506
- /**
507
- * Resource types to constrain the end options.
508
- * When the customer has already picked a resource before the end time
509
- * (e.g. flows that select a resource first, then start, then end), pass the
510
- * selected resource here so the response surfaces only ends that the
511
- * chosen resource can actually cover. Without this filter, the response
512
- * reflects the resource pool — ends valid for the pool but not for a
513
- * preselected resource would still be returned, and booking would fail
514
- * later.
515
- *
516
- * Omit when no resource has been preselected. In that case, end options
517
- * reflect any resource in the pool; pick the resource later via
518
- * `GetAvailabilityTimeSlot` with the chosen `localEndDate`.
519
- * @maxSize 3
520
- */
521
- resourceTypes?: ResourceType[];
522
- }
523
- interface ListAvailabilityTimeSlotEndOptionsResponse {
524
- /**
525
- * Available end options for the requested start.
526
- * Each entry is a `TimeSlot` sharing `localStartDate` with the request
527
- * and varying only in `localEndDate`. Sorted by `localEndDate` ascending
528
- * (shortest duration first).
529
- * See `TimeSlot` field notes for the constrained semantics of this response.
530
- * @maxSize 1000
531
- */
532
- endOptions?: TimeSlot[];
533
- /** IANA time zone, echoed from the request or resolved from the site default. */
534
- timeZone?: string | null;
535
- }
536
- interface GetAvailabilityTimeSlotRequest {
537
- /**
538
- * Service ID of the time slot.
539
- * You must specify the ID of an appointment-based service.
540
- * @format GUID
541
- */
542
- serviceId: string;
543
- /**
544
- * Local start date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
545
- * For example, `2026-01-30T13:30:00`.
546
- * @format LOCAL_DATE_TIME
547
- */
548
- localStartDate: string;
419
+ interface GetEventTimeSlotRequest {
549
420
  /**
550
- * Local end date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
551
- * For example, `2026-01-30T13:30:00`.
552
- * @format LOCAL_DATE_TIME
421
+ * Event ID.
422
+ * @minLength 36
423
+ * @maxLength 250
553
424
  */
554
- localEndDate: string;
425
+ eventId?: string | null;
555
426
  /**
556
- * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
427
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
557
428
  * For example, `America/New_York` or `UTC`.
558
429
  *
559
430
  * Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties).
560
- * @minLength 1
561
- * @maxLength 150
431
+ * @maxLength 100
562
432
  */
563
433
  timeZone?: string | null;
564
- /**
565
- * Location to filter time slots by.
566
- *
567
- * For business locations, you must specify a location ID.
568
- * When specifying a location ID, all other location field filters are ignored.
569
- */
570
- location?: Location;
571
- /**
572
- * IDs of the [resource types](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction) to check availability for.
573
- * @format GUID
574
- * @maxSize 100
575
- */
576
- includeResourceTypeIds?: string[];
577
- /**
578
- * Resource types to filter time slots.
579
- * Only returns time slots that have these specific resource types available.
580
- * This filters the time slots themselves, unlike `includeResourceTypeIds` which only controls response details.
581
- * @maxSize 3
582
- */
583
- resourceTypes?: ResourceType[];
584
- }
585
- interface GetAvailabilityTimeSlotRequestCustomerChoices {
586
- /**
587
- * Selected add-on IDs.
588
- * Max: Derived from max amount of Add-On groups * max amount of Add-Ons per group.
589
- * @format GUID
590
- * @maxSize 21
591
- */
592
- addOnIds?: string[] | null;
593
- /**
594
- * Selected duration choice ID.
595
- * @format GUID
596
- */
597
- durationChoiceId?: string | null;
598
434
  }
599
- interface GetAvailabilityTimeSlotResponse {
600
- /** Retrieved time slot. */
435
+ interface GetEventTimeSlotResponse {
436
+ /** The time slot. */
601
437
  timeSlot?: TimeSlot;
602
438
  /**
603
- * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
439
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
604
440
  * For example, `America/New_York` or `UTC`.
605
441
  *
606
442
  * Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties).
@@ -743,7 +579,21 @@ interface V2CustomerChoices {
743
579
  * Selected duration choice ID.
744
580
  * @format GUID
745
581
  */
746
- durationChoiceId?: string | null;
582
+ durationChoiceId?: string | null;
583
+ }
584
+ interface ResourceType {
585
+ /**
586
+ * [Resource type ID](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).
587
+ * @format GUID
588
+ */
589
+ resourceTypeId?: string | null;
590
+ /**
591
+ * Resource IDs.
592
+ * Available only if there is at least 1 resource available for the slot.
593
+ * @format GUID
594
+ * @maxSize 135
595
+ */
596
+ resourceIds?: string[] | null;
747
597
  }
748
598
  interface ListMultiServiceAvailabilityTimeSlotsResponse {
749
599
  /**
@@ -814,11 +664,17 @@ interface GetMultiServiceAvailabilityTimeSlotResponse {
814
664
  */
815
665
  timeZone?: string | null;
816
666
  }
817
- interface ListEventTimeSlotsRequest {
667
+ interface ListAvailabilityTimeSlotsRequest {
818
668
  /**
819
- * Lower boundary for `localStartDate` to include in the response.
820
- * Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate`.
821
- * Required unless you specify `cursorPaging.cursor`.
669
+ * Service ID for which to retrieve time slots. You must specify the ID of an appointment-based service.
670
+ * Required, unless you specify `cursorPaging.cursor`.
671
+ * @format GUID
672
+ */
673
+ serviceId?: string | null;
674
+ /**
675
+ * Lower boundary for `localStartDate` to include in response.
676
+ * Each returned time slot has a `localStartDate` within the provided `fromLocalDate` and `toLocalDate` exclusive.
677
+ * Required, unless you specify `cursorPaging.cursor`.
822
678
  *
823
679
  * Local start date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
824
680
  * For example, `2026-01-30T13:30:00`.
@@ -826,9 +682,9 @@ interface ListEventTimeSlotsRequest {
826
682
  */
827
683
  fromLocalDate?: string | null;
828
684
  /**
829
- * Upper boundary for `localStartDate` to include in the response.
830
- * Each returned time slot has a `localStartDate` between `fromLocalDate` and `toLocalDate`.
831
- * Required unless you specify `cursorPaging.cursor`.
685
+ * Upper boundary for `localStartDate` to include in response.
686
+ * Each returned time slot has a `localStartDate` within the provided `fromLocalDate` and `toLocalDate` exclusive.
687
+ * Required, unless you specify `cursorPaging.cursor`.
832
688
  *
833
689
  * Local end date in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
834
690
  * For example, `2026-01-30T13:30:00`.
@@ -836,64 +692,96 @@ interface ListEventTimeSlotsRequest {
836
692
  */
837
693
  toLocalDate?: string | null;
838
694
  /**
839
- * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
695
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
840
696
  * For example, `America/New_York` or `UTC`.
841
697
  *
842
698
  * Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties).
843
- * @maxLength 100
699
+ * @minLength 1
700
+ * @maxLength 150
844
701
  */
845
702
  timeZone?: string | null;
846
703
  /**
847
- * Optional service IDs to filter the response.
848
- * If not provided, time slots for all services are returned.
704
+ * Locations to include in response.
705
+ * If not specified, returns time slots for all locations where the service is available.
706
+ * @maxSize 5
707
+ */
708
+ locations?: Location[];
709
+ /**
710
+ * Resource type IDs to include in the response.
711
+ * If specified, returns up to 10 `availableResources` with matching `resourceTypeId`.
712
+ * This controls which resource details are included in the response but doesn't filter the time slots themselves.
849
713
  * @format GUID
850
714
  * @maxSize 100
851
715
  */
852
- serviceIds?: string[] | null;
716
+ includeResourceTypeIds?: string[];
853
717
  /**
854
- * Whether to include time slots that aren't bookable according to the service's booking policy or that are fully booked.
855
- * - `true`: Both bookable and non-bookable time slots are returned.
856
- * - `false`: Only bookable time slots are returned.
857
- *
858
- * Default: `true`
718
+ * Whether the time slot is bookable according to the service's booking policies.
719
+ * If not specified, returns both bookable and un-bookable time slots.
859
720
  */
860
- includeNonBookable?: boolean | null;
721
+ bookable?: boolean | null;
861
722
  /**
862
- * Minimum bookable capacity.
863
- * Use to filter out sessions that can't accommodate the desired party size.
864
- * @min 1
723
+ * Indicators for service's booking policy violations.
724
+ * Allows filtering for time slots with specific violation types based on [booking policies](https://dev.wix.com/docs/api-reference/business-solutions/bookings/policies/booking-policies/introduction)). When you don't specify `bookingPolicyViolations` filters, all slots are returned regardless of their booking policy status.
865
725
  */
866
- minBookableCapacity?: number | null;
726
+ bookingPolicyViolations?: BookingPolicyViolations;
867
727
  /**
868
- * Optional filter to apply to the events, for example resource or location.
869
- * See [Query Events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/query-events) for a list of supported filters.
728
+ * Maximum number of slots to return for each day in the specified time range.
729
+ * If `bookable` filter isn't specified, bookable slots are returned first.
870
730
  */
871
- eventFilter?: Record<string, any> | null;
731
+ timeSlotsPerDay?: number | null;
872
732
  /**
873
- * Maximum number of slots to return for each day in the specified time range.
874
- * If both bookable and non-bookable slots exist on the same day, bookable slots are returned first.
733
+ * Cursor-based paging configuration.
734
+ * Enables fetching results in smaller chunks by setting a limit on the number of results.
735
+ * For consistent pagination behavior, use the same `limit` value throughout a pagination sequence.
736
+ * When specifying a new `limit` in follow-up requests, the API respects the new value.
737
+ */
738
+ cursorPaging?: CursorPaging;
739
+ /**
740
+ * Selected customer choices for service configuration.
741
+ * If not specified, uses the service's default configuration.
875
742
  *
876
- * When you specify `maxSlotsPerDay`, you must also specify `toLocalDate`, and it must be no more than 1 month after `fromLocalDate`.
743
+ * When using [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction), we recommend passing only `addOnIds` and omitting `durationInMinutes`. Wix Bookings then calculates the total duration automatically. If you specify both `addOnIds` and `durationInMinutes`, `durationInMinutes` must equal the service duration plus all selected add-on durations.
744
+ */
745
+ customerChoices?: CustomerChoices;
746
+ /**
747
+ * Resource types to filter time slots.
748
+ * Only returns time slots that have these specific resource types available.
749
+ * This filters the time slots themselves, unlike `includeResourceTypeIds` which only controls response details.
750
+ * @maxSize 3
751
+ */
752
+ resourceTypes?: ResourceType[];
753
+ }
754
+ /** Customer's selected choices during the booking flow. Use these values to calculate service configuration properties such as duration. */
755
+ interface CustomerChoices {
756
+ /**
757
+ * Duration selected by the customer in minutes. Based on the customer's selection from [service options and variants](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/service-options-and-variants/introduction).
758
+ * When using [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction), we recommend passing only `addOnIds` instead of `durationInMinutes`. Wix Bookings then calculates the total duration automatically. If you specify both `addOnIds` and `durationInMinutes`, `durationInMinutes` must equal the service duration plus all selected add-on durations.
877
759
  * @min 1
878
- * @max 1000
760
+ * @max 44639
879
761
  */
880
- maxSlotsPerDay?: number | null;
762
+ durationInMinutes?: number | null;
881
763
  /**
882
- * Cursor-based paging configuration.
883
- * Enables fetching results in smaller chunks by setting a limit on the number of returned items.
764
+ * IDs of [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) selected by the customer.
765
+ * When specifying this field, we recommend omitting `durationInMinutes`. Wix Bookings then calculates the total duration based on the service duration plus all selected add-on durations.
766
+ * @format GUID
767
+ * @maxSize 21
884
768
  */
885
- cursorPaging?: CursorPaging;
769
+ addOnIds?: string[] | null;
886
770
  /**
887
- * Indicators for service's booking policy violations.
888
- * Allows filtering for time slots with specific violation types based on [booking policies](https://dev.wix.com/docs/api-reference/business-solutions/bookings/policies/booking-policies/introduction). When you don't specify `bookingPolicyViolations` filters, all slots are returned regardless of their booking policy status.
771
+ * ID of the duration choice selected by the customer.
772
+ * @format GUID
889
773
  */
890
- bookingPolicyViolations?: BookingPolicyViolations;
774
+ durationChoiceId?: string | null;
891
775
  }
892
- interface ListEventTimeSlotsResponse {
893
- /** Retrieved time slots matching the specified filters. */
776
+ interface ListAvailabilityTimeSlotsResponse {
777
+ /**
778
+ * Retrieved time slots.
779
+ * Sorted by `localStartDate` in ascending order. When multiple slots have the same start time, no specific secondary sorting is guaranteed.
780
+ * @maxSize 1000
781
+ */
894
782
  timeSlots?: TimeSlot[];
895
783
  /**
896
- * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
784
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
897
785
  * For example, `America/New_York` or `UTC`.
898
786
  *
899
787
  * Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties).
@@ -903,31 +791,143 @@ interface ListEventTimeSlotsResponse {
903
791
  timeZone?: string | null;
904
792
  /**
905
793
  * Paging metadata for the next page of results.
906
- * Contains a cursor if more data is available.
794
+ * Contains a cursor if there are more than 1000 results.
907
795
  */
908
- pagingMetadata?: CursorPagingMetadata;
796
+ cursorPagingMetadata?: CursorPagingMetadata;
909
797
  }
910
- interface GetEventTimeSlotRequest {
798
+ interface ListAvailabilityTimeSlotEndOptionsRequest {
911
799
  /**
912
- * Event ID.
913
- * @minLength 36
914
- * @maxLength 250
800
+ * Service ID. Must be an appointment-based service whose
801
+ * `availabilityConstraints.durationRange` is configured. Call
802
+ * [Get Service](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/get-service)
803
+ * from Services V2 to check `availabilityConstraints.durationRange` before
804
+ * invoking this method.
805
+ * @format GUID
915
806
  */
916
- eventId?: string | null;
807
+ serviceId: string;
917
808
  /**
918
- * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
809
+ * The picked start time. Each returned end option pairs with this start.
810
+ * @format LOCAL_DATE_TIME
811
+ */
812
+ localStartDate: string;
813
+ /**
814
+ * Latest end time to include. Default: `localStartDate + maxDurationInMinutes`
815
+ * from the service's `durationRange.hourConfig` (read from Services V2).
816
+ * A tighter value is honored; `maxDurationInMinutes` always bounds the
817
+ * result.
818
+ * @format LOCAL_DATE_TIME
819
+ */
820
+ maxLocalEndDate?: string | null;
821
+ /**
822
+ * IANA time zone. Default: site `timeZone` property.
823
+ * @minLength 1
824
+ * @maxLength 150
825
+ */
826
+ timeZone?: string | null;
827
+ /**
828
+ * Location of the picked start. Required; must match the location of the
829
+ * `localStartDate` slot returned by `ListAvailabilityTimeSlots`. The handler
830
+ * validates that end options reachable from this start at this location.
831
+ */
832
+ location: Location;
833
+ /**
834
+ * Resource types to constrain the end options.
835
+ * When the customer has already picked a resource before the end time
836
+ * (e.g. flows that select a resource first, then start, then end), pass the
837
+ * selected resource here so the response surfaces only ends that the
838
+ * chosen resource can actually cover. Without this filter, the response
839
+ * reflects the resource pool — ends valid for the pool but not for a
840
+ * preselected resource would still be returned, and booking would fail
841
+ * later.
842
+ *
843
+ * Omit when no resource has been preselected. In that case, end options
844
+ * reflect any resource in the pool; pick the resource later via
845
+ * `GetAvailabilityTimeSlot` with the chosen `localEndDate`.
846
+ * @maxSize 3
847
+ */
848
+ resourceTypes?: ResourceType[];
849
+ }
850
+ interface ListAvailabilityTimeSlotEndOptionsResponse {
851
+ /**
852
+ * Available end options for the requested start.
853
+ * Each entry is a `TimeSlot` sharing `localStartDate` with the request
854
+ * and varying only in `localEndDate`. Sorted by `localEndDate` ascending
855
+ * (shortest duration first).
856
+ * See `TimeSlot` field notes for the constrained semantics of this response.
857
+ * @maxSize 1000
858
+ */
859
+ endOptions?: TimeSlot[];
860
+ /** IANA time zone, echoed from the request or resolved from the site default. */
861
+ timeZone?: string | null;
862
+ }
863
+ interface GetAvailabilityTimeSlotRequest {
864
+ /**
865
+ * Service ID of the time slot.
866
+ * You must specify the ID of an appointment-based service.
867
+ * @format GUID
868
+ */
869
+ serviceId: string;
870
+ /**
871
+ * Local start date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
872
+ * For example, `2026-01-30T13:30:00`.
873
+ * @format LOCAL_DATE_TIME
874
+ */
875
+ localStartDate: string;
876
+ /**
877
+ * Local end date of the time slot in `YYYY-MM-DDThh:mm:ss` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601).
878
+ * For example, `2026-01-30T13:30:00`.
879
+ * @format LOCAL_DATE_TIME
880
+ */
881
+ localEndDate: string;
882
+ /**
883
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
919
884
  * For example, `America/New_York` or `UTC`.
920
885
  *
921
886
  * Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties).
922
- * @maxLength 100
887
+ * @minLength 1
888
+ * @maxLength 150
923
889
  */
924
890
  timeZone?: string | null;
891
+ /**
892
+ * Location to filter time slots by.
893
+ *
894
+ * For business locations, you must specify a location ID.
895
+ * When specifying a location ID, all other location field filters are ignored.
896
+ */
897
+ location?: Location;
898
+ /**
899
+ * IDs of the [resource types](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction) to check availability for.
900
+ * @format GUID
901
+ * @maxSize 100
902
+ */
903
+ includeResourceTypeIds?: string[];
904
+ /**
905
+ * Resource types to filter time slots.
906
+ * Only returns time slots that have these specific resource types available.
907
+ * This filters the time slots themselves, unlike `includeResourceTypeIds` which only controls response details.
908
+ * @maxSize 3
909
+ */
910
+ resourceTypes?: ResourceType[];
925
911
  }
926
- interface GetEventTimeSlotResponse {
927
- /** The time slot. */
912
+ interface GetAvailabilityTimeSlotRequestCustomerChoices {
913
+ /**
914
+ * Selected add-on IDs.
915
+ * Max: Derived from max amount of Add-On groups * max amount of Add-Ons per group.
916
+ * @format GUID
917
+ * @maxSize 21
918
+ */
919
+ addOnIds?: string[] | null;
920
+ /**
921
+ * Selected duration choice ID.
922
+ * @format GUID
923
+ */
924
+ durationChoiceId?: string | null;
925
+ }
926
+ interface GetAvailabilityTimeSlotResponse {
927
+ /** Retrieved time slot. */
928
928
  timeSlot?: TimeSlot;
929
929
  /**
930
- * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate` values.
930
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) for adjusting `fromLocalDate` and `toLocalDate`.
931
931
  * For example, `America/New_York` or `UTC`.
932
932
  *
933
933
  * Default: `timeZone` specified in the business [site properties](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/get-site-properties).