Wix Meetings: Sample Flows

This article presents sample flows for common Wix Meetings developer scenarios. You're not limited to these use cases, but they can be a helpful starting point for planning your implementation.

Set up Wix Meetings

If your code relies on Wix Meetings, provision the required infrastructure, set up a host, and create a scheduling link.

  1. Call Provision Meetings App. This creates:
    • A headless OAuth client for Wix Meetings.
    • A booking form using the wix.meetings.form namespace.
    • A default booking policy with cancellation enabled and a 24-hour cancellation window.
    • A default schedule with 30-minute meeting duration.
    • A default service (scheduling link) of type APPOINTMENT with the Wix Meetings appId.
  2. Call Query Services and filter by "appId": "6646a75c-2027-4f49-976c-58f3d713ed0f" to retrieve the default service created by provisioning. Save the service ID, mainSlug.name, schedule.id, form.id, and bookingPolicy.id.
  3. Optional: If you don't want to use the default service, call Create Service with the Wix Meetings field values and restrictions. Save the service ID, mainSlug.name, and schedule.id from the response.
  4. Optional: To change the default 30-minute meeting duration, call Update Service with the service ID and schedule.availabilityConstraints.sessionDurations set to the desired duration in minutes.
  5. Call Query Site Contributors. Save the accountOwnerId of the collaborator you want to assign as a host. Admins (co-owners) and backoffice managers have full access, while website managers, development site managers, and bookings admins can only manage their own meetings.
  6. Call Create Staff Member to create the host's staff member record. Save the staff member ID.
  7. Call Connect Staff Member to User with the staff member ID and the accountOwnerId.
  8. Optional: By default, the host is available during the site's business hours. To set custom availability, see Assign a Staff Working Hour Schedule.

Set up a paid meeting

By default, meetings are free. To charge customers, configure pricing on the service entity.

  1. Call Update Service with the service ID. Set payment.rateType to FIXED and payment.fixed.price to the desired amount and currency.
  2. Optional: To require a deposit instead of full payment upfront, set payment.options.deposit with the deposit amount.

Once payment is configured, the Meetings scheduling page automatically guides customers through the Wix eCommerce checkout flow. For a custom checkout, see Handle Payments with a Custom Checkout.

Learn more about service payment options.

Connect a host's external calendar

Connecting a host's external calendar prevents double-bookings across Google, Outlook, and iCloud calendars.

  1. Call List Providers to retrieve supported external calendar providers. Save the relevant provider's id and features.connectMethods to determine whether to use OAuth or credentials.
  2. Call Get Staff Member with fields: ["RESOURCE_DETAILS"]. Save the host's schedule ID from resource.eventsSchedule.id.
  3. Connect the calendar based on the provider's supported connection method:
    • OAuth: Call Connect By OAuth, specifying the scheduleId, providerId, and a redirectUrl. Redirect the host to the returned oAuthUrl. After authorization, the host is redirected to your redirectUrl with a connectionId query parameter.
    • Credentials: Call Connect By Credentials, specifying the scheduleId, providerId, email, and password.
  4. Call Get Connection to verify the connection status. Check syncConfig.listEventFromCalendars.enabled for import and syncConfig.syncToCalendar.enabled for export to confirm sync directions.
  5. Optional: Call Update Sync Config to adjust import and export settings.

Schedule a meeting

To let customers book meetings, share the scheduling link URL. When a customer opens the link, the Meetings scheduling page handles the full booking flow automatically, including time slot selection, form submission, and payment if applicable. You don't need to call Create Booking unless you're building a fully custom booking experience.

  1. Call Get Service with the relevant service ID. The response includes the scheduling page URL in urls.bookingPage.url and the service's URL identifier in mainSlug.name.
  2. Share urls.bookingPage.url with customers through email, WhatsApp, QR code, or your app's UI.

To temporarily stop bookings for a specific scheduling link, update the service and set onlineBooking.enabled to false.

  1. Call Get Service to retrieve the current service and its latest revision.
  2. Call Update Service with:
    • id: the service ID.
    • revision: the latest service revision.
    • onlineBooking.enabled: false.
  3. Optional: To redirect visitors instead of showing an unavailable notice, set extendedFields.namespaces["@services/meetings"].deactivatedRedirectUrl to the target URL.

To reactivate the link, call Update Service again with onlineBooking.enabled: true.

Reschedule a meeting

To reschedule an existing meeting to a new time slot:

  1. Call Query Extended Bookings to retrieve the meeting details. Save the service ID from bookedEntity.slot.serviceId and the current revision.
  2. Call List Availability Time Slots, specifying the serviceId, timeZone, fromLocalDate, and toLocalDate. Display the available slots for the customer to select.
  3. Call Get Availability Time Slot, specifying the selected slot's localStartDate and localEndDate, to verify it's still available.
  4. Call Reschedule Booking with the booking ID, the new slot details (startDate, endDate, scheduleId, resource, and location), and the current revision.

Cancel a meeting

To cancel a meeting:

  1. Call Query Extended Bookings to retrieve the booking and confirm it can be canceled. Save the booking ID and current revision.
  2. Call Cancel Booking with the booking ID. If the meeting was paid, use flowControlSettings to handle the refund:
  3. For meetings paid through Wix eCommerce, issue a refund using the eCommerce Orders API. Learn more about order billing sample flows.

Last updated: 5 July 2026

Did this help?