API reference

Forty-plus endpoints, fully documented.

Namespaced under /wp-json/schedularity/v1. Cookie or application-password auth, capability-checked, rate-limited on public routes.

Endpoints

The surface area.

Nineteen of the most-used routes. The full list ships in the plugin's own docs screen.

GET/bookingsList bookings with filters for date, staff, service, status.
POST/bookingsCreate a booking. Validates availability and holds the slot.
PATCH/bookings/{id}Reschedule, reassign staff or change status.
DELETE/bookings/{id}Cancel a booking and trigger the waitlist promotion.
GET/availabilityOpen slots for a service, staff member and date range.
GET/customersSearch and page through customer records.
POST/customersCreate a customer with custom intake fields.
GET/servicesServices with durations, prices, buffers and capacity.
GET/staffStaff, their services, schedules and commission rules.
POST/payments/intentOpen a payment intent on the configured gateway.
POST/payments/{id}/refundFull or partial refund, synced to the gateway.
GET/eventsEvents with tiers, remaining inventory and session dates.
POST/tickets/{id}/checkinValidate a QR code and log the arrival.
GET/seatmaps/{id}Seat map geometry, tiers and per-seat status.
GET/tablesTables, covers, turn times and reservation state.
GET/membershipsPlans, allowances and renewal dates.
POST/notifications/sendSend or schedule on a channel, honouring the fallback chain.
GET/reports/revenueRevenue by day, service, staff or location.
GET/auditAppend-only audit entries, filterable by actor and object.
Hooks & webhooks

React to anything.

WordPress actions
schedularity/booking/createdFires after a booking is persisted and the slot is committed.
schedularity/booking/cancelledFires before the waitlist promotion runs.
schedularity/payment/succeededGateway confirmed. Carries the transaction object.
schedularity/ticket/scannedQR validated at the door. Rejects duplicates upstream.
schedularity/reminder/failedA channel failed; the fallback chain is about to advance.
schedularity/customer/updatedAny profile or intake-field change, with the diff.
Example
// Sync every new booking to your CRM.
add_action( 'schedularity/booking/created', function ( $booking ) {
  HubSpot::sync( $booking->customer()->to_array() );

  schedularity()
    ->notifications()
    ->schedule( 'whatsapp', $booking, -24 );
});
Webhooks are HMAC-signed. Verify the X-Schedularity-Signature header before trusting a payload.

Build on top of it.

PSR-4, repository pattern, strict types. The API is the same one our own admin SPA uses.