Before setup
Choose where bookings belong and where conflicts are checked.
Google Calendar
Connect the Google account, select the calendar that receives new appointments, and choose every calendar whose busy time should block availability.
GoHighLevel
Connect GoHighLevel and choose a default booking calendar. A CRM connection without a default calendar is only lead sync, not appointment booking.
Agent capability
Enable Check availability and Book appointments for the agent that handles the calls. Calendar tools remain unavailable until Google Calendar or GoHighLevel is connected.
Accurate schedule
Keep busy time, working hours, buffers, and minimum notice accurate in the connected system before Kai offers slots.
Connection setup
Connect the calendar under the correct business.
- 1
Open Connections
Go to Dashboard → Settings → Connections for the selected business. - 2
Connect Google Calendar or GoHighLevel
Complete sign-in and grant the permissions required to check availability and create appointments. - 3
Choose the booking calendar
Select the calendar that should receive new events. GoHighLevel must have a default calendar before Kai can book there. - 4
Choose conflict calendars for Google
Include every Google calendar whose busy time should prevent a booking, while keeping the booking destination explicit. - 5
Read the connected state back
Confirm the account, connection status, and selected calendar IDs shown for this business before changing the agent.
When both calendars are configured, Kai uses the GoHighLevel booking calendar first. Google Calendar can serve as the fallback if the GoHighLevel lookup or booking fails.
Agent setup
Give the answering agent the calendar tools.
- 1
Open Dashboard → Agents
Choose the agent assigned to the phone number that receives booking calls. - 2
Open capabilities or tools
Enable Check availability and Book appointments. These tools share the connected-calendar prerequisite. - 3
Add clear booking instructions
Tell Kai which services can be booked, required caller details, appointment length, and when it should offer a human follow-up instead. - 4
Save and test
Make a controlled call, ask for a future appointment, and confirm the actual calendar entry before using the flow with customers.
Customer journey
Check availability first. Confirm only after the calendar is updated.
1. Collect the request
Kai gathers the caller name, email, requested service, and a clear future date or time.
2. Check open times
Kai checks the selected calendar for availability and offers only the slots returned by that lookup.
3. Create the event
After the caller selects a time, Kai writes the appointment to the calendar and waits for a success response.
4. Confirm accurately
Kai confirms the booked time after the calendar accepts it. Text confirmation is a separate delivery step and can succeed or fail independently.
Check it worked
Read the appointment back where it was created.
A connected badge, offered time, or spoken confirmation is not enough on its own.
- Confirm the selected business, agent, calendar connection, booking calendar, and conflict calendars before the test.
- Ask for a future time and confirm Kai checks availability before offering the slot.
- Confirm the call result includes an appointment or event ID.
- Open Google Calendar or GoHighLevel and read back the same attendee, date, time, timezone, and event details.
- Check that the event appears on the intended booking calendar and conflicts were respected.
- Verify the confirmation message separately when one was expected. A saved calendar event does not prove the message was delivered.
Calendar limits
New bookings and appointment changes do not share the same coverage.
Availability and new booking support configured GoHighLevel or Google Calendar. Rescheduling and cancellation currently require a matching, locally mirrored Google Calendar event. If Kai cannot identify that event or the Google connection is unavailable, it must not claim the appointment moved or was cancelled.
Troubleshooting
When availability or booking fails
No calendar is connected
Open Settings → Connections and connect Google Calendar or configure a GoHighLevel default calendar for this business.
Google connection expired
Reconnect the Google account and grant calendar access again. Then read back the selected booking and conflict calendars.
The wrong calendar received the event
Correct the default booking calendar in Connections. Do not confuse conflict calendars with the calendar that receives the event.
Kai offered no times
Check the requested date, working hours, busy events, buffers, notice rules, timezone, and the calendar availability response.
Booking failed after a time was chosen
Do not confirm the slot. Use the alternative times Kai returns, or arrange a human follow-up after checking the calendar error.
Reschedule or cancellation failed
Confirm a matching upcoming Google Calendar event exists for the caller and that the Google connection can update or delete it.
