Automating Scheduling with Conversational AI

Building an appointment bot requires bridging the gap between natural language intent and structured backend data. By using Kommunicate’s Kompose builder, you can create a conversational agent that handles the entire booking lifecycle—from identifying the user's need for a specialist to confirming a time slot on a Google Calendar—without needing a separate backend server.

The Technical Workflow

The system relies on three primary inline code functions executed within the bot builder:

  1. Availability Discovery: The ShowAvailableSlots function queries the Google Calendar Freebusy API. It filters the doctor's calendar for the next 7 days, excludes times outside of defined clinic hours (e.g., 9 AM–5 PM), and identifies free 1-hour windows. These are returned to the user as clickable buttons.
  2. Data Collection: The ShowBookingForm function captures user details (name, email) and passes hidden metadata (specialty, selected ISO timestamp) to the final step.
  3. Event Finalization: The BookAppointment function uses the collected data to perform a calendar.events.insert call, creating the official appointment and providing the user with a confirmation link.

Implementation Best Practices

  • Authentication: Use the Google OAuth Playground to generate persistent access and refresh tokens. Ensure your Google Cloud project has the Calendar API enabled and the correct scopes (calendar.readonly and calendar.events.freebusy) configured.
  • Mapping Logic: Maintain a dictionary (DOCTOR_CALENDARS) that maps specific specialties to unique Google Calendar IDs. This allows the bot to scale by simply adding new entries to the map.
  • Time Zone Management: Explicitly set the TIME_ZONE variable in both the availability check and the event creation functions to ensure consistency between the user's view and the doctor's calendar.
  • Extensibility: The workflow can be enhanced by integrating email APIs like SendGrid for receipts, Google Sheets for administrative logging, or connecting to the WhatsApp Cloud API for broader distribution.