13d21c63-b5ec-5912-8397-c3a5ddb27a97). Use List Installed Apps to verify, and Install Wix Apps to install if missing.Run these queries to collect site data for informed defaults.
Save each staff member's resourceId (not id). Note which one has default: true.
APPOINTMENT services REQUIRE at least one staff member. If no staff members exist, create one first using Bookings Staff Setup.
Extract properties.paymentCurrency. Fall back to USD if unavailable.
Warn the user if a service with a similar name already exists.
For any fields the user did not explicitly specify:
| Field | Default | Notes |
|---|---|---|
| Duration | 60 minutes | Set via schedule.availabilityConstraints.sessionDurations |
| Capacity | 1 | Appointments are typically 1-on-1 |
| Staff | Auto-assign | Use default: true staff, or first available |
| Online booking | Enabled | onlineBooking.enabled: true |
rateType: "FIXED"rateType: "NO_FEE", options.inPerson: true, options.online: falseresourceIddefault: true, or the first onePaid appointment:
Free appointment:
staffMemberIds is required — uses resourceId values, not staff member idschedule.availabilityConstraints.sessionDurations sets the appointment lengthSave the serviceId from the response: results[0].item.service.id
Use the RUN_IN_BROWSER tool to navigate the user to the service form for final review:
This executes in the user's browser and redirects them to the service editing page.
Provide a summary including:
Example:
I created "Strategy Consultation":
I assumed a 60-minute duration since you didn't specify. You can review and adjust the details in the service form.
| Error | Cause | Action |
|---|---|---|
| 428 "App not installed" | Bookings not installed | Install using Install Wix Apps |
| 400 "staffMemberIds required" | No staff assigned | Query staff; if none exist, create one via Bookings Staff Setup |
| 400 "INVALID_PAYMENT_OPTIONS" | Payment misconfigured | Free: inPerson: true, online: false. Paid: price > 0 |
| 403 | Permission denied | Inform user they lack permission |
| rateType | options.online | options.inPerson | Valid? |
|---|---|---|---|
| FIXED | true | false | ✓ |
| FIXED | false | true | ✓ |
| FIXED | true | true | ✓ |
| NO_FEE | false | true | ✓ |
| NO_FEE | true | false | ✗ |
| Any | false | false | ✗ |