Scheduling
Event Types and public booking
Create public booking pages, configure availability and forms, collect payment, offer seats, set policies, share private links, and monitor bookings.
Event Types are reusable public booking definitions. A booker opens a workspace scoped address such as:
/e/<workspace-slug>/<event-type-slug>Event Type administration requires the Events capability and Manager or Super Admin authority.
Create an Event Type
From Scheduling, select Event Types, then New event type. Enter a title, URL slug, duration, and scheduling type.
| Type | Intended use |
|---|---|
| For myself | One host and the booker |
| Round robin | Rotate booking responsibility among configured team members |
| Collective | Require shared availability for selected participants |
| Managed event | Distribute a managed definition across a team |
The slug is derived from the title until you edit it. Slugs must be unique in the workspace. Use a short stable slug because changing it changes the public address you share.
After creation, the live editor opens with the booking preview beside the configuration.
Basics
Configure the event title, slug, duration, active state, description, hosts, and location. Supported location modes and details can include a meeting link, phone, physical address, or other configured option. Event Types can store multiple location choices where the editor offers them.
Select Save changes before copying the booking link. The booking link control reflects whether the Event Type is active.
Availability
Use Availability to set enabled weekdays, start and end times, and timezone. Working Hours is the default schedule in the current editor.
Enable Optimized slots to group offered times into denser windows. Enable conflict checks for selected connected Google Calendars so busy provider events remove matching availability.
Availability also respects the configured duration, slot interval, buffers, notice, future window, and supported booking limits.
Booking form
The Booking form tab controls the questions shown to the booker. Questions can be required or optional according to their saved definition. Configure the confirmation channel and whether a successful booking should create a CRM contact, including the supported contact kind.
Ask only for information needed to schedule and deliver the meeting. Do not collect passwords, full payment card data, or sensitive regulated data through ordinary booking questions.
Confirmation and notifications
Use Confirmation to configure the supported confirmation experience and messages. Public booking actions send supported notification email after the booking transaction succeeds.
Confirmation behavior can be automatic or require operator confirmation depending on Privacy and Security settings. A pending paid booking is not confirmed merely because the form was submitted.
Appearance
Use Appearance to control the supported booking page presentation. The preview updates from the saved design configuration. Keep contrast and content readable on both desktop and mobile.
Paid bookings
Use Payments and Seats to enable a price, choose the currency, and configure the per slot seat count. Paid booking requires the tenant's Stripe customer payment account under Settings → Payments.
For a paid booking:
- agaro creates a temporary pending hold for the slot.
- The booker is redirected to hosted Stripe Checkout.
- Signed payment evidence settles the booking.
- Automatic or manual confirmation policy is then applied.
- An abandoned or failed payment releases or expires the hold through the supported lifecycle.
Do not treat the initial booking form success as payment proof. The provider settlement is authoritative.
Seats
Enable Offer seats to allow more than one attendee in the same slot. Set a value from 2 to the supported maximum, choose whether to show available seat count, and decide whether attendee information may be shared.
When seats are enabled, individual guest invites are disabled for that Event Type. Review privacy before enabling attendee sharing.
Recurring bookings
Use Recurring to enable the saved recurring behavior supported by the public booking flow. Confirm each occurrence, total count, and availability before accepting a recurring booking.
Limits and buffers
Configure:
- Buffer before and after
- Minimum notice
- Slot interval
- Booking frequency limit
- Total duration limit
- Future booking window
- Active bookings per booker
- First slot only behavior
Limits are enforced when public availability is calculated. A narrow future window or large buffer can correctly produce no available slots.
Reschedule and cancellation
Choose whether bookers may reschedule or cancel, the minimum notice for each, and whether a cancellation reason is optional or required. Public manage links are token protected and apply the saved policy.
Privacy and security
Controls include:
- Require operator confirmation
- Require email verification
- Mark the Event Type private
- Hide it from public lists
- Disable guests
- Hide notes from attendees
Private links use a random token. agaro stores only a hash and reveals the plaintext link once. Revoke a link that was shared incorrectly and create a new one.
Webhooks
Use Webhooks to register supported booking lifecycle notifications. Webhook secrets are protected and outbound deliveries are tied to configured event triggers.
Send webhooks only to endpoints you control. Verify their signatures or shared secret according to the receiving integration, handle retries idempotently, and return a success response quickly.
Troubleshooting
The booking page has no available times
Check weekday hours, timezone, duration, buffers, minimum notice, future booking window, booking limits, seats, and Google Calendar conflicts.
Paid booking is enabled but checkout fails
Confirm the event has a positive price, valid currency, available slot, and ready tenant Stripe connection. The platform subscription Stripe account is not used.
A private link cannot be copied again
The token is intentionally shown once. Revoke the old link and create a new one.
Changes are not visible publicly
Save the specific tab and the main Event Type record, confirm the Event Type is active, then reload the public address.