# Google Calendar Appointment

### What is the Appointment Component?

The Appointment Component enables end-to-end appointment scheduling inside a chat flow. Once configured, users can select a date/time, and the system creates or updates events in the connected calendar automatically.

* **Google Appointment** – Direct Google Calendar–based booking&#x20;

***

### When to Use It

Use the Appointment Component when you want to:

* Let users **book appointments via chat**
* Sync appointments with **Google Calendar**
* Allow **reschedule or cancellation** without agent involvement
* Send **automatic confirmation emails**

***

### How It Works (Flow Overview)

1. Ask the user for appointment date/time
2. Collect required details (email, phone, etc.)
3. Configure the Appointment Component
4. Create/update the event in Google Calendar
5. Send confirmation to the user

***

### How to Add the Appointment Component

1. Open **Bot → Select your bot and Go to Chat Flows**
2. Click **Add Chat Component**
3. Select **Google Appointment**
4. Drag and drop it into the desired position in the flow

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FdPJkbZMQadATjpUYBq8h%2Fimage.png?alt=media&#x26;token=589727c8-4b59-4ee7-877b-c4b87ecf3e28" alt=""><figcaption></figcaption></figure>

***

### 1. Create Event Flow

### Configuration Options (Right Panel)

#### 1. Calendar Provider

* Select **Google Calendar**
* Required for Google Appointment component

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FXbzndco5MMJHeZvyqz1T%2Fimage.png?alt=media&#x26;token=462c6be9-8b80-407c-880f-81f4fd6ba5fe" alt=""><figcaption></figcaption></figure>

#### 2. Action Type

Choose what action the bot should perform:

* **Create Event** – Book a new appointment

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2F1Idmb2i40uOnqGBd0J5f%2Fimage.png?alt=media&#x26;token=95adf046-c9dd-47b2-91f5-b3bc3ef89b7c" alt=""><figcaption></figcaption></figure>

* **Reschedule Event** – Modify an existing booking

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2Fcd5UCIfeNb9DZJDBXaLZ%2Fimage.png?alt=media&#x26;token=267fa451-6a59-4846-84bb-3e925985547c" alt=""><figcaption></figcaption></figure>

* **Cancel Event** – Cancel an appointment

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2Fss1BnC76KeRSa76eXTxX%2Fimage.png?alt=media&#x26;token=6f609ad1-eb38-437a-ba48-439c3b08c7eb" alt=""><figcaption></figcaption></figure>

#### 3. Calendar Account

* Select the connected Google account from the dropdown if already connected

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FnNPqZFCamTj3iHaVhCaw%2Fimage.png?alt=media&#x26;token=eff24d44-624f-4a57-b4a7-03908e8d4309" alt="" width="368"><figcaption></figcaption></figure>

* If your calendar is not connected:&#x20;
  * Click on Add Account Button

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FHpCPDMSTS05gNcRjO4mp%2Fimage.png?alt=media&#x26;token=65c27601-fccd-4f73-99a9-f26571b20cd6" alt="" width="375"><figcaption></figcaption></figure>

* Choose your Google account
* Review all the permissions and policies and click on continue.

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FFIKcoVbrD7PjwfRijU03%2Fimage.png?alt=media&#x26;token=44cb3254-1e24-436a-be4e-e74fa98fdadd" alt=""><figcaption></figcaption></figure>

* Click on allow to give the access of your calendar.

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FSBhhzApLGevoCMc0jkLB%2Fimage.png?alt=media&#x26;token=301ae56c-315f-4c6d-a9e2-5f587f659579" alt=""><figcaption></figcaption></figure>

* So the account is connected and mentioned in the dropdown.

\
![](https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FB0zuQmg1QYIwI9QprLBC%2Fimage.png?alt=media\&token=7a41113a-a2d4-4f2b-8297-38a22f6527ab)

* Select your account and click on update and Next button.

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FE4QNKrXeIODOEW5o6EkP%2Fimage.png?alt=media&#x26;token=96abff26-8d5a-480d-b96b-5fbdec868c23" alt=""><figcaption></figcaption></figure>

* Appointments will be created in this calendar
* Make sure the account has **calendar write permissions**

### **Configure your Appointment Details:**

### 1. Basic Details (Live)

* **Appointment Name**: Custom name for the appointment (e.g., *Google Appointment*)
* **Appointment Slot Duration**: Slot length (e.g., 30 minutes)
* **Per-Day Availability**: Max number of appointments allowed per day
* **Availability Schedule**:
  * Select existing schedule or **Add New Schedule**
  * Clicking on Add new schedule will allow to configure your working hours

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FpvJwzIKgZHhkKqKKA4KK%2Fimage.png?alt=media&#x26;token=ed45f963-5d3f-4bbf-a809-58b7d0d28aea" alt="" width="371"><figcaption></figcaption></figure>

* Click on Add Business Hours button to add your business hours.

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2F0xQOZ8hTRPPvv2QR9Dm7%2Fimage.png?alt=media&#x26;token=64b13b20-fc08-4ce0-b192-4d04ffe55464" alt=""><figcaption></figcaption></figure>

* Add your schedule here so that your calendar can show the availability accordingly by adding the following details:
  * Name&#x20;
  * Short Description
  * Select your Time Zone
  * Add your Business Hours including your days and Timings.
  * After adding it will be reflected in the list.

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2F9gjGDJjtqk36U5gPPT64%2Fimage.png?alt=media&#x26;token=b9937308-842e-4cdc-a4d9-8635745f1db8" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FiCo3jQWKusZvQTbaL7E0%2Fimage.png?alt=media&#x26;token=7926fafe-8f35-4101-917b-1bbe91c1adde" alt=""><figcaption></figcaption></figure>

> Edit and Delete the working hours accordingly.

* Select your Added working schedule.

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FSaWeCLMyJO604XjL7aJv%2Fimage.png?alt=media&#x26;token=d9d6e002-4ac4-49c7-a613-a8b6111d8652" alt=""><figcaption></figcaption></figure>

* **Customer Timezone**: Timezone used for slot display (e.g., Asia/Kolkata)
* **Dependency Check**:
  * Name, Email, and Phone components must be added **before** this component
* **Next Message After Completion**: Route the flow after booking completes

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2F6k5a2ocfIXrMTfz5yetC%2Fimage.png?alt=media&#x26;token=602a14e9-fdb8-4286-aa2c-c93ed9155df5" alt=""><figcaption></figcaption></figure>

***

### 2. Message Text Customization (Live)

Fully configurable system messages:

* **Date Selection Message**\
  \&#xNAN;*“Please select a date for your appointment.”*
* **Slot Selection Message**\
  \&#xNAN;*“Choose an appointment slot from the available options.”*
* **Booking Failed Message**\
  \&#xNAN;*“We couldn’t complete the appointment booking. Please try again.”*
* **Appointment Success Message**\
  \&#xNAN;*“Your appointment has been booked successfully!”*
* **Slot Unavailability Message**\
  \&#xNAN;*“This appointment slot is no longer available. Please choose another one.”*
* **View More Options Text** (when >10 slots)\
  \&#xNAN;*“View More Options”*

➡️ Supports **dynamic variables** using `/`

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FGP0pZhMc6RRgOD4QVfuD%2Fimage.png?alt=media&#x26;token=e60f9ef7-0332-4a8d-a49c-513138cbbf0a" alt=""><figcaption></figcaption></figure>

***

### 3. Data Mapping (Live)

* **Primary Attendee**
  * Map appointment attendee to a **Custom Attribute** (e.g., Email)

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2F947ydaG5iY3VFI3Ba7fd%2Fimage.png?alt=media&#x26;token=613734db-3243-4ae4-8f08-1ba7fcfc2b6c" alt=""><figcaption></figcaption></figure>

***

### 4. Advance Options (Live)

Select the checkboxes to enable the permissions.

#### Booking & Meeting Controls

* **Include a Google Meet link with each appointment**\
  Automatically adds a Meet link to the booked event.
* **Allow users to invite additional guests**\
  Users can add extra attendees while booking.
* **Allow multiple bookings on the same appointment slot**\
  Enables overlapping bookings for the same time slot (useful for group sessions).

#### Appointment Details

* **Allow users to add an agenda for appointment**\
  Users can enter agenda/notes during booking.

#### Reliability & Retry

* **Retry booking once upon failure**\
  Automatically retries booking if the first attempt fails.

#### Notifications & Messaging

* **Send notification for the user reply**\
  Triggers notification when user responds.
* **Rephrase Messages**\
  AI-assisted rephrasing of normal system messages.
* **Rephrase Error Messages**\
  AI-assisted rephrasing specifically for error states.

#### Message Timing

* **Add delay before message is displayed**\
  Set a delay (in seconds) before sending the next message (e.g., 1 second).

***

#### Actions

* **Back**: Go to previous step
* **Update**: Save advanced configuration

***

### 5. Actions Available

* **Update**: Save all configuration changes
* **Back**: Navigate to previous step
* **Test Live on WhatsApp Web**: End-to-end booking validation

Whenever an appointment is booked via the chatbot, it will automatically appear in the **Inbox → Appointments** tab.\
This section lets you view and manage all upcoming and past appointments in one place

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FFfKex2RtvGoFPbRaWq8B%2Fimage.png?alt=media&#x26;token=1ab9417b-8992-45b4-a92d-6c6170ce6829" alt=""><figcaption></figcaption></figure>

### 2. Reschedule Event

&#x20;It Updates an existing appointment with a new date/time.

#### Connect Configuration (Google Appointment)

**Calendar Provider**

* Select **Google Calendar** to sync bookings with your Google account.

**Action Type**

* **New Appointment** → Creates a fresh calendar event.
* **Reschedule Event** → Updates an existing appointment with a new date/time (used for rescheduling flows).
* It allow the users to the reschedule the meeting&#x20;

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FvTyxGvF01puEV6aWrTo3%2Fimage.png?alt=media&#x26;token=a7b38b8c-3b2e-4e85-b5bb-fe64b28e5dbd" alt=""><figcaption></figcaption></figure>

* Edit or keep the configure details same for the Reschedule flow.

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2FQjYuEO26nqUhTaZMWgRz%2Fimage.png?alt=media&#x26;token=176f7506-d2d1-4003-9661-c3eee3ec4617" alt=""><figcaption></figcaption></figure>

**Calendar Account**

* Choose the connected Google account where appointments will be created or updated.
* If no account is connected, click **Add Account** to authorize Google Calendar.

**Behavior**

* On successful booking or reschedule:
  * The event is created/updated in Google Calendar.
  * Confirmation is sent to the user (email / chat message based on flow setup).
  * Appointment details are stored internally.

**Post-Booking Visibility**

* All booked or rescheduled appointments are reflected in:
  * **Inbox → Appointments** tab
  * Allows filtering by **Upcoming / Past**, date range, email, or phone number.

***

### 3. Cancel Event

This flow Allows you to cancel the meeting Event.

#### 1. Entry Point

**Trigger**

* Keyword: `Cancel appointment`
* Button: *Cancel Appointment*
* Or from menu / fallback option

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2Fss1BnC76KeRSa76eXTxX%2Fimage.png?alt=media&#x26;token=6f609ad1-eb38-437a-ba48-439c3b08c7eb" alt=""><figcaption></figcaption></figure>

***

#### 2. Collect User Identity

**Message**

> “Sure 👍 I can help you cancel your appointment.\
> Please confirm your details to proceed.”

**Components (in this order – mandatory)**

* **Name**
* **Email**
* **Phone Number**

> These are required to identify the correct calendar event.

***

#### 3. Fetch Existing Appointment

**Appointment Component**

* **Calendar Provider:** Google Calendar
* **Action Type:** **Cancel Event**
* **Calendar Account:** Select connected Google account

**Configuration**

* **Count of Previous Scheduled Events:** `1`\
  (Fetches the most recent upcoming appointment for this user)

***

#### 4. Confirmation Step (Recommended)

**Message**

> “I found your upcoming appointment scheduled on\
> 📅 {{date}} at ⏰ {{time}}.\
> Do you want to cancel this appointment?”

**Single Choice**

* ✅ Yes, cancel it
* ❌ No, keep it

***

#### 5. Cancel Event Action

**Condition**

* If user selects **Yes, cancel it**

**Appointment Component**

* Executes **Cancel Event**
* Removes the event from Google Calendar
* Updates internal appointment status

***

#### 6. Success Message

**Message**

> “✅ Your appointment has been successfully cancelled.\
> If you need to reschedule or book a new appointment, just let me know!”

***

#### 7. Failure / No Appointment Found

**Fallback Message**

> “⚠️ We couldn’t find any upcoming appointment with the provided details.\
> Please double-check your information or contact support.”

***

#### 8. Post-Cancellation Visibility

* Cancelled appointment will:
  * Be removed from **Google Calendar**
  * Appear as **Cancelled** in **Inbox → Appointments**
  * Be available for audit/logs

***

### Optional Enhancements (Advanced Options)

* ⏱ Retry cancellation once on failure
* 🔔 Send cancellation confirmation email
* ✨ Rephrase success/error messages using AI
* ➕ Offer **Reschedule** CTA immediately after cancel

{% hint style="info" %}
All the Appointments will be visible in the Inbox Tab
{% endhint %}

<figure><img src="https://1745791824-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAPDb8cKQtGlIAfgHjcsQ%2Fuploads%2F3gX0XZJb1Sfkgg1wPOTI%2Fimage.png?alt=media&#x26;token=718d1080-b2ad-44b9-b189-1f0cd80d2cd8" alt=""><figcaption></figcaption></figure>

#### FAQs

<details>

<summary>What is the Appointment Component?</summary>

The Appointment Component lets users book, reschedule, or cancel appointments directly inside the chatbot. It automatically creates or updates events in the connected Google Calendar.

</details>

<details>

<summary>Do I need to connect Google Calendar?</summary>

Yes. A Google Calendar account with write access is required. All appointments booked via the chatbot will be created, updated, or cancelled in this calendar.

</details>

<details>

<summary>What actions does the Appointment Component support?</summary>

The component supports three key actions:

* **Create Event** – Book a new appointment
* **Reschedule Event** – Change date or time of an existing booking
* **Cancel Event** – Cancel an upcoming appointment

</details>

<details>

<summary>What user details are required before booking?</summary>

Before using the Appointment Component, the flow must collect:

* **Name**
* **Email**
* **Phone number**\
  These details are required to identify and manage appointments.

</details>

<details>

<summary>Where can I view and manage all appointments?</summary>

All booked, rescheduled, and cancelled appointments are available under\
Inbox → Appointments tab, where you can view upcoming and past appointments.

</details>
