Ce dont vous avez besoin
- Un compte Make.com avec des connexions Google Forms (ou Google Sheets) et Google Calendar
- Un formulaire Google avec un nom, un e-mail, une question de date, une question d'heure et, idéalement, une question de durée
- Un agenda Google que vous pouvez modifier, idéalement un agenda dédié aux réservations
- Une réponse de test déjà envoyée
Construction étape par étape
1. Ajoutez le déclencheur
Ajoutez Google Forms – Watch Responses et sélectionnez votre formulaire. (L'ancien module Watch Responses de Google Sheets est désormais marqué comme legacy.) Si vous préférez travailler à partir de la feuille de réponses associée, utilisez plutôt Google Sheets – Watch New Rows sur cette feuille. Choisissez votre réponse de test comme point de départ et cliquez sur Run once.
2. Regardez la date et l'heure telles qu'elles arrivent réellement
Ouvrez la bulle de sortie. Les questions de date Google Forms arrivent généralement sous forme de texte comme 2026-10-15 et les questions d'heure comme 14:30, mais le format peut dépendre du module et de vos paramètres régionaux, en particulier si vous lisez depuis la feuille associée. Regardez les vraies valeurs avant d'écrire la moindre formule. La plupart des erreurs de date viennent d'un format deviné.
3. Combinez la date et l'heure : Tools – Set variable
Ajoutez Tools – Set variable. Nommez la variable start_text et indiquez comme valeur la date et l'heure séparées par une espace :
{{1.Date}} {{1.Time}}
Les noms des champs dépendent des intitulés des questions de votre formulaire : utilisez donc le panneau de mapping. Placer cette valeur dans une variable permet de garder les formules suivantes courtes et de vérifier la valeur combinée isolément.
4. Convertissez-la dans le bon fuseau horaire : Tools – Set variable
Ajoutez une deuxième variable nommée start avec cette valeur :
{{parseDate(2.start_text; "YYYY-MM-DD HH:mm"; "Europe/Berlin")}}
Remplacez le fuseau par celui dans lequel vos réservations doivent avoir lieu. Si vous omettez le fuseau, Make utilise celui des paramètres de votre profil Make ; en l'indiquant explicitement, le résultat reste identique, quelle que soit la personne qui modifie le scénario. Si votre feuille renvoie des dates comme 15/10/2026, adaptez la chaîne de format en conséquence, par exemple DD/MM/YYYY HH:mm.
5. Calculez l'heure de fin
Ajoutez une troisième variable nommée end :
{{addMinutes(3.start; ifempty(1.Duration; 60))}}
ifempty() applique 60 minutes par défaut lorsque la question de durée a été laissée vide. Si votre question de durée renvoie du texte comme « 30 minutes », ajoutez d'abord un lookup ou un petit switch, car addMinutes a besoin d'un nombre.
6. Vérifiez si l'événement existe déjà : Google Calendar – Search Events
Avant de créer quoi que ce soit, recherchez un événement qui contient déjà l'ID de cette réponse. Sélectionnez l'agenda et saisissez l'ID de la réponse dans le champ Query, qui effectue la recherche dans le texte des événements (selon le déclencheur, le champ peut s'appeler response ID ou timestamp). L'événement contiendra cet ID à partir de l'étape 8. S'il n'y a pas d'ID, l'horodatage associé à l'adresse e-mail fait aussi office de clé unique.
7. Comptez et filtrez : Tools – Numeric aggregator
Définissez la recherche comme Source module et utilisez Count. Ajoutez ensuite un filtre sur la liaison suivante : le résultat est égal à 0. Un agrégateur est indispensable, car sans lui une recherche sans résultat mettrait fin au scénario à chaque nouvelle réponse. Par défaut, l'agrégateur renvoie tout de même un total de 0 quand rien n'est trouvé ; laissez son option avancée Stop processing after an empty aggregation désactivée.
8. Créez l'événement : Google Calendar – Create an Event
Sélectionnez l'agenda et mappez :
- Event name :
Call with {{1.Name}} - Start date :
{{3.start}} - End date :
{{4.end}} - Description :
Form response ID: {{1.ResponseID}}ainsi que les autres réponses, comme l'e-mail et les notes - Attendees : l'adresse e-mail du formulaire, uniquement si vous souhaitez ajouter la personne à l'événement. L'envoi d'une invitation par Google dépend de Send notifications about the event creation (all guests, external guests only ou none).
Les numéros de modules des variables dans ces exemples sont donnés à titre indicatif. Utilisez le panneau de mapping pour trouver les vôtres.
9. Facultatif : renvoyez le résultat dans la feuille
Si votre déclencheur est une feuille, ajoutez Google Sheets – Update a Row et écrivez le lien ou l'ID de l'événement dans une colonne « Événement agenda ». Votre feuille montre alors d'un coup d'œil quelles réservations ont été créées, et vous pouvez utiliser cette colonne, vide ou non, comme autre moyen de détecter les doublons.
10. Testez
Envoyez une réponse pour demain à 14 h 30 dans votre propre agenda. Vérifiez l'heure de l'événement dans la vue agenda et sur votre téléphone, puis relancez la même réponse et confirmez qu'aucun deuxième événement n'apparaît.
Erreurs fréquentes et solutions
L'événement est décalé d'une heure ou plus. La date a été convertie sans fuseau horaire, donc Make a utilisé celui des paramètres de votre profil. Passez le fuseau dans parseDate() comme à l'étape 4 et vérifiez le fuseau horaire propre à l'agenda dans les paramètres de Google Agenda. Vérifiez deux fois autour des changements d'heure, car deux fuseaux peuvent changer d'heure à des dates différentes.
« Invalid date » ou valeur de début manquante. La chaîne de format ne correspond pas au texte. 15/10/2026 et 2026-10-15 nécessitent des formats différents, et des paramètres régionaux qui placent le mois en premier inversent le jour et le mois. Affichez la valeur du module Set variable et comparez-la caractère par caractère avec votre format.
L'heure de fin est identique à l'heure de début, ou le module signale un problème avec la fin. La durée était vide, du texte ou égale à zéro. Utilisez ifempty() et assurez-vous que la valeur est bien un nombre. Une question avec des réponses comme « 30 min » doit d'abord être mappée sur 30.
Deux événements pour une seule réponse. Le déclencheur s'est exécuté deux fois, ou vous avez relancé le scénario manuellement. La recherche et le filtre des étapes 6 et 7 interceptent les deux cas. Sans eux, chaque relance crée systématiquement une copie.
« Not found » ou « insufficient permissions » sur l'agenda. Le compte Google connecté ne peut pas modifier cet agenda. Partagez l'agenda avec ce compte au bon niveau d'autorisation, ou sélectionnez l'agenda propre au compte.
Les invités ne reçoivent pas d'invitation. Send notifications about the event creation est réglé sur none, ou l'adresse e-mail contient une faute de frappe ou une espace à la fin. Entourez l'adresse de trim() et réglez les notifications sur all guests.