Wix Bookings scheduling involves 2 groups of APIs. The Wix Bookings APIs manage availability and external calendar connections.
The Calendar APIs let you read and update calendar events and schedules directly. Most use cases only need read access, since Bookings manages these automatically when you create or update services, staff, resources, or bookings.
Use these APIs to manage scheduling in the Bookings product.
| Task | API |
|---|---|
| Check appointment and class session availability | Bookings Time Slots API |
| Sync with an external calendar such as Google or Outlook | Bookings External Calendars API |
Use these APIs to read or update the calendar data that Bookings writes to.
| Task | API |
|---|---|
| Read or update events on the business calendar directly | Calendar Events API |
| Read or update staff working hour schedules directly | Calendar Schedules API |
| Determine the time frame of a schedule | Schedule Time Frames API |
| Manage event participants and their participation status | Participations API |
This section describes the key integration points between Wix Bookings and the Calendar APIs, including how resources map to schedules, how to filter calendar data to Bookings context, and how the business schedule works.
Each Wix Bookings service has an associated Calendar schedule. When an appointment booking is confirmed, Wix Bookings creates a calendar event on that schedule and on the schedules of any assigned staff members or resources, preventing double-booking.
Resources work differently depending on their type:
Each business has a main schedule that defines its operating hours, identified by the external ID 4e0579a5-491e-4e70-a872-d097eed6e520.
By default, each business has 5 recurring WORKING_HOURS events, one for each weekday (Monday through Friday) from 10 AM to 6 PM. These MASTER events define the recurrence pattern that Wix Calendars uses to calculate INSTANCE events.
To identify the IDs of the 5 MASTER events, retrieve their corresponding INSTANCE events. Call Query Events, specifying a date range that covers at least a full week:
For each returned INSTANCE event, save its id, recurringEventId, and scheduleId. The recurringEventId is the ID of the corresponding MASTER event. All 5 weekday INSTANCE events share a scheduleId, which is the business schedule's ID.
"type": "WORKING_HOURS", "recurrenceType": "MASTER", the relevant recurrenceRule, and the business schedule ID as scheduleId.INSTANCE event, or Update Event to shorten its hours.scheduleId and start and end dates spanning the period. The system creates a one-off blocking event by default."recurrenceType": "MASTER" and the relevant recurrenceRule. The system creates a DEFAULT type event whose instances block availability.When querying schedules in a Wix Bookings context, filter by the Bookings app ID (13d21c63-b5ec-5912-8397-c3a5ddb27a97) to return only Bookings-related schedules. The Bookings calendar display applies this filter, so your integrations should use it too.
Wix Bookings uses the IANA Time Zone Database for all scheduling calculations. See About Time Zones for details on how to return slots in a customer's local time zone and how time zone changes affect existing sessions.