> 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

## Översikt

Anslut dina AI-agenter från ElevenLabs till [Cal.com](https://cal.com) för att hantera schemaläggning och kalenderbokningar. Med integreringen kan dina agenter kontrollera tillgänglighet, boka tider, avboka eller boka om möten och slå upp befintliga bokningar genom naturliga samtal.

## Funktioner

| Funktion              | Stöd                                           |
| --------------------- | ---------------------------------------------- |
| Nollagringsläge (ZRM) | Stöds inte                                     |
| Bilagor i verktyg     | Stöds inte — verktygen arbetar endast med text |

## Konfiguration

Den här integreringen använder en **Cal.com API-nyckel** för autentisering (inte en OAuth-app).

#### Generera en API-nyckel i Cal.com

Gå till **Settings > Developer > API Keys** i ditt Cal.com-konto och klicka på **New**. Kopiera den genererade nyckeln direkt — den visas inte igen.

#### Använd en live-nyckel

Cal.com genererar två typer av nycklar — testnycklar (som börjar med `cal_`) och live-nycklar (som börjar med `cal_live_`). Använd en **live-nyckel** så att din agent kan komma åt riktig kalenderdata.

#### Anslut i ElevenLabs

Klistra in din Cal.com API-nyckel i fältet **API Key** i integrationskonfigurationen i ElevenLabs.

## Demo

> **Note**
>
> Den här demon använder äldre webhook-verktyg. Om du använder den inbyggda Cal.com-integreringen konfigureras verktygen
> automatiskt — ingen manuell webhook-konfiguration behövs.

## Så fungerar det

Agenten schemalägger möten genom att använda verktygsanrop steg för steg i bokningsprocessen. Flikarna nedan visar en övergripande sammanfattning och den detaljerade systemprompten.

#### Översikt

#### Inledande förfrågan och mötesuppgifter

Agenten frågar efter mötets syfte, önskat datum och tid samt längd för att samla in schemaläggningsinformation.

#### Kontrollera kalendertillgänglighet

Agenten kontrollerar kalendertillgänglighet genom att:

* Använda verktyget `get_available_slots` för att hämta lediga tider.
* Kontrollera om den begärda tiden är tillgänglig.
* Föreslå alternativ om den begärda tiden inte är tillgänglig.
* Bekräfta den valda tiden med uppringaren.

#### Samla in kontaktuppgifter

När ni har kommit överens om en tid gör agenten följande:

* Samlar in och validerar deltagarens fullständiga namn.
* Kontrollerar att e-postadressen stämmer.
* Bekräftar information om tidszon.
* Samlar in ytterligare obligatoriska fält för Cal.com-händelsetypen.

#### Skapa möte

Agenten:

* Anropar verktyget `book_meeting` efter att ha kontrollerat all information.
* Följer bokningsmallens struktur.
* Bekräftar att mötet har skapats med deltagaren.
* Informerar personen om att hen får en kalenderinbjudan.

#### Detaljerad systemprompt

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

## Manuell webhook-konfiguration

> **Note**
>
> Om du använder den inbyggda Cal.com-integreringen konfigureras verktygen automatiskt. Stegen nedan
> gäller endast manuell webhook-konfiguration.

#### Spara din Cal.com-hemlighet

Spara din API-nyckel säkert innan du gör autentiserade förfrågningar. Generera en ny [Cal.com API-nyckel](https://cal.com/docs/api-reference/v1/introduction#get-your-api-keys) om du inte redan har gjort det.

Cal.com API förväntar sig följande autentiseringsheader:

**`Cal-förfrågans headerstruktur`**

```plaintext Cal-förfrågans headerstruktur
'Authorization': 'Bearer YOUR_API_KEY'
```

Spara nyckeln i agentens hemlighetslagring så att den är säker och tillgänglig när förfrågningar görs.

> **Warning**
>
> För att matcha Cal.coms förväntade autentiseringsstruktur, kom ihåg att lägga till `Bearer ` före API-nyckeln när du skapar hemligheten.

![Verktygshemligheter](/docs/_fern-img/5ffae070945a86b74975cd9b56679c2bb76f0ce70d05fe7b10e8e5dff6ddd630.webp)

#### Lägg till verktyg till agenten

Aktivera kalenderbokningar genom att skapa två verktyg:

1. **`get_available_slots`**: När en användare frågar *"Är Louis ledig klockan 10:30 på tisdag?"* använder agenten [Cal.coms slutpunkt "Get available slots"](https://cal.com/docs/api-reference/v2/slots/find-out-when-is-an-event-type-ready-to-be-booked) för att kontrollera lediga tider.

2. **`book_meeting`**: Efter att ha hittat en lämplig tid bokar agenten mötet med [Cal.coms slutpunkt "Create a booking"](https://cal.com/docs/api-reference/v2/bookings/create-a-booking#create-a-booking).

Gå till avsnittet **Tools** på instrumentpanelen och välj **Add Tool**. Välj **Webhook** som verktygstyp och fyll sedan i följande avsnitt:

#### Verktyg 1: get\_available\_slots

#### Konfiguration

Metadata som agenten använder för att avgöra när verktyget ska anropas:

| Fält        | Värde                                                                     |
| ----------- | ------------------------------------------------------------------------- |
| Namn        | get\_available\_slots                                                     |
| Beskrivning | Det här verktyget kontrollerar om en viss tid är tillgänglig i kalendern. |
| Metod       | GET                                                                       |
| URL         | [https://api.cal.com/v2/slots](https://api.cal.com/v2/slots)              |

#### Headers

Matchar förfrågningsheaders som definieras [här](https://cal.com/docs/api-reference/v2/slots/get-available-slots#get-available-slots):

| Typ    | Namn            | Värde                                    |
| ------ | --------------- | ---------------------------------------- |
| Secret | Authorization   | Välj hemlighetsnyckeln som skapades ovan |
| String | cal-api-version | 2024-09-04                               |

#### Frågeparametrar

Matchar förfrågans frågeparametrar som definieras [här](https://cal.com/docs/api-reference/v2/slots/get-available-slots#get-available-slots):

| Datatyp | Identifierare | Obligatorisk | Beskrivning                                                                                                                 |
| ------- | ------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------- |
| string  | start         | Ja           | Startdatum/-tid (UTC) från vilket tider ska hämtas, t.ex. '2024-08-13T09:00:00Z'.                                           |
| string  | end           | Ja           | Slutdatum/-tid (UTC) till vilket tider ska hämtas, t.ex. '2024-08-13T17:00:00Z'.                                            |
| string  | eventTypeId   | Ja           | ID:t för händelsetypen som bokas. Om 15 minuter, returnera abc. Om 30 minuter, returnera def. Om 60 minuter, returnera xyz. |

#### Verktyg 2: book\_meeting

#### Konfiguration

Metadata som agenten använder för att avgöra när verktyget ska anropas:

| Fält        | Värde                                                                 |
| ----------- | --------------------------------------------------------------------- |
| Namn        | book\_meeting                                                         |
| Beskrivning | Det här verktyget bokar ett möte i kalendern när en tid har avtalats. |
| Metod       | POST                                                                  |
| URL         | [https://api.cal.com/v2/bookings](https://api.cal.com/v2/bookings)    |

#### Headers

Matchar förfrågningsheaders som definieras [här](https://cal.com/docs/api-reference/v2/bookings/create-a-booking#create-a-booking):

| Typ    | Namn            | Värde                                    |
| ------ | --------------- | ---------------------------------------- |
| Secret | Authorization   | Välj hemlighetsnyckeln som skapades ovan |
| String | cal-api-version | 2024-08-13                               |

#### Body-parametrar

Matchar parametrarna i förfrågans body som definieras [här](https://cal.com/docs/api-reference/v2/bookings/create-a-booking#create-a-booking):

| Identifierare | Datatyp | Obligatorisk | Beskrivning                                                                                                                 |
| ------------- | ------- | ------------ | --------------------------------------------------------------------------------------------------------------------------- |
| start         | String  | Ja           | Bokningens starttid i ISO 8601-format i tidszonen UTC, t.ex. '2024-08-13T09:00:00Z'.                                        |
| eventTypeId   | Number  | Ja           | ID:t för händelsetypen som bokas. Om 15 minuter, returnera abc. Om 30 minuter, returnera def. Om 60 minuter, returnera xyz. |
| attendee      | Object  | Ja           | Deltagarens uppgifter. Du måste samla in dessa fält från användaren.                                                        |

> **Note**
>
> `eventTypeId` måste motsvara de händelsetyper som du har tillgängliga i Cal. Anropa
> [den här](https://cal.com/docs/api-reference/v1/event-types/find-all-event-types#find-all-event-types)
> slutpunkten för att hämta en lista över ditt kontos händelsetyper (eller skapa ett annat verktyg som gör detta
> automatiskt).

**Deltagarobjekt:**

| Identifierare | Datatyp | Obligatorisk | Beskrivning                                                                                            |
| ------------- | ------- | ------------ | ------------------------------------------------------------------------------------------------------ |
| name          | String  | Ja           | Fullständigt namn på personen som bokar mötet.                                                         |
| email         | String  | Ja           | E-postadress till personen som bokar mötet.                                                            |
| timeZone      | String  | Ja           | Uppringarens tidszon. Ska ha formatet 'Kontinent/Stad', som 'Europe/London' eller 'America/New\_York'. |

> **Success**
>
> Testa agenten genom att trycka på knappen **Test AI agent**. Justera systemprompten vid behov.

#### Lägg till medvetenhet om datum och tid

Som standard känner agenten inte till aktuellt datum eller tid. Använd någon av följande metoder:

1. **Skapa ett verktyg för att hämta tid**: Lägg till ett verktyg som hämtar aktuellt datum och aktuell tid.

2. **Overrides**: Använd funktionen [overrides](/docs/sv/eleven-agents/customization/personalization/overrides) för att lägga in aktuellt datum och aktuell tid i systemprompten i början av varje samtal.

## Säkerhetsaspekter

* Använd HTTPS-slutpunkter för alla webhook-anrop.
* Spara känsliga värden som hemligheter med ElevenLabs Secrets Manager.
* Kontrollera att alla auktoriseringsheaders följer det obligatoriska formatet (`Bearer YOUR_API_KEY`).
* Exponera aldrig händelsetyp-ID:n eller API-information för uppringare.

## Användbara länkar

* [Cal.com API-dokumentation](https://cal.com/docs/api-reference/v2/introduction)
* [Guide till Cal.com API-nycklar](https://cal.com/blog/where-is-my-api-key-and-what-can-it-do)
* [Översikt över ElevenLabs verktyg](/docs/sv/eleven-agents/customization/tools/server-tools)