# 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="/files/peKUJTRa7HtfZUOzymxs" 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="/files/vlGx1ah9rVEGMNiHgPXw" alt=""><figcaption></figcaption></figure>

#### 2. Action Type

Choose what action the bot should perform:

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

<figure><img src="/files/YnxZ6HBgmoSHEsyFZb1l" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/hsbCGSDcV38sOasAx4YA" alt=""><figcaption></figcaption></figure>

* **Cancel Event** – Cancel an appointment

<figure><img src="/files/Hw6j19d3yW4onfmKpBaz" alt=""><figcaption></figcaption></figure>

#### 3. Calendar Account

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

<figure><img src="/files/6KPngSAoUHdkeIz9Jzoq" alt="" width="368"><figcaption></figcaption></figure>

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

<figure><img src="/files/MKo8LLR9hnp5dwWzPIMd" alt="" width="375"><figcaption></figcaption></figure>

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

<figure><img src="/files/TAnTgPfot1oYu65So31q" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/pl6wh9Aq9qOsoUvLWCwi" alt=""><figcaption></figcaption></figure>

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

\
![](/files/xGZIsdfHAE37kQMMSZAI)

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

<figure><img src="/files/K8uGulwXkdsnlp7eZwJn" 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="/files/jFquDej8uwqKHME6gqzQ" alt="" width="371"><figcaption></figcaption></figure>

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

<figure><img src="/files/DaRlCU8LdbJmfK4848AG" 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="/files/rL71o2lGKOIFlqqO0dDQ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/yLN1730vxVW1wIWBvVGy" alt=""><figcaption></figcaption></figure>

> Edit and Delete the working hours accordingly.

* Select your Added working schedule.

<figure><img src="/files/MPi7B7xbF6oQo0ROrr3l" 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="/files/Dqe75UURiBPadhZbLdJG" 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="/files/e3VxdFAt7BjgYtg7WynP" alt=""><figcaption></figcaption></figure>

***

### 3. Data Mapping (Live)

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

<figure><img src="/files/hOacPGQ85o2JnHGsiajy" 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="/files/QGAn551KIBtSnuQvWqcO" 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="/files/w0akk4pt7iSqrt5FY2Vi" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/v8djp44chwTbuK8wjsBZ" 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="/files/Hw6j19d3yW4onfmKpBaz" 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="/files/4lw0SezEcA39pKucKAQO" 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.botpenguin.com/bots/whatsapp-bot/manage-chatflow/google-calendar-appointment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
