Skip to content

Calendar ​

The Calendar page at app.mychatbot.app/calendar is MyChatBot's native booking calendar: your AI agent books, reschedules and cancels events on it during conversations, and your team sees and manages every booking in a day/week grid — staff columns, drag-to-reschedule, client links back to the chat.

It is powered by the Calendar integration ("Native booking & scheduling for your AI agent"). This is not the Google Calendar integration — that one syncs an external Google account. See Native Calendar vs Google Calendar below.

At a glance ​

StepWhere in the appResult
Enable bookingIntegrations → pick your agent → Calendar (under Productivity & Scheduling) → ConnectAgent can book, reschedule and cancel events
Add Staff Members and ServicesSame Calendar integration card, after connectingRequired — without both, booking doesn't work
Steer the agentBooking Instructions on the integration cardRouting rules injected into the agent's instructions
See bookingsCalendar in the sidebar — app.mychatbot.app/calendarDay/week grid of all events
Jump from settingsView Calendar button on the integration cardOpens the Calendar page for that agent's calendar

Setup incomplete

The integration card warns: "Add at least one staff member and one service for the calendar to work. Without them, your agent won't be able to book events." The Calendar page enforces the same rule — trying to create an event first shows "Please add at least one staff member and one service in Calendar settings before creating events."

Set up the Calendar integration ​

Open Integrations, select the agent, and find Calendar in the Productivity & Scheduling category. The settings panel is titled "Native booking & scheduling — <agent> can book, reschedule and cancel events".

Core settings ​

SettingDefaultWhat it does
TimezoneUTCThe business clock — the agent quotes and books all times in this zone (pick from common zones: Europe/Kyiv, Europe/London, America/New_York, Asia/Dubai, …)
Default Duration (min)60Event length when no service duration applies (5–480 min)
Business Hours Start09:00Start of the bookable window; also the top of the Calendar page grid
Business Hours End18:00End of the bookable window; also the bottom of the Calendar page grid

Click Connect to enable. After connecting, a Save Config button appears whenever you change these settings.

Change the UTC default before going live

Timezone starts as UTC. Until you set it to your business's zone, a customer asking for "tomorrow at 15:00" gets booked at 15:00 UTC — hours off from what they meant. Set it first, then add staff and services.

How times and timezones work ​

  • The Timezone setting is the calendar's clock. The agent interprets customer requests and quotes available slots in this timezone: "15:00" means 15:00 business time, regardless of where the customer is writing from. Business Hours and each staff member's Schedule are anchored to it too.
  • The Calendar page grid, the New Event form and the event detail panel display times in the calendar's Timezone too — a 09:00 booking in America/New_York reads 09:00 for a teammate in Kyiv. Only when the integration has no valid timezone does the page fall back to your computer's clock.
  • If your customers sit in a different timezone than the business, spell that out in Booking Instructions (e.g. "Customers are in New York; the calendar runs on Europe/Kyiv time — always confirm which timezone the customer means"). The agent has no automatic per-customer timezone detection.

Staff Members ​

Click + Add Staff and fill:

FieldNotes
NameShown on events, in filters, and as a day-view column header
RoleOptional label (e.g. "Stylist") — also injected into the agent's instructions
ColorPick from 10 colors; event blocks and column headers use it

Each staff row shows its #number — use these numbers when writing Booking Instructions. Per staff member you can also:

  • Edit — rename or change the role.
  • Schedule — set a per-day working schedule. By default it "Uses business hours (Mon–Fri)"; tick individual days (Mon–Sun) and set a start–end time for each, then Save Schedule.
  • × — delete the staff member.

Services ​

Click + Add Service and fill:

FieldNotes
NameWhat the agent and the New Event form offer
Duration (min)Auto-fills the event length when this service is selected
PriceOptional ($); shown next to the service and given to the agent
Group class + Max seatsMarks the service as a group session with a seat limit (the badge reads "Group · N seats"). Group sessions are booked by seat count, not by free slot — several customers hold the same time until the seats run out

Services also get a #number for use in Booking Instructions.

Services of a day or longer are booked by the day

A service whose Duration is 1440 minutes (24 h) or more — a room night, a rental day — is offered as whole days rather than as slots inside business hours: the agent quotes dates, the form shows Check-in Date / Check-out Date, and staff with no schedule are available all seven days. When every service in the calendar is day-based the whole page switches to that mode; a mixed catalog stays hourly. Stays can run up to 90 calendar days; the agent's book_event accepts a nights count for exactly-one-day services and refuses longer spans with "Book the stay in consecutive parts or ask an operator."

Booking Instructions ​

Once you have at least one staff member or service, a Booking Instructions section appears:

  • A read-only preview labeled "Auto-injected into agent's instructions:" lists your staff and services with their numbers, names, roles, durations and prices — this is what the agent knows automatically.
  • A free-text box for your own rules, e.g. "Staff #1 (Anna) handles only Service #2 (Haircut) and #3 (Coloring). Always require phone number. Minimum 24h advance booking."

Click Save Config to apply.

Write rules by number

Reference staff and services by the #numbers shown in the lists ("Staff #1", "Service #2"). That's the unambiguous way to route bookings — names can repeat or change.

Remove the integration ​

Remove opens a confirmation ("Remove Calendar Integration"): "This will delete the integration configuration. Your existing events will not be deleted." Events stay in place; only the agent's booking ability and the configuration are removed. There is no event-delete anywhere — see Event details for what Cancelled does instead.

The Calendar page ​

Open Calendar in the sidebar (app.mychatbot.app/calendar). If no agent has the Calendar integration connected, the page shows "Calendar integration not connected".

Toolbar ​

ControlWhat it does
TodayJump back to the current day/week
‹ / ›Previous / next day (Day view) or week (Week view)
+ New EventOpen the manual booking form
CancelledToggle pill — show cancelled events (hidden by default)
Agent pickerAppears when the account has calendars for several agents; each calendar is named after its agent
Staff filterAll staff or a single staff member — filters events and day-view columns
Day / WeekSwitch views; your choice is remembered for next time

The grid ​

  • Day view shows one column per staff member, each headed by the staff name and color dot. Filtering to one staff member shows only that column.
  • Week view shows the whole week (Monday-start) in a single grid.
  • On mobile the page always uses Day view.
  • The grid spans your Business Hours (default 09:00–18:00) in 15-minute slots.
  • If nothing is booked in the visible range, the grid reports "No events found".

Each event block is tinted with the staff member's color and shows a status dot, the client name, the service and the staff member:

StatusDot colorNotes
ConfirmedBlueDefault for every new booking (agent or manual)
CompletedGreenLocks the event — details become read-only
CancelledGrayHidden unless the Cancelled toggle is on; locks the event
No ShowIndigoCustomer didn't come; event stays editable

Reschedule by drag ​

Drag an event to a new time (or another staff column in Day view), or drag its edge to change the duration. The change saves immediately — "Event updated" on success. A drop that overlaps another booking for the same staff member is refused with the conflict message (see Availability & conflicts), and the customer is not told about the new time (see Customer notifications).

Availability & conflicts ​

Whether a slot is protected from double-booking depends on who is booking:

ActionConflict check
Agent offers slotsOnly free slots: inside business hours (or the staff member's Schedule), in the future, and not overlapping any existing event for that staff member
Agent books or reschedulesBlocked — the booking is refused with a conflict message naming the occupying event, and the agent asks the customer to pick a different time
+ New Event formBlocked — "This time slot conflicts with existing event <ref> (<start> - <end>). Please choose a different time."
Drag / resize, or editing staff / service / status in the panelBlocked the same way whenever the change moves the event's footprint — including restoring a Cancelled event, since its slot may have been resold meanwhile

How conflicts are decided:

  • Conflicts are per staff member: two customers can both hold 15:00 with different staff, but the agent will never give two customers the same 15:00 with Anna.
  • Cancelled events free their slot immediately. Confirmed, Completed and No Show events keep blocking it.
  • The agent's conflict check applies to any overlap, not just identical start times — a 60-minute service starting at 14:30 blocks the 15:00 slot too.
  • Two bookings may touch: a 14:00 check-out and a 14:00 check-in are not a conflict, so a room can be resold the moment it is freed.
  • Group classes are never overlap-checked — the seat limit is the gate. An event with no staff member holds no resource and is not checked either.
  • Rules the calendar can't express — minimum advance notice, buffer time between bookings — go in Booking Instructions (e.g. "Minimum 24h advance booking").

Create an event manually ​

Click + New Event, or click/drag an empty slot in the grid (the slot's time — and in Day view, its staff column — is pre-filled). The New Event form:

FieldRequiredBehavior
Dateyes—
Start TimeyesChanging it recalculates End Time from the service duration
End TimeyesAuto-filled; edit freely. An end before the start is treated as crossing midnight (next day)
Staff Memberyes"Select staff..." dropdown
Serviceyes"Select service..." — picking one sets the duration; hint shows "Duration: N min (based on selected service)"
Client NameyesType 2+ characters to search your existing clients
Phoneone of Phone/EmailInternational format, validated ("Invalid phone number")
Emailone of Phone/EmailValidated ("Invalid email"); missing both shows "Phone or Email is required"
NotesnoFree text, visible in the event details

Typing in Client Name or Phone searches your client base; picking a match fills name, phone and email and marks the field Linked — the event is tied to that client's card. A live Duration line updates as you adjust times.

Create Event saves the booking with status Confirmed ("Event created"). Incomplete forms show "Please check the required fields."

Before you save

There is no way to delete an event afterwards: a test or mistaken event can only be hidden by setting its Status to Cancelled — which then locks it for good (see Event details). For a stay, the form takes a start and an end date; "A booking cannot span more than 90 days" and "The end must be after the start" are the two checks.

Event details ​

Click any event to open its side panel (header shows the booking Ref):

  • Status badge and start date/time at the top.
  • Time Info — Start Time, End Time, Duration, Channel (which channel the customer booked through, when the agent made the booking), Created, and Updated if it changed since.
  • Client → View Client Card and Chat → View Chat links appear when the event is tied to a client/conversation — they jump straight to the client's card and the exact chat where the booking happened.
  • Edit Details — change Status (Confirmed / Completed / Cancelled / No Show), Staff, Service, Client Name, Phone, Email and Notes, then Save Changes ("Event updated").

Times are changed on the grid

Start and end times are read-only in the panel — drag the event on the calendar to reschedule or resize it.

Completed and Cancelled are final — no undo, no delete

Once an event is Completed or Cancelled, the panel switches to read-only — no further edits, including status. The app offers no way to revert a locked status and no way to delete an event (removing the whole integration doesn't delete events either). If you mis-click Completed on the wrong event, it stays that way — double-check the Ref and client before Save Changes. No Show does not lock the event. To get rid of a test or garbage event, set it to Cancelled: it disappears from the grid (unless the Cancelled toggle is on) but remains in the calendar's history.

How agent bookings appear ​

When a customer books through any connected channel (WhatsApp, Instagram, website widget, voice, …):

  1. The agent uses the staff, services, business hours and Booking Instructions you configured to offer and confirm a slot.
  2. The event lands on the Calendar page as Confirmed, colored by the assigned staff member.
  3. The detail panel shows the Channel it came from, plus View Client Card and View Chat links back to the conversation.

The agent can also reschedule and cancel existing bookings when the customer asks — cancelled events disappear from the grid until you switch on the Cancelled toggle.

Customer notifications ​

Changes made from the staff side are silent. Creating an event with + New Event, dragging it to a new time, or switching its Status to Cancelled in Edit Details sends the customer nothing — no chat message, no confirmation, no email. There are also no automatic reminders before an event.

ChangeDoes the customer hear about it?
Agent books / reschedules / cancels in the conversationYes — as part of the chat itself: the agent confirms in its reply
Staff creates via + New EventNo
Staff drags to rescheduleNo
Staff cancels or edits via Edit DetailsNo
Upcoming-event reminderNo — doesn't exist

To tell the customer yourself, open the event and follow View Chat to their conversation, then message them there. For automated re-engagement (reminders before the visit, win-back after a cancellation or No Show), set up Follow-ups — the calendar itself won't do it.

Dragging doesn't tell anyone

When you drag a booking to a new time, the customer still expects the original time — the app saves the change and stops there. Make messaging the client part of your reschedule routine.

Native Calendar vs Google Calendar ​

Calendar (native)Google Calendar
Where events liveInside MyChatBot — viewable at /calendarIn your Google account's calendars
Staff & servicesBuilt in: staff members with schedules and colors, services with duration and priceNone — you steer via agent instructions
Manage bookings in the appFull grid: drag to reschedule, statuses, manual events, client/chat linksNo in-app view
Statuses & no-show trackingConfirmed / Completed / Cancelled / No ShowNot tracked
Best forService businesses running bookings inside MyChatBot (salons, clinics, studios)Teams that already live in Google Calendar and want invites there

You can connect both to the same agent, but pick one as the source of truth for bookings — they don't sync with each other.

Use cases ​

  • Salon / clinic / studio front desk — the agent books clients into the right specialist's column 24/7; staff check their day at a glance.
  • Service routing — Booking Instructions like "Staff #1 (Anna) handles only Service #2 (Haircut)" keep every booking with the right person.
  • Manual + AI bookings in one place — receptionists add walk-ins and phone bookings via + New Event, linked to existing client cards, next to agent-made bookings.
  • No-show follow-up — mark missed events No Show, then jump to the chat via View Chat to re-engage the client.

Test it ​

  1. On a test agent, open Integrations → Calendar → Connect, then add one staff member (+ Add Staff) and one service (+ Add Service).
  2. In your agent's chat (any connected channel or the test chat), ask to book the service — e.g. "Book me a haircut tomorrow at 15:00." Confirm a slot.
  3. Open app.mychatbot.app/calendar — the event should appear as Confirmed in the staff member's column at the agreed time.
  4. Click the event: check Channel, and follow View Chat back to the conversation.
  5. Conflict check: from a second test conversation, ask to book the same staff member at the same time — the agent should refuse the occupied slot and offer a different time. Then try the same overlap with + New Event and with a drag: both are refused with the conflict message naming the other booking.
  6. Timezone check: with Timezone set to your business zone (not UTC), confirm the "15:00" the agent agreed to in chat is where the event sits on the grid — the grid renders in the integration's timezone, so a shift means the booking was made before you changed the setting.
  7. Drag the event to a new slot — expect "Event updated". Note that the customer's chat shows nothing about the change. Then ask the agent (in the same chat) to cancel the booking, switch on the Cancelled toggle, and confirm the event shows with a gray status dot.
  8. Create one booking manually with + New Event, typing an existing client's name — confirm the Linked badge appears and the event lands on the grid.

See also ​