> For the complete documentation index, see [llms.txt](https://docs.dapta.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dapta.ai/ai-voice-agents/agent-actions/book-calendar.md).

# Book calendar

Allow your agent to schedule appointments directly in your calendar during a phone conversation. Once the user confirms their interest and provides the necessary information, the agent can automatically create the appointment without interrupting the call flow.

This feature works in conjunction with Check Availability to offer a complete scheduling experience: first it checks available times and then schedules the selected appointment.

**Note:** *To obtain your* [*Cal.com*](http://cal.com) *API Key and Event Type ID, check our documentation "How to Configure* [*Cal.com*](http://cal.com)*".*

### Step-by-Step Guide

#### Step 1: Select Your Agent

* Navigate to the agent list and select the agent you want to add the calendar booking action to

#### Step 2: Access Settings

* Once inside the agent, go to the **Settings** tab.
* Within Settings, find and click on **Agent Actions** to access the available actions for your agent.

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

Step 3: Add the Book on Calendar Function

* A menu with available options will appear. Click **Add** and then select **Book on the calendar** from the list of options.

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

Step 4: Complete the Configuration

To obtain your [Cal.com](http://cal.com) API Key and Event Type ID, check our documentation "*How to Configure* [*Cal.com*](http://cal.com)".

* **Name:** Assign a descriptive name (e.g., "book\_appointment")
* **Instructions:** Define how the agent should handle the scheduling process
* **API Key:** Enter your [Cal.com](http://cal.com) API key
* **Event Type ID:** Specify the [Cal.com](http://cal.com) event type ID
* **Timezone:** Time zone for appointments

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

#### Important Instructions for the Agent

Remember that when referring to dates, you should always update the timezone of the location where you are. This is important to maintain clarity and consistency in communication.

To provide the AI with context about the current time, you must include the following variable in your prompt: `{{current_time}}`, which is a variable we introduce by default. This variable gives the agent context about the current time.

If you need a different time zone, you can specify it using `{{current_time_[timezone]}}`. For example: `{{current_time_America/New_York}}`.

**Note:** *The \[timezone] must be in **IANA (Internet Assigned Numbers Authority) format.***

Some of the available options are:

| Time Zone - City         | Format for \[timezone] |
| ------------------------ | ---------------------- |
| Bogotá, Colombia         | America/Bogota         |
| Santiago, Chile          | America/Santiago       |
| La Paz, Bolivia          | America/La\_Paz        |
| Lima, Peru               | America/Lima           |
| Caracas, Venezuela       | America/Caracas        |
| Madrid, España           | Europe/Madrid          |
| Ciudad de Mexico, Mexico | America/Mexico\_City   |

### Multiple Calendar Configuration

If you need to schedule appointments in different calendars, you can create multiple actions by specifying in each one which specific calendar the appointment should be scheduled to. This is useful for separating different types of services or work teams.

### Additional Examples for Book Appointment

* **For scheduling meetings:** "Once the user selects a time slot, confirm all details (full name, phone, email, date and time) before creating the appointment. After successfully scheduling, confirm that the appointment has been scheduled and mention they will receive an email confirmation with all the details."
* **For Mental Health Services:** "To schedule a therapy session, request: full name, phone, email, and whether it's their first session. Ask if they prefer in-person or virtual session. After confirming the appointment, mention our cancellation policies (24 hours notice) and that they will receive intake forms via email."
* **For Educational Services:** "When scheduling a tutoring session, confirm: student's name, grade/level, specific subject, phone and contact email. Ask if they need special materials. After booking, inform them that the session will be 60 minutes long and they can reschedule with 12 hours notice."
* **For Real Estate Services:** "To schedule a property viewing, collect: full name, phone, email, type of property of interest, and approximate budget. Confirm the address of the property to visit. After scheduling, mention that the visit will last approximately 30 minutes and they will receive the exact address via text message."
* **For Veterinary Services:** "To schedule a veterinary appointment, confirm: owner's name, phone, email, pet's name and species, and reason for consultation. Ask for the animal's approximate age. After booking, remind them to bring vaccination records and to arrive 10 minutes early for check-in."


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://docs.dapta.ai/ai-voice-agents/agent-actions/book-calendar.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.
