> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt ## Resource: Calendar Integration ## Article: Calendar Integration ## Article Link: https://dev.wix.com/docs/api-reference/business-solutions/bookings/calendar-integration.md ## Article Content: # Work with Calendar APIs to Schedule and Manage Bookings Wix Bookings scheduling involves 2 groups of APIs. The [Wix Bookings APIs](https://dev.wix.com/docs/api-reference/business-solutions/bookings.md) manage availability and external calendar connections. The [Calendar APIs](https://dev.wix.com/docs/rest/business-management/calendar.md) 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. ## Wix Bookings APIs Use these APIs to manage scheduling in the Bookings product. | Task | API | |------|-----| | Check appointment and class session availability | [Bookings Time Slots API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/introduction.md) | | Sync with an external calendar such as Google or Outlook | [Bookings External Calendars API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/calendar/external-calendar-v2/introduction.md) | ## Calendar APIs 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](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction.md) | | Read or update staff working hour schedules directly | [Calendar Schedules API](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction.md) | | Determine the time frame of a schedule | [Schedule Time Frames API](https://dev.wix.com/docs/rest/business-management/calendar/schedule-time-frames-v3/introduction.md) | | Manage event participants and their participation status | [Participations API](https://dev.wix.com/docs/rest/business-management/calendar/participations-v3/introduction.md) | ## How Bookings uses the Calendar APIs 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. ### Resources and calendar integration Each Wix Bookings [service](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md) has an associated [Calendar schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction.md). When an appointment booking is confirmed, Wix Bookings creates a [calendar event](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction.md) on that schedule and on the schedules of any assigned staff members or resources, preventing double-booking. Resources work differently depending on their type: - **Staff members** have both an event schedule (when they're booked) and a working hour schedule (when they're available to work). Manage them through the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction.md). - **Non-staff resources** (such as meeting rooms or equipment) have only an event schedule. Their availability depends on their location's business hours. ### Business schedule 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. #### Find working hour event IDs To identify the IDs of the 5 `MASTER` events, retrieve their corresponding `INSTANCE` events. Call [Query Events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/query-events.md), specifying a date range that covers at least a full week: ```json { "fromLocalDate": "2026-01-01T00:00:00", "toLocalDate": "2026-01-07T23:59:59", "query": { "filter": { "externalScheduleId": "4e0579a5-491e-4e70-a872-d097eed6e520", "type": "WORKING_HOURS" } } } ``` 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. #### Modify working hours - **Adjust existing hours**: Call [Update Event](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/update-event.md) with the master event ID to change the recurring pattern. - **Add working hours**: Call [Create Event](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/create-event.md) with `"type": "WORKING_HOURS"`, `"recurrenceType": "MASTER"`, the relevant `recurrenceRule`, and the business schedule ID as `scheduleId`. - **Remove a working day**: Call [Cancel Event](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/cancel-event.md) with the master event ID. - **Block time off**: - Single day: Call [Cancel Event](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/cancel-event.md) to remove the `INSTANCE` event, or [Update Event](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/update-event.md) to shorten its hours. - Longer period: Call [Create Event](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/create-event.md) with the business schedule ID as `scheduleId` and start and end dates spanning the period. The system creates a one-off blocking event by default. - Recurring pattern: Call [Create Event](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/create-event.md) with `"recurrenceType": "MASTER"` and the relevant `recurrenceRule`. The system creates a `DEFAULT` type event whose instances block availability. ### Filter by app ID 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. ## Time zones Wix Bookings uses the [IANA Time Zone Database](https://www.iana.org/time-zones) for all scheduling calculations. See [About Time Zones](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-time-zones.md) for details on how to return slots in a customer's local time zone and how time zone changes affect existing sessions. ## See also - [Bookings Time Slots V2 API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/introduction.md) - [About Time Zones](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-time-zones.md) - [Architecture and Data Flow](https://dev.wix.com/docs/api-reference/business-solutions/bookings/architecture.md)