> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Cal.com

## परिचय

शेड्यूलिंग और कैलेंडर बुकिंग मैनेज करने के लिए अपने ElevenLabs AI एजेंट्स को [Cal.com](https://cal.com) से कनेक्ट करें। यह इंटीग्रेशन आपके एजेंट्स को उपलब्धता जांचने, अपॉइंटमेंट बुक करने, मीटिंग रद्द या रीशेड्यूल करने और सामान्य बातचीत के ज़रिए मौजूदा बुकिंग देखने देता है।

## क्षमताएं

| क्षमता                  | सहायता                                              |
| ----------------------- | --------------------------------------------------- |
| ज़ीरो रिटेंशन मोड (ZRM) | समर्थित नहीं                                        |
| टूल्स में अटैचमेंट्स    | समर्थित नहीं — टूल्स सिर्फ़ टेक्स्ट पर काम करते हैं |

## सेटअप

यह इंटीग्रेशन ऑथेंटिकेशन के लिए **Cal.com API key** का उपयोग करता है (OAuth ऐप का नहीं)।

#### Cal.com में API key जनरेट करें

अपने Cal.com अकाउंट में **Settings > Developer > API Keys** पर जाएं और **New** पर क्लिक करें। जनरेट की गई key को तुरंत कॉपी करें — इसे दोबारा नहीं दिखाया जाएगा।

#### लाइव key इस्तेमाल करें

Cal.com दो तरह की keys जनरेट करता है — टेस्ट keys (`cal_` से शुरू होने वाली) और लाइव keys (`cal_live_` से शुरू होने वाली)। **लाइव key** इस्तेमाल करें, ताकि आपका एजेंट असली कैलेंडर डेटा ऐक्सेस कर सके।

#### ElevenLabs में कनेक्ट करें

ElevenLabs इंटीग्रेशन सेटअप में, अपनी Cal.com API key को **API Key** फ़ील्ड में पेस्ट करें।

## डेमो

> **Note**
>
> यह डेमो लेगसी वेबहुक टूल्स का उपयोग करता है। अगर आप नेटिव Cal.com इंटीग्रेशन का उपयोग कर रहे हैं, तो टूल्स
> अपने-आप कॉन्फ़िगर हो जाते हैं — मैन्युअल वेबहुक सेटअप की ज़रूरत नहीं है।

## यह कैसे काम करता है

एजेंट बुकिंग प्रोसेस के चरणों को पूरा करने के लिए टूल कॉल्स का उपयोग करके मीटिंग शेड्यूल करता है। नीचे दिए गए टैब में एक हाई-लेवल सारांश और विस्तृत सिस्टम प्रॉम्प्ट है।

#### हाई-लेवल परिचय

#### शुरुआती पूछताछ और मीटिंग की जानकारी

एजेंट शेड्यूलिंग जानकारी इकट्ठा करने के लिए मीटिंग का उद्देश्य, पसंदीदा तारीख/समय और अवधि पूछता है।

#### कैलेंडर की उपलब्धता जांचें

एजेंट कैलेंडर उपलब्धता इस तरह जांचता है:

* खुले टाइम स्लॉट पाने के लिए `get_available_slots` टूल का उपयोग करके।
* यह जांचकर कि अनुरोध किया गया समय उपलब्ध है या नहीं।
* अनुरोध किया गया समय उपलब्ध न होने पर विकल्प सुझाकर।
* कॉलर के साथ चुने गए समय की पुष्टि करके।

#### संपर्क जानकारी इकट्ठा करना

समय तय हो जाने पर, एजेंट:

* अटेंडी का पूरा नाम इकट्ठा और सत्यापित करता है।
* ईमेल पते की सटीकता जांचता है।
* टाइम ज़ोन जानकारी की पुष्टि करता है।
* Cal.com इवेंट टाइप के लिए ज़रूरी अतिरिक्त फ़ील्ड इकट्ठा करता है।

#### मीटिंग बनाना

एजेंट:

* सारी जानकारी सत्यापित करने के बाद `book_meeting` टूल कॉल करता है।
* बुकिंग टेम्पलेट स्ट्रक्चर का पालन करता है।
* अटेंडी के साथ मीटिंग बनने की पुष्टि करता है।
* उन्हें बताता है कि उन्हें कैलेंडर इनविटेशन मिलेगा।

#### विस्तृत सिस्टम प्रॉम्प्ट

```
You are a helpful receptionist responsible for scheduling meetings using the Cal.com integration. Be friendly, precise, and concise.

Begin by briefly asking for the purpose of the meeting and the caller's preferred date and time.
Then, ask about the desired meeting duration (15, 30, or 60 minutes), and wait for the user's response before proceeding.

Once you have the meeting details, say you will check calendar availability:
- Call get_available_slots with the appropriate date range
- Verify if the requested time slot is available
- If not available, suggest alternative times from the available slots
- Continue until a suitable time is agreed upon

After confirming a time slot, gather the following contact details:
- The attendee's full name
- A valid email address. Note that the email address is transcribed from voice, so ensure it is formatted correctly.
- The attendee's time zone (in 'Continent/City' format like 'America/New_York')
- Read the email back to the caller to confirm accuracy

Once all details are confirmed, explain that you will create the meeting.
Create the meeting by using the book_meeting tool with the following parameters:
- start: The agreed meeting time in ISO 8601 format
- eventTypeId: The appropriate ID based on the meeting duration (15min: 1351800, 30min: 1351801, 60min: 1351802)
- attendee: An object containing the name, email, and timeZone

Thank the attendee and inform them they will receive a calendar invitation shortly.

Clarifications:
- Do not inform the user that you are formatting the email; simply do it.
- If the caller asks you to proceed with booking, do so with the existing information.

Guardrails:
- Do not share any internal IDs or API details with the caller.
- If booking fails, check for formatting issues in the email or time conflicts.
```

## मैन्युअल वेबहुक सेटअप

> **Note**
>
> अगर आप नेटिव Cal.com इंटीग्रेशन का उपयोग करते हैं, तो टूल्स अपने-आप कॉन्फ़िगर हो जाते हैं। नीचे दिए गए चरण
> सिर्फ़ मैन्युअल वेबहुक सेटअप पर लागू होते हैं।

#### अपना Cal.com सीक्रेट स्टोर करें

ऑथेंटिकेटेड रिक्वेस्ट करने से पहले अपनी API key को सुरक्षित रूप से स्टोर करें। अगर आपने पहले से नहीं किया है, तो नई [Cal.com API key](https://cal.com/docs/api-reference/v1/introduction#get-your-api-keys) जनरेट करें।

Cal.com API के लिए यह ऑथेंटिकेशन हेडर ज़रूरी है:

**`Cal request header structure`**

```plaintext Cal request header structure
'Authorization': 'Bearer YOUR_API_KEY'
```

रिक्वेस्ट करते समय इसे सुरक्षित और उपलब्ध रखने के लिए key को एजेंट के सीक्रेट स्टोरेज में स्टोर करें।

> **Warning**
>
> Cal.com के अपेक्षित ऑथेंटिकेशन स्ट्रक्चर से मिलान करने के लिए, सीक्रेट बनाते समय API key के आगे `Bearer ` लगाना याद रखें।

![टूल सीक्रेट्स](/docs/_fern-img/5ffae070945a86b74975cd9b56679c2bb76f0ce70d05fe7b10e8e5dff6ddd630.webp)

#### एजेंट में टूल्स जोड़ें

दो टूल्स बनाकर कैलेंडर बुकिंग सक्षम करें:

1. **`get_available_slots`**: जब यूज़र पूछता है *"क्या Louis मंगलवार को सुबह 10:30 बजे खाली है?"*, तो एजेंट खुले टाइम स्लॉट जांचने के लिए [Cal.com के "Get available slots" एंडपॉइंट](https://cal.com/docs/api-reference/v2/slots/find-out-when-is-an-event-type-ready-to-be-booked) का उपयोग करता है।

2. **`book_meeting`**: उपयुक्त समय तय करने के बाद, एजेंट [Cal.com के "Create a booking" एंडपॉइंट](https://cal.com/docs/api-reference/v2/bookings/create-a-booking#create-a-booking) का उपयोग करके मीटिंग बुक करता है।

डैशबोर्ड के **Tools** सेक्शन में जाएं और **Add Tool** चुनें। टूल टाइप के रूप में **Webhook** चुनें, फिर नीचे दिए गए सेक्शन भरें:

#### टूल 1: get_available_slots

#### कॉन्फ़िगरेशन

एजेंट यह तय करने के लिए जिस मेटाडेटा का उपयोग करता है कि टूल कब कॉल होना चाहिए:

| फ़ील्ड | वैल्यू                                                                  |
| ------ | ----------------------------------------------------------------------- |
| नाम    | get_available_slots                                                     |
| विवरण  | यह टूल जांचता है कि कैलेंडर में कोई विशेष टाइम स्लॉट उपलब्ध है या नहीं। |
| मेथड   | GET                                                                     |
| URL    | [https://api.cal.com/v2/slots](https://api.cal.com/v2/slots)            |

#### हेडर्स

[यहां](https://cal.com/docs/api-reference/v2/slots/get-available-slots#get-available-slots) पर तय किए गए रिक्वेस्ट हेडर्स से मेल खाता है:

| टाइप     | नाम             | वैल्यू                        |
| -------- | --------------- | ----------------------------- |
| सीक्रेट  | Authorization   | ऊपर बनाई गई सीक्रेट key चुनें |
| स्ट्रिंग | cal-api-version | 2024-09-04                    |

#### क्वेरी पैरामीटर्स

[यहां](https://cal.com/docs/api-reference/v2/slots/get-available-slots#get-available-slots) पर तय किए गए रिक्वेस्ट क्वेरी पैरामीटर्स से मेल खाता है:

| डेटा टाइप | आइडेंटिफ़ायर | ज़रूरी | विवरण                                                                                                    |
| --------- | ------------ | ------ | -------------------------------------------------------------------------------------------------------- |
| string    | start        | हां    | स्लॉट लाने के लिए शुरुआती तारीख/समय (UTC), जैसे '2024-08-13T09:00:00Z'।                                  |
| string    | end          | हां    | स्लॉट लाने के लिए अंतिम तारीख/समय (UTC), जैसे '2024-08-13T17:00:00Z'।                                    |
| string    | eventTypeId  | हां    | बुक किए जाने वाले इवेंट टाइप की ID। 15 मिनट के लिए abc, 30 मिनट के लिए def और 60 मिनट के लिए xyz लौटाएं। |

#### टूल 2: book_meeting

#### कॉन्फ़िगरेशन

एजेंट यह तय करने के लिए जिस मेटाडेटा का उपयोग करता है कि टूल कब कॉल होना चाहिए:

| फ़ील्ड | वैल्यू                                                             |
| ------ | ------------------------------------------------------------------ |
| नाम    | book_meeting                                                       |
| विवरण  | समय तय होने पर यह टूल कैलेंडर में मीटिंग बुक करता है।              |
| मेथड   | POST                                                               |
| URL    | [https://api.cal.com/v2/bookings](https://api.cal.com/v2/bookings) |

#### हेडर्स

[यहां](https://cal.com/docs/api-reference/v2/bookings/create-a-booking#create-a-booking) पर तय किए गए रिक्वेस्ट हेडर्स से मेल खाता है:

| टाइप     | नाम             | वैल्यू                        |
| -------- | --------------- | ----------------------------- |
| सीक्रेट  | Authorization   | ऊपर बनाई गई सीक्रेट key चुनें |
| स्ट्रिंग | cal-api-version | 2024-08-13                    |

#### बॉडी पैरामीटर्स

[यहां](https://cal.com/docs/api-reference/v2/bookings/create-a-booking#create-a-booking) पर तय किए गए रिक्वेस्ट बॉडी पैरामीटर्स से मेल खाता है:

| आइडेंटिफ़ायर | डेटा टाइप | ज़रूरी | विवरण                                                                                                    |
| ------------ | --------- | ------ | -------------------------------------------------------------------------------------------------------- |
| start        | String    | हां    | UTC टाइम ज़ोन में ISO 8601 फ़ॉर्मेट में बुकिंग का शुरुआती समय, जैसे '2024-08-13T09:00:00Z'।              |
| eventTypeId  | Number    | हां    | बुक किए जाने वाले इवेंट टाइप की ID। 15 मिनट के लिए abc, 30 मिनट के लिए def और 60 मिनट के लिए xyz लौटाएं। |
| attendee     | Object    | हां    | अटेंडी की जानकारी। आपको ये फ़ील्ड यूज़र से इकट्ठा करनी होंगी।                                            |

> **Note**
>
> `eventTypeId` आपके Cal में उपलब्ध इवेंट टाइप्स के अनुसार होना चाहिए। अपने अकाउंट के इवेंट टाइप्स की सूची पाने के लिए
> [इस](https://cal.com/docs/api-reference/v1/event-types/find-all-event-types#find-all-event-types)
> एंडपॉइंट को कॉल करें (या ऐसा दूसरा टूल बनाएं जो यह काम अपने-आप करता हो)।

**अटेंडी ऑब्जेक्ट:**

| आइडेंटिफ़ायर | डेटा टाइप | ज़रूरी | विवरण                                                                                                   |
| ------------ | --------- | ------ | ------------------------------------------------------------------------------------------------------- |
| name         | String    | हां    | मीटिंग बुक करने वाले व्यक्ति का पूरा नाम।                                                               |
| email        | String    | हां    | मीटिंग बुक करने वाले व्यक्ति का ईमेल पता।                                                               |
| timeZone     | String    | हां    | कॉलर का टाइम ज़ोन। 'Europe/London' या 'America/New_York' जैसे 'Continent/City' फ़ॉर्मेट में होना चाहिए। |

> **Success**
>
> **Test AI agent** बटन दबाकर एजेंट को टेस्ट करें। ज़रूरत के अनुसार सिस्टम प्रॉम्प्ट में बदलाव करें।

#### तारीख और समय की जानकारी जोड़ें

डिफ़ॉल्ट रूप से, एजेंट को मौजूदा तारीख या समय पता नहीं होता। नीचे दिए गए तरीकों में से एक अपनाएं:

1. **समय पाने का टूल बनाएं**: ऐसा टूल जोड़ें जो मौजूदा तारीख और समय फ़ेच करे।

2. **ओवरराइड्स**: हर बातचीत की शुरुआत में सिस्टम प्रॉम्प्ट में मौजूदा तारीख और समय डालने के लिए [overrides](/docs/hi/eleven-agents/customization/personalization/overrides) फीचर का उपयोग करें।

## सुरक्षा संबंधी बातें

* सभी वेबहुक कॉल्स के लिए HTTPS एंडपॉइंट्स इस्तेमाल करें।
* संवेदनशील वैल्यू को ElevenLabs Secrets Manager का उपयोग करके सीक्रेट्स के रूप में स्टोर करें।
* सत्यापित करें कि सभी ऑथराइज़ेशन हेडर्स ज़रूरी फ़ॉर्मेट (`Bearer YOUR_API_KEY`) का पालन करते हैं।
* कॉलर्स को कभी भी इवेंट टाइप IDs या API जानकारी न दिखाएं।

## उपयोगी लिंक

* [Cal.com API दस्तावेज़](https://cal.com/docs/api-reference/v2/introduction)
* [Cal.com API keys गाइड](https://cal.com/blog/where-is-my-api-key-and-what-can-it-do)
* [ElevenLabs टूल्स परिचय](/docs/hi/eleven-agents/customization/tools/server-tools)