Every appointment comes from the real schedule.
The agent checks the times the practitioner actually has free, books in the patient's name and then reschedules it, cancels it or confirms it. The front desk sees the same calendar.
One switch turns on the agent tools and the Appointments module in the CRM. It ships off.
Two different calendars, and they do not overlap.
Victoria CRM has two calendar modules and they solve different problems. Getting them confused is expensive: you end up booking a medical consultation in the sales rep's meeting calendar.
Calendar and bookings
The sales team calendar.
- Meetings and sales visits — between the rep and their customer
- Google Calendar — synced per user
- Public booking link — over the availability of the rep
- Follow-up reminders — tied to the lead
If what you are booking is sales meetings, that is the module.
Appointments
The schedule of whoever does the work.
- Practitioners — with their weekly hours and their blocked days
- Appointment types — with duration, price and prep instructions
- Service areas or specialties — each with its own address
- Patients and statuses — booked, confirmed, seen, canceled, no-show
Built for clinics and for any operation that books appointments with a practitioner.
They are enabled separately and share no settings: one lives in the user calendar, the other in the practitioner schedule.
See Calendar and bookingsThe front desk and the agent look at the same schedule.
There is no schedule for the chat and another one for the front desk. The times the agent offers come from the same grid that whoever answers the phone sees, and they update on their own when either of them saves an appointment.
From the message to the appointment, making nothing up.
The sales agent does not improvise times and does not assume an appointment that was never saved. Every step comes from a query to the system.
- 01
It reads the catalog
Service areas, appointment types with their duration and price, and active practitioners with what each one covers. Whatever is not on that list, the company does not offer.
- 02
It asks for free times
Over the real schedule of the practitioner, respecting duration, buffers, minimum notice and booking horizon. If the patient mentions an hour, it looks for the times closest to that hour.
- 03
It books in the patient's name
With name and phone. Before saving it re-checks the time against the schedule, so two people do not take the same slot.
- 04
It repeats the appointment back to close it
Day, time and practitioner, plus the address of the service area and the prep instructions for that appointment type, if they are on file.
- 05
The patient moves it from the same chat
Reschedules, cancels or confirms without picking up the phone. Always within the appointments of that conversation: never another patient's appointments.
If the system returns a sample of the free times, the agent knows it, and it does not tell the patient a given hour is unavailable without asking about that hour again.
The appointment closes inside the conversation.
The patient writes however they write, and the agent answers with times that really exist in the practitioner schedule. There is no form, no link and no person on the other side.
- Hi, I need an appointment with Dr. Gómez, in the afternoon if possible.
- For a first visit (30 min) I have Thursday the 20th at 16:00, Friday the 21st at 17:30 and Monday the 24th at 16:30. Which one works?
- Thursday at 16:00 works for me.
- Done: Thursday 20/08 at 16:00 with Dr. Gómez, at Av. Colón 1234. Please arrive 15 minutes early with your previous test results.
Example data. The three times come from the practitioner schedule, not from the model.
Appointment management is enabled per company. With it off, the agent neither offers nor books appointments.
The agent moves inside what you define.
Everything below is configured per company and the agent respects it without anyone having to write it into the prompt.
One switch for both things
It is turned on from the sales agent profile. When you turn it on, the agent gets the tools and the Appointments module shows up in the CRM. When you turn it off, both go away together. It ships off.
The change cutoff binds the patient, not the team
You define how many hours ahead they stop being able to reschedule or cancel by chat. From the CRM, the front desk can move or cancel up to the last minute: the rule exists so nobody cancels on them half an hour before, not to tie the hands of whoever is working.
Confirming is never blocked
Confirmation does not go through that cutoff. Refusing to let a patient say they are coming protects nothing: it leaves the clinic without the one piece of data that helps reassign the appointments nobody confirmed.
The reminder ships off
When you turn it on, you choose how many hours ahead it goes out. Since it usually goes 24 or 48 hours ahead, the WhatsApp window is closed and Meta requires an approved template: you have to pick an official number, a template and what data goes in each variable. If the patient wrote recently, a normal message goes out instead.
Limits that do not depend on the model
Grid step, default duration, free time before and after each appointment, minimum notice to book, how far ahead appointments are given and how many pending appointments one contact can have. Out of the box: a 15-minute grid, 30-minute appointments, one hour of minimum notice, a 60-day horizon and 3 pending appointments.
Three access levels to the module
Full access, read only, or own schedule only. The last one relies on the link between the practitioner and their CRM user: each one logs in and sees their appointments, not everyone else.
On top of the general settings, each practitioner can have their own grid step, duration, buffers, minimum notice and booking horizon.
Attendance, no-shows and how full the schedule is.
Appointment numbers live in the CRM Dashboard, with the same date filters as the rest of the reports. Twelve indicators and seven breakdowns: by practitioner, by appointment type, by service area, demand by day of the week and by hour, status and who loaded each appointment.
- Attendance — seen over seen plus no-shows, never over the total: future and canceled appointments would sink it without anything having happened
- Cancellation — this one over the total, because canceling can happen at any moment
- Utilization — booked hours against the working hours that fall in the period, counting how many times each day of the week comes up
- Lead time and notice — how many hours ahead an appointment is booked and how many ahead a cancellation is announced
- Booked by the AI — what share of the schedule came in by chat and what share the team loaded
- Revenue seen and lost — based on the price of the appointment type, separating what was seen from what was canceled or missed
Utilization is an honest approximation and the screen says so: it does not deduct public holidays or blocks, and it leaves out practitioners with no hours loaded.
- Attendance92.3%seen / (seen + no-shows)
- No-show rate7.7%no-shows / (seen + no-shows)
- Utilization68.4%booked hours / working hours
- Booked by the AI41.2%AI-sourced appointments / total
Example data.
What we get asked every time.
What sits around it.
Bring next week's schedule to the demo.
We load your appointment types and the hours of one practitioner, and test live whether the agent offers exactly the times you have free.
Appointment management turns on and off with one switch: nothing has to be rebuilt to try it.