Page 1 sur 1

Renseigner un évènement Calendar via Google Forms

Publié : 06 sept. 2023 10:10
par LCBZH35
Bonjour à tous,
Je cherche à créer un Google Forms qui me permettrait d'enregistrer un évènement dans Google Calendar. Cela me permettrait de suivre mes invitations déjeuner et mes repas pris individuellement, de connaitre qui m'a invité ou qui j'ai invité,... suite à la mise en place dans mon entreprise de tickets restaurant
Malheureusement, je n'ai rien trouvé sur le net pour m'aider et je ne suis pas assez calé dans AppScript pour le faire. De plus, ChatGPT et Bard m'indiquent des scripts de base mais qui ne fonctionnent pas...😖

Mon formulaire créé se compose ainsi :
  • Date ?
  • Heure ? Réponse unique possible : déjeuner ou diner
  • Ville (c'est pour information uniquement)
  • Qui invite ? Réponse unique possible : moi ou un autre
  • Qui est invité ? Réponse multiple possible : moi, thierry, patrick, autre
En détail, je voudrais retrouver dans mon agenda via une recherche sur "Invitations Retaurant" les informations de date, heure, qui a invité et qui était invité. Par déduction de ces invitations dans le mois, je connaitrais alors le nombre de jours auxquels je peux demander un ticket restaurant 😉

Si quelqu'un peut m'aider, je l'en remercie vivement d'avance. 🙏
 

Re: Renseigner un évènement Calendar via Google Forms

Publié : 12 févr. 2024 14:03
par Thierry
Hello
S'agit d'un besoin pro ou perso ?

 

Re: Renseigner un évènement Calendar via Google Forms

Publié : 12 févr. 2024 15:42
par LCBZH35
Bonjour Thierry,
Il s'agissait d'un projet perso. J'ai développé par tâtonnement le code car je ne suis pas formé à la programmation de ce langage (un jour peut-être si j'en ai le temps... à moins que ça ne fasse partie un jour des webinaires ????) Je mets le script là (à copier dans le l'éditeur de script du formulaire considéré), ça peut servir à quelqu'un un jour :

/**
 * Crée un événement dans Google Agenda à partir des réponses d'un formulaire
 * Création : Laurent COUPE 2023 Sept 21
 * Version v2 du 26 Sept 2023 : Ajout de l'option Formation
 */
function createEvent() {
  // Récupère le formulaire actif
  let form = FormApp.getActiveForm();
 
  // Récupère les réponses du formulaire
  let reponses = form.getResponses();
 
  // Récupère la dernière réponse du formulaire
  let dernierereponse = reponses[reponses.length - 1];
 
  // Récupère les réponses individuelles de la dernière réponse
  let detailreponse = dernierereponse.getItemResponses();
  // Crée la variable de titre pour l'agenda
  let evenementtitre = "Invitation Restaurant";
 
  // Récupère la date de début du déjeuner à partir du 1er champ de la réponse
  let evenementdatedebut = detailreponse[0].getResponse();
  // Calcule la date de fin du déjeuner à partir du 1er champ de la réponse
  let evenementdatefin = evenementdatedebut ;
  // Récupère l'heure de début du déjeuner à partir du 2ème champ de la réponse
  let evenementheure = detailreponse[1].getResponse();
  // Récupère l'endroit du déjeuner à partir du 3ème champ de la réponse
 let evenementlieu = detailreponse[2].getResponse();
 // Récupère la personne qui invite au restaurant à partir du 4ème champ de la réponse
 let evenementinviteur = detailreponse[3].getResponse();
 // Récupère la personne qui est invitée au restaurant à partir du 5ème champ de la réponse
 let evenementinvitee = detailreponse[4].getResponse();
 // Récupère l'information du restaurant dans le cadre d'une formation
 let evenementformation = detailreponse[5].getResponse();
 var heure = evenementheure ;
 let evenementheuredebut = 0 ;
 let evenementheurefin = 0;
 // Si déjeuner alors début 12h00 sinon diner alors début 20h00
  if ( heure == "Déjeuner" ) {
   evenementheuredebut = "12:00:00" ;
   evenementheurefin = "14:00:00" ;  } else {
   evenementheuredebut = "20:00:00" ;
   evenementheurefin = "22:00:00" ;  }
 let evenementformationrealisee = "" ;
 // Si cadre de formation alors Formation : Formation sinon rien
 if ( evenementformation == "Oui" ) {
  evenementformationrealisee = "Formation" ;
 }
 // Crée la variable agenda  
 let agenda = CalendarApp.getDefaultCalendar();
 
 // Crée un nouvel événement dans le calendrier avec les informations fournies
 let debut = new Date(evenementdatedebut + 'T' + evenementheuredebut) ;
 let fin = new Date(evenementdatefin + 'T' + evenementheurefin) ;
 let note = evenementformationrealisee + ' Qui a invité : ' + evenementinviteur + ' Invités :' + evenementinvitee ;
 
 let evenement = agenda.createEvent(
   evenementtitre + ' ' + evenementformationrealisee,
   debut,
   fin,
   { description : note ,
     location : evenementlieu }
   );
 
 // Affiche un message dans la console indiquant que l'événement a été créé
 console.log('Événement créé : ' + evenement.getTitle());
}