> ## Documentation Index
> Fetch the complete documentation index at: https://aipro.placetel.de/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Outlook Kalender

> Outlook-Kalender verbinden -- freie Termine finden und Termine direkt buchen.

## Überblick

Mit der **Microsoft Outlook Kalender-Integration** kann Ihr Voice Agent freie Termine in einem verbundenen Outlook-Kalender finden und neue Termine direkt buchen. Sie verbinden Outlook **einmal** über den OAuth-Flow von Microsoft und erstellen daraus anschließend die gewünschten Kalender-Tools.

<Info>
  **Sicherheit:** Sie werden zu Microsoft weitergeleitet, um den Zugriff zu bestätigen. Die Zugangsdaten werden verschlüsselt auf dem Server gespeichert und sind nur für Ihren Account zugänglich.
</Info>

## Integration einrichten

1. Öffnen Sie die **Tools**-Seite in der Sidebar

2. Klicken Sie auf **Create tool** (Tool erstellen) und wählen Sie **Microsoft Outlook Calendar**

3. Bestätigen Sie im Dialog mit **Connect Microsoft** -- Sie werden zu Microsoft weitergeleitet

   <img src="https://mintcdn.com/pscgmbh/i6Ethoeky62mAtnR/images/microsoft-integration/connect-modal.jpeg?fit=max&auto=format&n=i6Ethoeky62mAtnR&q=85&s=01c8c9deaaeb2c7315245a0e8d3a0119" alt="Microsoft Outlook Kalender verbinden" width="2478" height="2210" data-path="images/microsoft-integration/connect-modal.jpeg" />

4. Folgen Sie dem OAuth-Flow von Microsoft und bestätigen Sie die angeforderten Berechtigungen mit **Accept**

   <img src="https://mintcdn.com/pscgmbh/HIBIlKxDFiD3efK1/images/microsoft-integration/microsoft-consent.png?fit=max&auto=format&n=HIBIlKxDFiD3efK1&q=85&s=7936e51bfe27155145eba3cf66800f31" alt="Microsoft Berechtigungen bestätigen" width="882" height="1100" data-path="images/microsoft-integration/microsoft-consent.png" />

5. Wählen Sie die Kalender-Tools, die für den verbundenen Account erstellt werden sollen (**Find available slots** und/oder **Book appointment**) und legen Sie **Calendar ID**, **Timezone** und **Duration** (Standard-Termindauer in Minuten) fest. Klicken Sie auf **Create**

   <img src="https://mintcdn.com/pscgmbh/HIBIlKxDFiD3efK1/images/microsoft-integration/choose-tools.jpeg?fit=max&auto=format&n=HIBIlKxDFiD3efK1&q=85&s=461c4e650c6d9f220fb940411d5e8071" alt="Outlook Kalender-Tools auswählen" width="2478" height="2210" data-path="images/microsoft-integration/choose-tools.jpeg" />

6. Öffnen Sie den gewünschten Voice Agent und wechseln Sie in den **Tools**-Tab. Aktivieren Sie dort die Outlook-Tools für diesen Agent

   <img src="https://mintcdn.com/pscgmbh/i6Ethoeky62mAtnR/images/microsoft-integration/assistant-tools.jpeg?fit=max&auto=format&n=i6Ethoeky62mAtnR&q=85&s=dcc6171a5d8f566fcfc01b617b2fc32e" alt="Outlook-Tools im Voice Agent aktivieren" width="2478" height="2384" data-path="images/microsoft-integration/assistant-tools.jpeg" />

<Info>
  **Gemeinsame Tools:** Wie alle Tools stehen auch die Outlook-Tools nach dem Erstellen global zur Verfügung. Sie müssen sie pro Voice Agent nur noch im **Tools**-Tab aktivieren. Mehr dazu unter [Tools](/docs/de/tools).
</Info>

## Verfügbare Tools

Beim Verbinden werden bis zu zwei Tools angelegt:

### `microsoft_outlook_calendar_get_availability`

Findet freie Zeitfenster im verbundenen Outlook-Kalender (**Read calendar**). Typischer Einsatz: Der Anrufer fragt nach freien Terminen, bevor er bucht.

| Parameter               | Typ     | Pflicht | Beschreibung                                                                                     |
| ----------------------- | ------- | ------- | ------------------------------------------------------------------------------------------------ |
| `time_min`              | string  | Ja      | Beginn des Suchzeitraums als ISO 8601 Datum-Zeit                                                 |
| `time_max`              | string  | Ja      | Ende des Suchzeitraums als ISO 8601 Datum-Zeit                                                   |
| `calendar_id`           | string  | Nein    | Optionale Outlook-Kalender-ID. Standard ist der konfigurierte Kalender bzw. der primäre Kalender |
| `slot_duration_minutes` | integer | Nein    | Optionale Dauer eines Zeitfensters in Minuten                                                    |

### `microsoft_outlook_calendar_book_appointment`

Erstellt einen Termin im verbundenen Outlook-Kalender (**Create events**). Typischer Einsatz: Der Anrufer hat ein freies Zeitfenster gewählt und der Termin wird gebucht.

| Parameter        | Typ    | Pflicht | Beschreibung                                                                                     |
| ---------------- | ------ | ------- | ------------------------------------------------------------------------------------------------ |
| `summary`        | string | Ja      | Titel des Kalendertermins                                                                        |
| `start_time`     | string | Ja      | Beginn des Termins als ISO 8601 Datum-Zeit                                                       |
| `end_time`       | string | Ja      | Ende des Termins als ISO 8601 Datum-Zeit                                                         |
| `calendar_id`    | string | Nein    | Optionale Outlook-Kalender-ID. Standard ist der konfigurierte Kalender bzw. der primäre Kalender |
| `description`    | string | Nein    | Optionale Beschreibung des Termins                                                               |
| `location`       | string | Nein    | Optionaler Ort des Termins                                                                       |
| `attendee_email` | string | Nein    | Optionale E-Mail-Adresse eines Teilnehmers                                                       |

<Tip>
  **Typischer Ablauf:** Kombinieren Sie beide Tools -- der Voice Agent ruft zuerst `microsoft_outlook_calendar_get_availability` auf, um freie Slots zu nennen, und bucht den vom Anrufer gewählten Termin anschließend mit `microsoft_outlook_calendar_book_appointment`.
</Tip>

## Termine buchen -- Hinweise für den Prompt

Damit der Voice Agent das Buchungs-Tool zuverlässig aufruft, sollte Ihr Prompt beschreiben, **welche Angaben er sammeln muss** und **wie er mit fehlenden oder vagen Angaben umgeht**. Die Pflichtangaben sind **Titel**, **Beginn** und **Ende** -- Beginn und Ende müssen vor dem Buchen zu einem konkreten Datum mit Uhrzeit aufgelöst sein.

### Beispiel: minimale Buchung

> „Buche morgen um 14:00 einen Beratungstermin für 30 Minuten."

```json theme={null}
{
  "summary": "Beratungstermin",
  "start_time": "2026-06-09T14:00:00+02:00",
  "end_time": "2026-06-09T14:30:00+02:00"
}
```

### Beispiel: Buchung mit Teilnehmer und Ort

> „Buche morgen um 14:00 ein Telefongespräch mit Max. Seine E-Mail ist [max@example.com](mailto:max@example.com)."

```json theme={null}
{
  "summary": "Telefongespräch mit Max Mustermann",
  "start_time": "2026-06-09T14:00:00+02:00",
  "end_time": "2026-06-09T14:30:00+02:00",
  "location": "Telefongespräch",
  "attendee_email": "max@example.com"
}
```

### Was der Agent klären sollte

Fehlt eine Angabe, sollte der Agent gezielt nachfragen, bevor er das Tool aufruft:

| Fehlt   | Beispiel-Rückfrage                                                           |
| ------- | ---------------------------------------------------------------------------- |
| Datum   | „An welchem Tag soll ich den Termin buchen?"                                 |
| Uhrzeit | „Um wie viel Uhr passt es Ihnen am besten?"                                  |
| Dauer   | „Wie lange soll der Termin dauern?"                                          |
| E-Mail  | „Soll ich eine Kalendereinladung senden? Wenn ja, an welche E-Mail-Adresse?" |
| Ort     | „Soll das ein Telefongespräch, ein Online-Meeting oder vor Ort sein?"        |

### Regeln für den Prompt

* Sammeln Sie alle fehlenden **Pflichtangaben**, bevor das Tool aufgerufen wird.
* Bei vagen Zeitangaben wie „morgen Nachmittag" nach einer konkreten Uhrzeit fragen -- oder zuerst mit `microsoft_outlook_calendar_get_availability` freie Slots anbieten.
* Nennt der Anrufer nur einen Beginn, aber keine Dauer, verwenden Sie die **Standard-Termindauer** aus der Tool-Konfiguration. Ist keine konfiguriert, nach der Dauer fragen.
* Relative Daten wie „morgen" oder „nächsten Montag" in der **Zeitzone des Anrufers** auflösen.
* Technische Felder wie `calendar_id` **nicht** gegenüber dem Anrufer erwähnen -- es sei denn, das Geschäft nutzt mehrere Kalender und der Anrufer muss einen auswählen.

### Gute Anrufer-Formulierungen

* „Buchen Sie mir morgen um 2 einen Termin."
* „Vereinbaren Sie nächsten Montag vormittags eine Beratung."
* „Können Sie mir für Freitag um 10 einen Termin eintragen?"
* „Buchen Sie ein Telefongespräch und schicken Sie mir eine Einladung."

<Info>
  **Geschäftliche Standardwerte:** **Zeitzone** und **Standard-Termindauer** legen Sie einmalig beim Erstellen des Tools fest (Schritt 5 unter [Integration einrichten](#integration-einrichten)). Der Agent muss diese also nicht bei jedem Anruf erfragen -- er nutzt sie automatisch, wenn der Anrufer keine eigene Angabe macht.
</Info>
