> 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.

# Google Calendar

## खास जानकारी

शेड्यूलिंग और कैलेंडर अपॉइंटमेंट मैनेज करने के लिए अपने ElevenLabs AI एजेंट्स को [Google Calendar](https://calendar.google.com) से कनेक्ट करें। यह इंटीग्रेशन आपके एजेंट्स को प्राकृतिक बातचीत के ज़रिए उपलब्धता देखने, प्रतिभागियों और वैकल्पिक Google Meet कॉन्फ़्रेंसिंग के साथ इवेंट बनाने, अपडेट करने और हटाने, आने वाले इवेंट्स की सूची देखने और उपलब्ध कैलेंडर खोजने की सुविधा देता है।

## क्षमताएं

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

## सुरक्षा चेतावनी

> **सुरक्षा चेतावनी: `google_calendar_update_event` और `google_calendar_delete_event` विशेषाधिकार प्राप्त टूल्स हैं।** ये कनेक्ट किए गए Google खाते के पूरे कैलेंडर एक्सेस के साथ चलते हैं, सिर्फ़ आपके एजेंट द्वारा बनाए गए इवेंट्स के एक्सेस के साथ नहीं। एजेंट से बात करने वाला कोई भी व्यक्ति उस कैलेंडर के **किसी भी** इवेंट को बदल या रद्द कर सकता है, जिनमें वे इवेंट्स भी शामिल हैं जो उसने नहीं बनाए हैं, क्योंकि एजेंट `google_calendar_list_events` से इवेंट ID ढूंढ सकता है। सिस्टम प्रॉम्प्ट में पुष्टि मॉडल के लिए एक संकेत है, सुरक्षा नियंत्रण नहीं।
>
> इन टूल्स को सिर्फ़ उन एजेंट्स पर सक्षम करें जिनमें **ऑथेंटिकेशन सक्षम** हो, या जहाँ इवेंट ID किसी भरोसेमंद स्रोत से आती हो। इन्हें सार्वजनिक एजेंट्स में न जोड़ें। इवेंट अपडेट या डिलीट होने पर प्रतिभागियों को हमेशा सूचित किया जाता है।

## सेटअप

यह इंटीग्रेशन ऑथेंटिकेशन के लिए **Google OAuth 2.0** का इस्तेमाल करता है। आप अपनी ओर से Google Calendar एक्सेस करने के लिए ElevenLabs को अनुमति देते हैं।

#### ElevenLabs में कनेक्ट पर क्लिक करें

ElevenLabs इंटीग्रेशन सेटअप में **कनेक्ट** पर क्लिक करें। एक्सेस की अनुमति देने के लिए आपको Google पर रीडायरेक्ट किया जाएगा।

#### अपना Google खाता चुनें

वह Google खाता चुनें जिसका कैलेंडर डेटा आपके एजेंट को एक्सेस करना चाहिए। अगर आपके ब्राउज़र में कई Google खाते साइन इन हैं, तो सही खाता चुनें।

#### कैलेंडर एक्सेस की अनुमति दें

मांगी गई अनुमतियों की समीक्षा करें और **अनुमति दें** पर क्लिक करें। इंटीग्रेशन आपके स्वामित्व वाले कैलेंडरों पर इवेंट्स मैनेज करने, आपकी कैलेंडर सूची देखने और खाली/व्यस्त जानकारी जांचने का एक्सेस मांगता है।

## OAuth स्कोप्स

इंटीग्रेशन निम्नलिखित Google OAuth 2.0 स्कोप्स मांगता है:

| स्कोप                            | उद्देश्य                                                                    |
| -------------------------------- | --------------------------------------------------------------------------- |
| `calendar.events.owned`          | आपके स्वामित्व वाले कैलेंडरों पर इवेंट्स बनाना, पढ़ना, अपडेट करना और हटाना। |
| `calendar.calendarlist.readonly` | आपके खाते के लिए उपलब्ध कैलेंडरों की सूची (नाम और ID) देखना।                |
| `calendar.freebusy`              | इवेंट विवरण दिखाए बिना कैलेंडरों में खाली/व्यस्त उपलब्धता जांचना।           |

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

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

#### संक्षिप्त जानकारी

#### कैलेंडर खोजें

एजेंट शेड्यूलिंग के लिए सही कैलेंडर पहचानने हेतु उपलब्ध कैलेंडरों की सूची देखता है। ज़्यादातर यूज़र्स के लिए यह प्राथमिक कैलेंडर होता है।

#### उपलब्धता जांचें

एजेंट खाली/व्यस्त उपलब्धता इस तरह जांचता है:

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

#### प्रतिभागी का विवरण लें

समय तय होने के बाद, एजेंट:

* प्रतिभागी का पूरा नाम और ईमेल पता लेता है।
* कॉलर को ईमेल पढ़कर सुनाकर उसकी पुष्टि करता है।
* टाइम ज़ोन की जानकारी सत्यापित करता है।

#### इवेंट बनाएं

एजेंट:

* पुष्टि किए गए विवरण के साथ `google_calendar_create_event` टूल को कॉल करता है।
* वीडियो कॉन्फ़्रेंसिंग का अनुरोध होने पर वैकल्पिक रूप से Google Meet लिंक जोड़ता है।
* इवेंट बन जाने की पुष्टि करता है और प्रतिभागी को बताता है कि उन्हें कैलेंडर निमंत्रण मिलेगा।

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

```
You are a helpful scheduling assistant responsible for managing calendar bookings using Google Calendar. 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, check calendar availability:
- Call google_calendar_check_availability with the appropriate time range and calendar ID (use 'primary' for the main calendar)
- The tool returns busy time blocks — any time not listed as busy is available
- If the requested time overlaps with a busy block, suggest alternative times
- 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, create the event:
- Call google_calendar_create_event with calendarId set to 'primary'
- Set summary to a descriptive meeting title
- Set start and end times in RFC 3339 format with the attendee's time zone
- Add the attendee's email to the attendees array
- If the caller requests a video call, include conferenceData with conferenceSolutionKey type 'hangoutsMeet' and set the conferenceDataVersion query parameter to 1
- Set sendUpdates to 'all' so attendees receive calendar invitations

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; do it silently.
- If the caller asks you to proceed with booking, do so with the existing information.
- Use google_calendar_list_calendars if the caller asks to schedule on a specific calendar other than their primary one.
- Use google_calendar_list_events if the caller asks what meetings they have coming up, or to find the event ID before changing or cancelling a meeting.
- Use google_calendar_update_event to reschedule or edit an existing event. Check availability for the new time first, and confirm the change with the caller.
- Use google_calendar_delete_event to cancel an event only after the caller has explicitly confirmed which event to cancel. For recurring events, confirm whether to cancel one occurrence or the whole series: list events with singleEvents=true and use the occurrence's ID for one occurrence, or its recurringEventId for the whole series.

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

## एजेंट टूल्स

किसी एजेंट में Google Calendar टूल्स जोड़ने पर, निम्नलिखित बिल्ट-इन टूल्स उपलब्ध होते हैं:

| टूल                                  | विवरण                                                                                                                                                                                                                                                     |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `google_calendar_check_availability` | समय सीमा के भीतर एक या अधिक कैलेंडरों की खाली/व्यस्त उपलब्धता जांचें। व्यस्त समय ब्लॉक्स लौटाता है, ताकि एजेंट खाली स्लॉट्स ढूंढ सके। टकराव से बचने के लिए इवेंट्स बनाने से पहले इसका उपयोग करें।                                                         |
| `google_calendar_create_event`       | वैकल्पिक प्रतिभागियों, स्थान और Google Meet कॉन्फ़्रेंसिंग के साथ Google Calendar पर नया इवेंट बनाएं। सभी प्रतिभागियों को ईमेल नोटिफ़िकेशन भेजता है।                                                                                                      |
| `google_calendar_list_events`        | समय सीमा के भीतर कैलेंडर से आने वाले इवेंट्स की सूची दिखाएं, जो शुरू होने के समय के अनुसार क्रमबद्ध हो। इवेंट सारांश, विवरण, स्थान और प्रतिभागी विवरण में फ़्री-टेक्स्ट खोज का समर्थन करता है।                                                            |
| `google_calendar_update_event`       | **विशेषाधिकार प्राप्त।** कैलेंडर पर किसी भी इवेंट को अपडेट करें, जैसे उसे दोबारा शेड्यूल करना या उसका शीर्षक, स्थान या प्रतिभागी बदलना। सिर्फ़ दिए गए फ़ील्ड बदले जाते हैं। प्रतिभागियों को सूचित किया जाता है।                                           |
| `google_calendar_delete_event`       | **विशेषाधिकार प्राप्त।** कैलेंडर पर किसी भी इवेंट को हटाएं और सभी प्रतिभागियों के लिए उसे रद्द करें। इवेंट ID ढूंढने के लिए पहले इवेंट्स सूचीबद्ध करें। आवर्ती इवेंट्स के लिए किसी इंस्टेंस की ID या उसकी recurringEventId (पूरी श्रृंखला) का उपयोग करें। |
| `google_calendar_list_calendars`     | कनेक्ट किए गए Google खाते के लिए उपलब्ध सभी कैलेंडरों की सूची दिखाएं। कैलेंडर के नाम और ID लौटाता है। उपलब्धता जांचने या इवेंट्स बनाने से पहले किस कैलेंडर को लक्षित करना है, यह जानने के लिए उपयोग करें।                                                 |

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

* [Google Calendar API दस्तावेज़](https://developers.google.com/calendar/api/v3/reference)
* [Calendar के लिए Google OAuth 2.0 स्कोप्स](https://developers.google.com/identity/protocols/oauth2/scopes#calendar)
* [Google Calendar API क्विकस्टार्ट](https://developers.google.com/calendar/api/quickstart/python)
* [ElevenLabs टूल्स की जानकारी](/docs/hi/eleven-agents/customization/tools/server-tools)