Operations
Scheduling & Calendar
Coralia Scheduling & Calendar is the appointment system in Coralia, an AI-first practice management platform for ABA (Applied Behavior Analysis) therapy agencies. Booking a treatment appointment automatically creates the linked billable session — reserving authorization units and checking coverage, credentials, and double-booking — a refused booking is rolled back so nothing persists.
The problem in real agencies
In an ABA (Applied Behavior Analysis) agency, the calendar is where money gets committed. Every treatment hour draws down a payer authorization with a finite number of units, and every appointment must be rendered by a staff member whose credential is valid for that CPT (Current Procedural Terminology) code. A general-purpose calendar knows none of this, so schedulers book sessions against exhausted authorizations, lapsed credentials, or unverified coverage — and the error surfaces weeks later as a denied claim.
Schedules in ABA also fall apart constantly. A client's Tuesday session gets canceled with two hours' notice, an RBT (Registered Behavior Technician) calls in sick, a family moves. Each disruption strands reserved authorization units on a slot nobody fills, and nobody is tracking which cancellations got backfilled and which quietly became lost capacity. Approving a therapist's vacation means someone manually hunting down every conflicting appointment across three weeks of calendar.
The deepest failure is drift between the calendar and the billing system. An appointment gets moved to a different therapist, but the claim still lists the original rendering provider; a session is rescheduled, but the unit reservation stays on the old date. When the scheduling tool and the billing tool are separate products, keeping them in agreement is a manual job that fails silently — until a payer audit finds the mismatch.
How it works in Coralia
- 1
Booking creates the billable session — or nothing at all
When a scheduler books a treatment appointment with a client, staff member, and CPT code, Coralia creates the linked billable therapy session in the same operation and reserves authorization units against it. If the session is refused — discharged client, unverified coverage, missing credential, no authorized units — the calendar event is rolled back, so no orphan appointment ever persists. Double-booking a provider on a direct-clinical event (treatment, assessment, reassessment) is hard-refused before anything is written; other overlaps, such as supervision or meetings, return warnings instead. Booking near appointments at different physical locations raises a travel-time warning below the agency's configurable buffer.
- 2
Find Available Slots: a ranked search, not a blank grid
The slot finder searches staff who are eligible for the booking — an active case assignment with the client and a credential valid for the requested CPT code. It generates candidates in 15-minute increments inside each provider's availability windows, filters out staff and client conflicts and approved time off, and applies the agency's weekend, backdating, day-cap, and workweek policies. It returns up to 20 slots scored 0–100 with plain-language reasons, an insurance-coverage verdict for the requested window, and a warning when the authorization expires within 30 days. A Schedule button hands the chosen slot to the booking flow.
- 3
Recurring series with honest counts
The recurring-session wizard books a weekly series across a date range. It validates the staff credential and the client's lifecycle status once, up front — if either is wrong, the whole series is refused before anything is created. Individual dates with conflicts are skipped with warnings rather than silently double-booked. And when a per-date session cannot be created, the wizard undoes the empty calendar event it had just made, so the created and skipped counts it reports match what actually exists on the calendar.
- 4
Cancellations, no-shows, and reschedules keep billing in step
Marking an appointment canceled or no-show stamps who and when, releases the linked draft session's reserved authorization units, and removes the event from Google Calendar if it was pushed there. Each cancellation can carry a structured record: one of six reason codes (client illness, provider illness, weather, transportation, no notice, other), an informational billable flag, and a backfill outcome, with notice lead time derived automatically. A formal Reschedule creates a successor appointment, moves the session and its unit reservation onto it — re-checking unit availability and hour caps — and retires the original with a pointer to its replacement.
- 5
Availability and time off the whole system respects
Staff availability is defined as weekly patterns — day of week, time window, effective date range — with home and telehealth flags, a minimum-break preference between sessions (default 15 minutes), and an optional per-weekday session cap. Time-off requests (vacation, sick, personal, family, training, other) move through a pending → approved/denied review. Approval auto-cancels the staff member's conflicting appointments, returns reserved units from draft sessions, raises an alert for already-submitted sessions that need manual review, and paints an all-day time-off block on the calendar. Nobody can be booked during approved time off — event creation and the slot finder both check it.
- 6
Policy cascade, scoped views, and Google Calendar
Agencies set scheduling policy in a cascade — agency-wide, per role group, or per employee. The cascade can block weekend bookings, block backdated bookings, cap clinical sessions per staff per day, and warn when a booking opens more working days in a week than a provider's configured maximum. Non-admin staff see a scoped calendar: their own events plus their active caseload's. Google Calendar connects both ways, asymmetrically — external events overlay into Coralia read-only (30 days ahead, 7 behind, toggled per calendar), and Coralia events push out to the agency's primary connected calendar on create, update, and delete.
The specifics
Five calendar views: Month, Week, Day, Agenda, and a Sessions timeline that arranges clinical sessions in per-provider rows.
Nine event types and seven event statuses; provider double-booking on treatment, assessment, and reassessment is hard-refused, while other overlaps return warnings.
The slot finder returns up to 20 candidate slots in 15-minute increments, each scored 0–100 with plain-language reasons.
Six structured cancellation reason codes, an informational billable flag, and three backfill outcomes recordable on every cancellation or no-show.
Six time-off request types with pending, approved, denied, and canceled statuses; approval auto-cancels conflicting appointments and returns reserved units.
A configurable travel buffer (default 30 minutes) warns on tight gaps between appointments at different physical locations; telehealth events are exempt.
Google Calendar inbound sync covers 30 days ahead and 7 days behind, up to 2,500 events per connected calendar.
Six location types per event: home, clinic, school, community, telehealth, and office.
The per-agency AI copilot has 13 calendar tools covering schedule, events, availability patterns, and time-off requests and reviews.
Client names on calendar events are decrypted server-side with ciphertext stripped before the response reaches the browser; overlap warnings carry only times, never names.
Integrations
Google Calendar — external events overlay in read-only; Coralia events push out to the agency's primary connected calendar · Authorization Tracking — bookings reserve units, reschedules move the reservation, cancellations and no-shows release it · Session Notes & Documentation — every treatment appointment stays linked to its therapy session, so times, provider, and status never disagree · The Coralia Brain — the per-agency AI copilot operates the calendar through 13 dedicated tools
Access control
Four permission codes — calendar.view, calendar.create, calendar.edit, and calendar.delete — gate every calendar action, with separate permissions required to delete a linked session record or override the coverage gate. Beyond permission codes, non-admin staff see a care-team-scoped calendar limited to their own events and their active caseload's clients.
Frequently asked questions
Does booking an appointment create the billable session automatically?
Yes, for treatment appointments booked with a client, staff member, and CPT code. Coralia creates the linked billable therapy session and reserves authorization units in the same operation. If the session is refused — the client is discharged, coverage is unverified, the credential is missing, or no authorized units remain — the calendar event is rolled back, so an appointment never exists without its session.
How does Coralia prevent double-booking a therapist?
Overlaps on direct-clinical event types — treatment, assessment, and reassessment — are hard-refused before anything is written. Other overlaps, such as supervision, meetings, family training, or client-side conflicts, return warnings so the scheduler can decide. Approved time off blocks booking entirely: event creation checks it at calendar-day granularity in the agency's timezone, and the slot finder skips those days.
Can Coralia find open appointment slots for a client automatically?
Yes. Find Available Slots searches staff with an active case assignment and a credential valid for the requested CPT code, generates candidates in 15-minute increments inside availability windows, and filters out conflicts, approved time off, and policy violations. It returns up to 20 slots scored 0–100 with reasons, plus an insurance-coverage verdict and a warning when the authorization expires within 30 days.
What happens to authorization units when a session is canceled or a client no-shows?
The linked draft session's reserved units are released back to the authorization immediately, and the cancellation can be recorded with a reason code, billable flag, and backfill outcome. Freed clinical slots within the next 14 days are then surfaced in a daily morning digest alert so schedulers can backfill the capacity instead of quietly losing it.
Does Coralia sync with Google Calendar?
Yes, in two directions with different rules. External Google events sync into Coralia as a read-only overlay — 30 days ahead and 7 days behind, up to 2,500 events per calendar, toggled per calendar in the sidebar. Coralia events push out to the agency's primary connected Google calendar on create, update, and delete. Connecting requires elevated access, and inbound sync runs at connection time and on demand.