Was Sie brauchen
- Ein Make.com-Konto mit Verbindungen zu Google Forms (oder Google Sheets) und Google Calendar
- Ein Google-Formular mit Name, E-Mail, einer Datumsfrage, einer Uhrzeitfrage und idealerweise einer Frage zur Dauer
- Einen Google Kalender, den Sie bearbeiten dürfen, am besten einen separaten nur für Buchungen
- Eine bereits abgesendete Testantwort
Schritt für Schritt aufbauen
1. Trigger hinzufügen
Fügen Sie Google Forms – Watch Responses hinzu und wählen Sie Ihr Formular aus. (Das ältere Modul Watch Responses in Google Sheets wird inzwischen als Legacy geführt.) Wenn Sie lieber mit dem verknüpften Antwort-Tabellenblatt arbeiten, verwenden Sie stattdessen Google Sheets – Watch New Rows auf diesem Blatt. Wählen Sie Ihre Testantwort als Startpunkt und klicken Sie auf Run once.
2. Datum und Uhrzeit so lesen, wie sie tatsächlich ankommen
Öffnen Sie die Ausgabe-Bubble. Datumsfragen aus Google Forms kommen typischerweise als Text wie 2026-10-15 an, Uhrzeitfragen als 14:30, das Format kann aber vom Modul und von Ihrem Gebietsschema abhängen, vor allem wenn Sie aus dem verknüpften Tabellenblatt lesen. Sehen Sie sich die echten Werte an, bevor Sie eine Formel schreiben. Die meisten Datumsfehler entstehen, weil das Format geraten wird.
3. Datum und Uhrzeit kombinieren: Tools – Set variable
Fügen Sie Tools – Set variable hinzu. Nennen Sie die Variable start_text und setzen Sie als Wert Datum und Uhrzeit, getrennt durch ein Leerzeichen:
{{1.Date}} {{1.Time}}
Die Feldnamen hängen von den Fragetiteln Ihres Formulars ab, nutzen Sie also das Mapping-Panel. Wenn Sie den Wert in einer Variablen ablegen, bleiben die späteren Formeln kurz, und Sie können den kombinierten Wert separat prüfen.
4. In der richtigen Zeitzone parsen: Tools – Set variable
Fügen Sie eine zweite Variable namens start mit diesem Wert hinzu:
{{parseDate(2.start_text; "YYYY-MM-DD HH:mm"; "Europe/Berlin")}}
Ersetzen Sie die Zone durch die, in der Ihre Buchungen gelten sollen. Lassen Sie die Zone weg, verwendet Make die Zeitzone aus Ihren Make-Profileinstellungen. Geben Sie sie dagegen ausdrücklich an, bleibt das Ergebnis gleich, egal wer das Szenario bearbeitet. Liefert Ihr Tabellenblatt Datumswerte wie 15/10/2026, passen Sie den Formatstring entsprechend an, zum Beispiel DD/MM/YYYY HH:mm.
5. Endzeit berechnen
Fügen Sie eine dritte Variable namens end hinzu:
{{addMinutes(3.start; ifempty(1.Duration; 60))}}
ifempty() greift auf 60 Minuten zurück, wenn die Frage zur Dauer übersprungen wurde. Gibt Ihre Dauerfrage Text wie „30 Minuten“ zurück, schalten Sie vorher ein Lookup oder einen kleinen Switch dazwischen, denn addMinutes braucht eine Zahl.
6. Nach einem bestehenden Termin suchen: Google Calendar – Search Events
Bevor Sie etwas erstellen, suchen Sie nach einem Termin, der die ID dieser Antwort bereits enthält. Wählen Sie den Kalender aus und tragen Sie die Antwort-ID in das Feld Query ein, das den Text der Termine durchsucht (je nach Trigger heißt das Feld response ID oder timestamp). In Schritt 8 schreiben Sie die ID in den Termin. Gibt es keine ID, eignet sich auch der Zeitstempel plus E-Mail-Adresse als eindeutiger Schlüssel.
7. Zählen und filtern: Tools – Numeric aggregator
Stellen Sie die Suche als Source module ein und verwenden Sie Count. Fügen Sie dann auf der nächsten Verbindung einen Filter hinzu: Das Ergebnis ist gleich 0. Der Aggregator ist nötig, weil eine Suche ohne Treffer das Szenario sonst bei jeder neuen Antwort beenden würde. Standardmäßig gibt der Aggregator auch dann einen Count von 0 aus, wenn nichts gefunden wird; lassen Sie seine erweiterte Option Stop processing after an empty aggregation ausgeschaltet.
8. Termin erstellen: Google Calendar – Create an Event
Wählen Sie den Kalender aus und mappen Sie:
- Event name:
Call with {{1.Name}} - Start date:
{{3.start}} - End date:
{{4.end}} - Description:
Form response ID: {{1.ResponseID}}plus die übrigen Antworten, etwa E-Mail und Notizen - Attendees: die E-Mail-Adresse aus dem Formular, aber nur, wenn die Person im Termin stehen soll. Ob Google ihr eine Einladung schickt, hängt von Send notifications about the event creation ab (all guests, external guests only oder none).
Die Modulnummern der Variablen in diesen Beispielen dienen nur zur Veranschaulichung. Ermitteln Sie Ihre eigenen über das Mapping-Panel.
9. Optional: Ergebnis zurückschreiben
Wenn Ihr Trigger ein Tabellenblatt ist, fügen Sie Google Sheets – Update a Row hinzu und schreiben Sie den Link oder die ID des Termins in eine Spalte „Kalendertermin“. So sehen Sie im Tabellenblatt auf einen Blick, welche Buchungen angelegt wurden, und können diese Spalte (leer oder nicht) als alternative Duplikatprüfung nutzen.
10. Testen
Senden Sie eine Antwort für morgen um 14:30 Uhr in Ihrem eigenen Kalender ab. Prüfen Sie die Uhrzeit des Termins in der Kalenderansicht und auf Ihrem Smartphone, führen Sie dann dieselbe Antwort erneut aus und vergewissern Sie sich, dass kein zweiter Termin erscheint.
Häufige Fehler und Lösungen
Der Termin liegt eine Stunde oder mehr daneben. Das Datum wurde ohne Zeitzone geparst, daher hat Make die Zone aus Ihren Profileinstellungen verwendet. Übergeben Sie die Zone wie in Schritt 4 an parseDate() und prüfen Sie die Zeitzone des Kalenders selbst in den Einstellungen von Google Kalender. Prüfen Sie rund um die Zeitumstellung doppelt, da zwei Zonen an unterschiedlichen Tagen umstellen können.
„Invalid date“ oder ein fehlender Startwert. Der Formatstring passt nicht zum Text. 15/10/2026 und 2026-10-15 brauchen unterschiedliche Formate, und bei einem Gebietsschema, das den Monat zuerst nennt, werden Tag und Monat vertauscht. Lassen Sie sich den Wert aus dem Modul Set variable ausgeben und vergleichen Sie ihn Zeichen für Zeichen mit Ihrem Format.
Die Endzeit ist gleich der Startzeit, oder das Modul meldet ein Problem mit dem Ende. Die Dauer war leer, Text oder null. Verwenden Sie ifempty() und stellen Sie sicher, dass der Wert eine Zahl ist. Eine Formularfrage mit Antworten wie „30 Min.“ muss zuerst auf 30 gemappt werden.
Zwei Termine für eine Antwort. Der Trigger hat zweimal ausgelöst, oder Sie haben das Szenario manuell erneut ausgeführt. Suche und Filter aus Schritt 6 und 7 fangen beides ab. Lassen Sie sie weg, erzeugt jeder erneute Lauf eine Kopie.
„Not found“ oder „insufficient permissions“ beim Kalender. Das verbundene Google-Konto darf diesen Kalender nicht bearbeiten. Geben Sie den Kalender mit der passenden Berechtigungsstufe für das Konto frei oder wählen Sie den eigenen Kalender des Kontos aus.
Teilnehmende erhalten keine Einladungen. Send notifications about the event creation steht auf none, oder die E-Mail-Adresse enthält einen Tippfehler bzw. ein Leerzeichen am Ende. Setzen Sie die Adresse in trim() und stellen Sie die Benachrichtigungen auf all guests.