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 your computer's timezone (the browser clock). If your computer is set to the same zone as the integration, everything lines up 1:1; a teammate viewing from another timezone sees the same events shifted to their local time.
  • 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

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

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, "Failed to update event" otherwise. There is no conflict check on drag: the move saves even if it lands on an occupied slot (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 formNo check β€” the event saves ("Event created") even if the staff member is already booked; both events sit side by side in the column
Drag / resize on the gridNo check β€” the move saves ("Event updated") even onto an occupied slot

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.
  • Rules the calendar can't express β€” minimum advance notice, buffer time between bookings β€” go in Booking Instructions (e.g. "Minimum 24h advance booking").

Manual bookings can double-book

Only the agent is stopped from overlapping bookings. + New Event and drag-reschedule trust your team completely β€” the app shows no warning when you create or drop an event onto an occupied slot. Check the staff column before you save.

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

The form does not check the slot is free β€” an event on top of an existing booking saves without warning (see Availability & conflicts). And 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).

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: it saves without warning β€” that guard exists only on the agent side.
  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 β€” if it's shifted, compare your computer's timezone with the integration's Timezone 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 ​