Online-Terminbuchung mit Odoo einrichten
Kurz gesagt
In Odoo 20.0 legen Sie in der App Termine je Team oder Standort eine Terminart an, setzen Verfügbarkeiten und veröffentlichen sie auf der Website. Book bestimmt, ob Nutzer oder Ressourcen buchbar sind, Assignment, ob Odoo zuweist oder der Kunde wählt. Termine ist Enterprise-Bestandteil (Odoo Community enthält die App nicht) und läuft in Odoo Online, Odoo.sh und On-Premise mit Enterprise-Abonnement.
Das Wichtigste
- Die App heißt im deutschen Odoo Termine (Appointments) und ist Enterprise-Bestandteil (Editionsvergleich, Stand Oktober 2026).
- Im Feld Book legen Sie je Terminart fest, ob Nutzer oder Ressourcen buchbar sind.
- Assignment steuert, ob Odoo automatisch zuweist oder der Kunde eine Person oder Ressource wählt.
- Verfügbarkeiten stehen als wiederkehrende Zeitfenster im Reiter Verfügbarkeiten; mindestens eines ist laut Dokumentation nötig.
- Veröffentlicht wird die Terminart über die Schaltfläche Go to Website und den Schalter Published.
Ein öffentlicher Buchungskalender, der an die Kalender der Mitarbeitenden hängt: Genau das ist die App Termine (Appointments) in Odoo. Ob ein Kunde zuerst eine Person oder zuerst eine freie Zeit sieht, entscheidet eine Einstellung je Terminart. Diese Anleitung baut den Ablauf für Odoo 20.0 auf, vom Anlegen der Terminart über die Verfügbarkeiten bis zum Buchungslink für ein Team oder einen Standort.
Die Bezeichnungen folgen den englischen Namen der Dokumentation 20.0, ergänzt um die deutschen Begriffe der offiziellen Funktionsseite (Termine, Terminart, Verfügbarkeit, Zeitfenster, Ressource, Website, Fragen). Für diese Enterprise-App ist keine öffentliche deutsche Übersetzungsdatei verfügbar; die Beschriftungen in Ihrer Datenbank können abweichen.
Was Sie vorab brauchen
- Odoo 20.0 (veröffentlicht im September 2026) mit der App Termine in einer Enterprise-Datenbank. Der Editionsvergleich führt Appointments nur im Enterprise-Umfang (Stand Oktober 2026); Odoo Community enthält die App nicht, und laut Preisseite läuft das Enterprise-Abonnement über Odoo Online, Odoo.sh und On-Premise.
- Die App Website, denn veröffentlicht wird die Terminart als Teil einer Website. Wie Sie die Seite aufsetzen, steht in Website in Odoo aufbauen.
- Für nutzerbasierte Terminarten ein oder mehrere Odoo-Benutzer; ihre Kalenderverfügbarkeit bestimmt die offenen Zeiten.
- Für sachbasierte Terminarten Ressourcen wie Räume oder Plätze. Sie pflegen Sie unter Termine ‣ Konfiguration ‣ Ressourcen.
- Optional die App CRM, wenn aus Buchungen Verkaufschancen entstehen sollen; die Option Create Opportunity erscheint nur mit CRM.
- Eine Testdatenbank, bevor Sie den Buchungslink an Kunden geben.
Schritt für Schritt: Terminart anlegen und veröffentlichen
Schritt 1: Terminart anlegen
Öffnen Sie die App Termine. Das Dashboard zeigt laut Dokumentation alle Terminarten in einer Kanban-Ansicht, je Karte Titel, Dauer, zugeordnete Nutzer oder Ressourcen und Zähler; bei nutzerbasierten Terminarten heißen die Zähler Meetings, bei ressourcenbasierten Bookings. Legen Sie über Neu eine Terminart an und vergeben Sie einen Titel sowie eine Dauer (Duration), etwa 1h. Im Feld Location steht für nutzerbasierte Termine die Vorgabe Online Meeting; für einen Vor-Ort-Termin wählen Sie einen anderen Eintrag. Das Feld Video Link legt den Anbieter für Online-Meetings fest; bei None treten Besucher ohne festen Link über die App Discuss bei. Eine veröffentlichte Terminart trägt das Band Published, eine unveröffentlichte nicht und ist für Kunden auf der Website nicht sichtbar. Gebuchte Termine landen im Kalender der zugeordneten Person; die App Kalender lässt sich laut Dokumentation mit Outlook und Google abgleichen (Kalender ‣ Konfiguration ‣ Einstellungen).
Schritt 2: Nutzer oder Ressourcen buchbar machen
Im Feld Book entscheiden Sie, ob die Terminart auf Nutzer (Users) oder auf Ressourcen (Resources) beruht. Bei Users wählen Sie ein oder mehrere Teammitglieder; deren Kalenderverfügbarkeit bestimmt die freien Zeiten. Bei Resources wählen Sie Räume oder Geräte. Für Ressourcen gilt:
- Name und Kapazität (Capacity) legen fest, wie viele Personen der Raum fasst.
- Das Feld Opening Hours gibt der Ressource einen eigenen Arbeitskalender und erscheint nur im Entwicklermodus.
- Das Feld Linked Resource verbindet Ressourcen für größere Gruppen; laut Dokumentation wirkt die Verknüpfung nur, wenn Assignment auf Automatically steht.
- Der Reiter Description beschreibt den Raum oder das Gerät; der Text ist für Kunden bei der Buchung sichtbar.
Die Website zeigt bei ressourcenbasierten Terminarten höchstens eine Kapazität von 20 an, auch wenn die Ressource mehr fasst. Höhere Werte verlangen den Systemparameter appointment.resource_max_capacity_allowed, den Sie im Entwicklermodus unter Einstellungen ‣ Technisch ‣ Parameter ‣ Systemparameter anlegen.
Schritt 3: Zuweisung und Buchungsablauf je Team oder Standort festlegen
Das Feld Assignment bestimmt, wie eine Buchung einer Person oder Ressource zugeordnet wird: Automatically weist nach Verfügbarkeit zu, By visitor lässt den Kunden wählen. Bei By visitor und mehr als einem Eintrag im Feld Users steuert Starts with die Reihenfolge: Date fragt zuerst Datum und Uhrzeit ab, User/Resource zuerst die Person. Diese Tabelle ordnet typische Fälle zu.
| Fall | Book | Assignment | Starts with | Was der Kunde sieht |
|---|---|---|---|---|
| Ein Team, Odoo weist zu | Users | Automatically | – | nur freie Zeiten; Odoo wählt die verfügbare Person |
| Ein Team, Kunde wählt die Person | Users | By visitor | User / Resource | erst die Personenauswahl, dann die freien Zeiten |
| Ein Team, Kunde wählt erst die Zeit | Users | By visitor | Date | erst Datum und Uhrzeit, dann die verfügbare Person |
| Ein Raum oder Platz | Resources | Automatically oder By visitor | – | die buchbare Ressource mit ihrer Öffnungszeit |
| Mehrere Standorte, getrennte Seiten | Users oder Resources | wie oben | wie oben | je Standort eine Terminart, im Feld Website der jeweiligen Website zugeordnet |
Für mehrere Teams oder Standorte legen Sie je Einheit eine eigene Terminart an. Der Standort unterscheidet sich dann in den zugeordneten Nutzern oder Ressourcen, in den Verfügbarkeiten und, in einer Umgebung mit mehreren Websites, im Feld Website. Das Feld Website steht im Reiter Options und ordnet die Terminart einer Website zu; wie mehrere Websites in einer Datenbank laufen, beschreibt Mehrere Websites in einer Odoo-Datenbank. Mit der Option Manage Capacities begrenzen Sie zusätzlich, wie viele gleichzeitige Termine eine Person im selben Slot haben darf.
Schritt 4: Verfügbarkeiten setzen
Der Reiter Verfügbarkeiten bestimmt, wann die Terminart buchbar ist. Jede Zeile ist ein wiederkehrendes Zeitfenster: Wochentag im Feld Every, dazu From und To. Über die Spalte Restrict to Users begrenzen Sie ein Fenster auf einzelne Personen; bleibt sie leer, gilt es für alle zugeordneten Nutzer. Mehrere Zeilen pro Tag sind möglich, etwa eine vor und eine nach der Mittagspause. Ist im Reiter Options die Option Employee Schedule gesetzt, gilt nur die Schnittmenge aus diesen Fenstern und dem Arbeitsplan der Person aus der App Employees: Erlaubt der Reiter 9 bis 17 Uhr und der Arbeitsplan 10 bis 16 Uhr, zeigt Odoo dem Kunden nur 10 bis 16 Uhr. Laut Dokumentation setzt das Veröffentlichen voraus, dass mindestens ein Zeitfenster vorhanden ist.
Schritt 5: Buchungsfenster und Optionen festlegen
Im Reiter Options steuern Sie, wer wann buchen darf. Allow Bookings setzt, wie viele Tage im Voraus gebucht werden kann und wie viel Vorlauf nötig ist, etwa innerhalb der nächsten 15 Tage und mindestens 1h vor Beginn. Create slot every bestimmt den Abstand zwischen den angebotenen Zeiten. Cancellation legt fest, bis wann der Kunde selbst stornieren darf; innerhalb dieser Sperre zeigt Odoo eine Fehlermeldung mit Kontaktdaten. Timezone steuert die Anzeige der Zeiten, Allowed Countries begrenzt die Buchung auf bestimmte Länder. Auto Confirm bestätigt Buchungen automatisch bis zu einem Prozentsatz der Kapazität; während der Wartezeit gilt der Slot weiter als reserviert. Up-front Payment verlangt die Zahlung bei der Buchung, Allow invitations lässt Nutzer Einladungen versenden, Display pictures zeigt Fotos der zugewiesenen Personen oder Ressourcen. Das Feld Schedule bietet die Modi Weekly und Flexible.
Schritt 6: Fragen und Kommunikation einrichten
Der Reiter Fragen (Questions) sammelt Angaben des Kunden: Über Add a line erzeugen Sie eine Frage mit Fragetext und Antworttyp (etwa Text, Phone Number oder Email), hinterlegen vorgegebene Antworten und markieren die Frage mit Mandatory als Pflichtfeld. Der Reiter Communication steuert Texte und Mails. Introduction Page erscheint vor der Zeitauswahl, Confirmation Page nach der Buchung; beide sind für Kunden sichtbar. Reminders legt fest, ob und wie weit vorher erinnert wird, wahlweise per E-Mail oder SMS. Booking Email und Cancellation Email wählen die Vorlage für Bestätigung und Stornierung. Wer bei jeder Buchung informiert werden soll, kann die Terminart über Follow im Chatter abonnieren, ohne Teilnehmer zu sein. Die Option Create Opportunity erzeugt je Termin eine Verkaufschance und setzt die installierte App CRM voraus. Die Kontaktdaten aus der Buchung übernimmt Odoo in den Datensatz der Verkaufschance, die Antworten auf die optionalen Fragen stehen im Reiter Interne Notizen (Internal Notes), der gebuchte Termin im Chatter. Den Weg in die Pipeline beschreibt Leads in Odoo erfassen und qualifizieren.
Schritt 7: Veröffentlichen und Link teilen
Öffnen Sie am Datensatz die Schaltfläche Go to Website und setzen Sie den Schalter auf Published. Danach ist die Terminart live. Über Share auf der Kanban-Karte oder in der Kopfzeile kopieren Sie den Buchungslink; alternativ finden Kunden die Terminart auf der Website. Ist das Modul Appointment Google Reserve installiert, erscheint zusätzlich der Reiter Google Bookings; er verbindet die Terminart mit Google Reserve, und laut Dokumentation kann die erste Synchronisierung bis zu 24 Stunden dauern.
So prüfen Sie das Ergebnis
- Öffnen Sie den kopierten Buchungslink in einem privaten Fenster ohne Anmeldung und prüfen Sie, ob die Buchungsseite erscheint.
- Prüfen Sie, ob nur die gewünschten Personen oder Ressourcen zur Auswahl stehen und die Reihenfolge zum Feld Starts with passt.
- Buchen Sie einen Testtermin und prüfen Sie, ob er im Kalender der Person und in der App Termine als Buchung auftaucht; bei eingeschaltetem Employee Schedule muss der Termin im Arbeitsplan liegen.
- Prüfen Sie, ob die Bestätigungsmail der hinterlegten Vorlage entspricht. Ist Create Opportunity aktiv (dafür muss die App CRM installiert sein), prüfen Sie an der neuen Verkaufschance, ob die Kontaktdaten im Datensatz und die Antworten aus den Fragen im Reiter Interne Notizen stehen.
- Prüfen Sie eine Stornierung innerhalb und außerhalb des im Feld Cancellation gesetzten Fensters.
Wenn etwas nicht klappt
| Symptom | Mögliche Ursache | Prüfung |
|---|---|---|
| Keine Zeiten zur Auswahl | im Reiter Verfügbarkeiten fehlt ein Zeitfenster, oder die Person ist belegt | Zeitfenster anlegen; Kalender und Employee Schedule prüfen |
| Terminart erscheint nicht auf der Website | nicht veröffentlicht oder der falschen Website zugeordnet | Go to Website und den Schalter Published prüfen, dazu das Feld Website |
| Kapazität lässt sich nicht über 20 einstellen | Anzeigegrenze der Website | Systemparameter appointment.resource_max_capacity_allowed im Entwicklermodus setzen |
| Kunde kann keine Person wählen | Assignment steht auf Automatically | Assignment auf By visitor stellen und Starts with festlegen |
| Verknüpfte Ressourcen greifen nicht | Linked Resource wirkt nur bei Assignment Automatically | Assignment der Ressourcen-Terminart auf Automatically stellen |
| Buchung bleibt unbestätigt | Auto Confirm ist aus oder begrenzt | Auto Confirm am Terminart-Datensatz prüfen |
Wann Sie Hilfe holen sollten
Richten Sie die erste Terminart in einer Testdatenbank ein, bevor Sie den Link an Kunden geben, und spielen Sie mehrere Teams, Standorte oder Websites sowie verknüpfte Ressourcen einmal durch. Ob die App Termine zu Ihrer Edition passt, prüfen Sie über den Editionsvergleich. Der Umgang mit den erfassten Kontaktdaten ist nicht Gegenstand dieses Artikels; die datenschutzrechtliche Seite behandelt CRM-Daten in Odoo und die DSGVO.