Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.apifycloud.io/llms.txt

Use this file to discover all available pages before exploring further.

Every booking flow — admin, agent-assisted, public page, API — asks the same question: is this agent free at this time? The answer combines four inputs, each configured in the console.

Working hours

The baseline of when an agent is available to take bookings. Each working-hours window has:
  • A day of the week.
  • A start time and end time (local to the window’s timezone).
  • A timezone — per window, not per agent. An agent who travels or works split schedules can mix windows in different timezones.
An agent can have multiple windows per day (e.g. 9:00–13:00 and 14:00–18:00 to block a lunch break), and different weekdays can have completely different shapes.

Availability exceptions

Exceptions override working hours for specific date ranges:
  • Blocked — the agent is not available during the range, regardless of working hours. Use for holidays, training, PTO.
  • Available-extra — the agent is available during the range, even if it falls outside working hours. Use for a one-off weekend appointment.
Exceptions apply on top of working hours. Available-extra windows extend availability, blocked windows shrink it.

Do-not-disturb windows

A DND window is a short-term, ad-hoc block that the agent creates themselves from their My schedules page. Think “I need 30 minutes to focus” rather than “I’m on vacation next week”. DND windows behave like blocked exceptions for the booking engine — they remove availability during the range.
If an agent creates a DND window that overlaps existing bookings, the console prompts them: “this affects N bookings — do you want to notify the customers and let them reschedule?” That notification is an optional extra reminder (see Reminders — conflict notice).

Buffers

The scheduling preset can add a buffer before and buffer after every meeting (e.g. 5 minutes before, 10 after). Buffers are treated as unavailable time by the booking engine — a booking can’t start within another booking’s trailing buffer, and vice-versa. Use buffers to give agents breathing room between back-to-back calls.

Timezones

Everything is stored in UTC internally. The display timezone is:
  • The agent’s timezone for the agent view.
  • The app’s timezone for admin views.
  • The customer’s browser timezone for the public booking page (with a visible picker so they can confirm).
Daylight-saving transitions are handled by the engine — windows configured in local time stay anchored to the wall clock, not to a fixed UTC offset.

What the booking engine does before accepting a slot

For any slot being booked, the engine checks, in order:
  1. Is the slot inside the agent’s working hours (or inside an available-extra exception)?
  2. Is the slot outside every blocked exception?
  3. Is the slot outside every DND window?
  4. Does the slot (plus buffers) not overlap any existing booking for that agent?
  5. Does the customer rate limit still allow another booking?
If all five pass, the booking is accepted. If any fails, the API returns a conflict and the UI surfaces the reason.

What’s next

Assignment modes

How the engine picks which agent gets the slot.

Reminders

Conflict notices and scheduled reminders.