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());
}