
Booking an appointment isn’t just about picking a time slot—it’s about making sure the customer shows up. People don’t just schedule; they ask about locations, pricing, discounts, business hours, and whether the visit is worth their time.
For multi-chain businesses, handling these inquiries across multiple locations can be overwhelming. Calls and emails pile up, customers drop off, and lost appointments mean lost revenue.
The solution? Build an AI chatbot that not only automates scheduling but also provides instant, accurate answers—right on WhatsApp.
This guide will show you how to create a WhatsApp chatbot using Botpress and Calendly to streamline scheduling, handle customer questions, and ensure every appointment turns into real business.
How to build an Appointment Booking Bot
Before we dive into building the chatbot, here’s what you’ll need:
- Calendly Standard Plan – Required for API access, but you can start with the 14-day free trial.
- Meta for Business Account – Free to set up and necessary for WhatsApp integration.
- Botpress Account – Free to create and is used for building and managing your chatbot.
Once these are set up, think about the information your bot needs to handle. Appointment booking isn’t just about picking a time—it’s about ensuring customers have all the details they need. Your chatbot should be able to:

- Confirm Availability – Show open slots based on Calendly’s schedule.
- Collect Customer Details – Name, contact info, preferred location, and any special requests.
- Provide Location-Specific Information – Business hours, pricing, services offered, and ongoing discounts.
- Answer Common Questions – Cancellation policies, rescheduling, parking details, and anything else customers usually ask before booking.
By handling all of this in one conversation, your chatbot ensures customers have everything they need to book with confidence.
Step 1: Setup Bot Environment
Start by creating a new project in Botpress. Once logged in, select the "Start from Scratch" template for complete customization and flexibility.
Step 2: Add Knowledge Base
A well-structured knowledge base ensures that your chatbot can provide customers with accurate information beyond just appointment scheduling. This can be set up efficiently by adding relevant documents and structured data.
Uploading Business Information
For static business details that customers frequently ask about, uploading a structured document is the best approach. This ensures the bot always has accurate and up-to-date information.
.webp)
- Navigate to the left menu in Botpress and select Knowledge Base.
- Upload a document containing essential details, including:
- Branch locations and addresses.
- Available facilities at each location.
- Pricing, discounts, and membership options.
- Operating hours and contact details.
Using Tables for Dynamic Information
For upcoming events or frequently changing details, maintaining a structured table is more effective than updating a document. A table allows for:
.webp)
- Easier updates – New events can be added as rows without modifying the entire file.
- Better organization – Customers receive structured, easy-to-read information.
Optimizing Costs with Cached FAQs
Static information, such as business policies or frequently asked questions, should be stored in an FAQ document. This reduces the need for constant updates and leverages the knowledge base’s caching capabilities, which significantly reduces API costs.
At the same time, the bot can still generate dynamic and context-aware responses based on customer queries. By structuring the knowledge base efficiently, businesses can maintain an up-to-date chatbot that provides valuable information while optimizing operational costs.
Step 3: Add Calendly Integration
To enable your chatbot to schedule appointments, you need to connect Calendly with Botpress. This allows the bot to access available time slots and generate booking links for users.
1. Install the Calendly Integration in Botpress
- Navigate to Botpress Hub and install the Calendly integration.
- This integration is essential for retrieving and managing scheduling information from Calendly.
2. Generate an API Key from Calendly
- Go to Calendly and choose “Integrations & Apps” from the menu on the left.
- Select API & Webhooks and create a new API token.
- Name the token (e.g., "Botpress Access") and generate it.
- Complete the two-factor authentication if prompted.
- Copy the API key and paste it into the Calendly integration settings in Botpress.
- Save the configuration to establish the connection.
At this stage, Calendly is successfully connected to Botpress, allowing your chatbot to access scheduling data.
Sep 4: Build Chatbot Workflow
Now that Calendly is integrated, it's time to build the chatbot workflow that handles appointment scheduling and retrieves business information.
1. Capturing the User’s Branch Selection
Since users will be booking appointments at different locations, the chatbot needs to store the selected branch name.
.webp)
- Add a single-choice node where users select a branch.
- Create a variable called workflow.branch to store the selection.
This ensures that all scheduling links and responses are tailored to the right branch.
2. Using the Calendly Event Workflow
Instead of creating the appointment scheduling logic from scratch, you can use the Calendly Event Workflow in Botpress.
.webp)
- Open Workflows and search for Calendly Event Workflow in the Botpress Hub.
- Clone the workflow and modify it as needed.
- This workflow automatically generates a customized event link that includes the user’s conversation ID.
By passing the conversation ID, the chatbot generates a unique booking link that can be tracked to individual users.
3. Setting Up the Calendly Event Trigger
Once the chatbot sends the booking link, it needs to detect when an appointment is confirmed.

- Right-click inside the workflow and select Calendly Event Trigger.
In the trigger settings, pass the dynamic conversation ID using:
{{event.payload.conversation.id}}
- This allows the chatbot to listen for updates related to the user’s specific booking.
- Once triggered, the chatbot retrieves the scheduled event details and confirms the appointment to the user.
This step ensures that bookings are properly tracked and acknowledged.
4. Handling Business Information and FAQs
For users asking about branch details instead of booking an appointment:
.webp)
- Create an autonomous node connected to the knowledge base.
- Enable knowledge search to let the chatbot fetch answers from the uploaded FAQ document.
- The chatbot can now retrieve details like pricing, operating hours, and services without requiring manual updates.
This improves efficiency while making sure users always get accurate information.
Step 5: Deploying Chatbot on WhatsApp
With the chatbot fully built, the final step is to deploy it on WhatsApp so users can interact with it directly. This allows seamless appointment scheduling and instant responses to inquiries.
- Go to Home from the left-hand menu in Botpress.
- Click Authorize WhatsApp and connect it to your Meta Business Account.
- Follow the on-screen steps to complete the setup.
Once connected, your chatbot will be live on WhatsApp, ready to handle customer interactions.
Deploy your first Appointment Chatbot Today
Building an appointment scheduling chatbot is just the beginning. With Botpress, you can enhance the chatbot further by integrating rich media elements like images, carousels, and interactive buttons to provide users with a visually engaging booking experience on WhatsApp.
Beyond WhatsApp, your chatbot can also be deployed on Slack, Microsoft Teams, Telegram, and other platforms, ensuring a seamless scheduling experience across multiple communication channels.
Start building today. It’s free.
Table of Contents
Share this on: