Below are the recommended steps to successfully configure default business hours for Wix Bookings, which control the base availability shown in the "Set default hours" dashboard. This recipe covers the correct API usage, common pitfalls, and cleanup procedures for managing business schedule events.
13d21c63-b5ec-5912-8397-c3a5ddb27a97)Note: If you receive errors from Bookings APIs, the Wix Bookings app may not be installed on the site. Use List Installed Apps to verify, and Install Wix Apps to install it if missing.
Wix Bookings default business hours define the base availability for your booking system and appear in the Bookings dashboard under "Set default hours". These hours:
IMPORTANT: When Wix Bookings is first installed on a site, it automatically creates DEFAULT business hours (typically 9 AM - 5 PM, Monday through Friday). You CANNOT simply create new hours without handling these existing default hours first.
You MUST either:
Failure to handle existing hours will result in:
❌ WRONG API: Site Properties API (/site-properties/v4/properties/business-schedule)
✅ CORRECT API: Calendar Events V3 API (/calendar/v3/events)
WORKING_HOURS events on the business scheduleMASTER event creates one time slot in the dashboard4e0579a5-491e-4e70-a872-d097eed6e520VERIFIED: The business schedule external ID "4e0579a5-491e-4e70-a872-d097eed6e520" is universal across all Wix sites.
This has been tested and confirmed on multiple different Wix sites:
"business"id varies per site, the externalId is constant"4e0579a5-491e-4e70-a872-d097eed6e520" is verified to work across all Wix sites"recurrenceType": ["MASTER"] to focus on the primary recurring event definitionsQuery the business schedule that controls default hours using the fixed external ID.
Endpoint: POST https://www.wixapis.com/calendar/v3/schedules/query
Use querySchedules API (REST) with filter:
externalId: "4e0579a5-491e-4e70-a872-d097eed6e520"Keep the returned schedule.id for creating events.
🚨 CRITICAL STEP: You MUST query for existing WORKING_HOURS events because Wix Bookings automatically creates default hours upon installation.
Endpoint: POST https://www.wixapis.com/calendar/v3/events/query
Use queryEvents API (REST):
Query pattern:
Important: Always query for MASTER events specifically to see actual recurring schedules.
Expected Result: You will typically find 5 existing MASTER events (Monday through Friday, 9 AM - 5 PM) from the default Bookings installation.
Based on the existing hours found in Step 2, choose one approach:
If you want to modify the times but keep the same days, update the existing events.
If you want completely different days/times, delete existing events and create new ones.
Endpoint: POST https://www.wixapis.com/calendar/v3/bulk/events/update
Use bulkUpdateEvents API (REST) with fieldmask pattern:
Update fields:
start/end: New timesrevision: Current revision number (from Step 2 query)fieldmask: "start,end"Example: Change Monday hours from 9 AM-5 PM to 12 AM-4 PM:
Cancel existing MASTER events using bulkCancelEvents API (POST https://www.wixapis.com/calendar/v3/bulk/events/cancel) (REST):
Create WORKING_HOURS events for each day using bulkCreateEvents API (POST https://www.wixapis.com/calendar/v3/bulk/events/create) (REST).
Each event pattern:
type: "WORKING_HOURS"scheduleId: Business schedule ID from step 1scheduleOwnerId: "4e0579a5-491e-4e70-a872-d097eed6e520"externalScheduleId: "4e0579a5-491e-4e70-a872-d097eed6e520"recurrenceRule: Weekly recurring with single daystart/end: Business hours timesNote: Create separate events for each day of the week (Monday, Tuesday, etc.).
Query the business schedule events again to confirm:
"App not installed" Error (428):
Duplicate time slots in dashboard:
Updates not reflecting in dashboard:
fieldmask includes the fields you're changingCannot create events in the past:
start.localDate to current date or futureBusiness schedule not found:
4e0579a5-491e-4e70-a872-d097eed6e520Working hours not affecting staff/services:
usesDefaultWorkingHours: true