Technical Step-by-Step Instructions: Connecting External Calendars (Google, Microsoft, Apple) to Wix Bookings (Real-World, API-First)

Description

Below are the recommended steps to successfully connect and sync external calendars (Google Calendar, Microsoft Outlook, Apple Calendar) with Wix Bookings, with real-world troubleshooting and fixes for common API issues. This recipe covers the complete OAuth flow, sync configuration, and verification procedures.

Article URL

https://dev.wix.com/docs/kb-only/MCP_REST_RECIPES_KB_ID/recipe-external-calendar-integration


Prerequisites

Required Features and Apps

Before connecting external calendars, ensure the following requirements are met:

  1. Wix Bookings - Core app must be installed and configured
  2. Premium Plan - External calendar integration requires premium features enabled
  3. Active Staff or Business Schedule - Target schedule must exist for connection

Premium Feature Validation

CRITICAL: External calendar integration is a premium feature. If not enabled, you'll receive a 403 error with "PREMIUM_FEATURE_NOT_ENABLED" code.

Verification Steps:

  1. Attempt to list providers - should return Google, Microsoft, Apple
  2. If 403 error occurs, upgrade plan or enable premium features
  3. Contact Wix support if premium features aren't accessible after upgrade

App Installation Process

If you encounter app-related errors, install the required apps using the Apps Installer API.

For detailed app installation procedures, refer to:

Overview

Wix External Calendar integration allows bidirectional sync between Wix schedules and external calendar providers. The system supports:

CRITICAL API DISCOVERY

❌ COMMON ENDPOINT MISTAKES:

✅ CORRECT ENDPOINTS:

Key Discovery: Schedule Selection Strategy

Schedule Types Available:

Recommendation:

IMPORTANT NOTES


Steps

1. Verify Premium Features and List Providers

First, confirm external calendar features are available and identify supported providers.

Use listProviders API (SDK | REST):

Expected Response Structure:

Save the providerId for your desired provider and note the required connectMethods.

2. Query Available Schedules

Identify which schedule to connect the external calendar to using querySchedules API (SDK | REST):

Schedule Selection Guide:

Save the scheduleId for your chosen schedule.

3. Initiate OAuth Connection (Google/Microsoft)

For OAuth providers (Google, Microsoft), create a connection using connectByOAuth API (SDK | REST):

Required Parameters:

Response Contains:

User Authorization Flow:

  1. Direct user to the oauthUrl
  2. User completes Google/Microsoft authorization
  3. User is redirected to redirectUrl with connectionId parameter
  4. Extract connectionId from redirect URL query parameters

4. Alternative: Connect by Credentials (Apple)

For credential-based providers (Apple), use connectByCredentials API (SDK | REST):

Required Parameters:

Important: This method requires collecting sensitive credentials from users.

5. Verify Connection and Configure Sync

After successful connection, verify the connection status and configure sync settings:

Check Connection: Use getConnection API (SDK | REST) with the connectionId.

Review Sync Configuration:

Update Sync Settings (if needed): Use updateSyncConfig API (SDK | REST) to modify import/export behavior.

6. Test Connection and List Events

Verify the integration is working by listing external calendar events:

Use listEvents API (SDK | REST) with date range filters:

Required Parameters:

This should return events from the connected external calendar.

IMPORTANT NOTES

Troubleshooting Common Issues

"PREMIUM_FEATURE_NOT_ENABLED" Error (403):

"Not Found" Error (404) on Providers:

OAuth Authorization Fails:

OAuth Internal Server Errors:

OAuth Flow Recovery Steps:

  1. First attempt fails → Retry immediately with same parameters
  2. Second attempt fails → Try alternative schedule type (business ↔ staff)
  3. Third attempt fails → Clear browser data and use incognito mode
  4. Fourth attempt fails → Try different redirect URL parameter
  5. All attempts fail → Switch to different calendar provider (Google → Microsoft → Apple)

Connection Shows "DISCONNECTED" Status:

Events Not Syncing:

Multiple Calendar Connections Conflict:

Apple Calendar Credential Issues:

Provider-Specific Notes

Google Calendar:

Microsoft Outlook/365:

Apple Calendar:

API Documentation References