Problème pour créer un évènement à la journée sur mon calendrier
J
Ce code me permet de créer des évènement directement sur mon calendrier.
Cela fonctionne bien mise à part le fait que je n'arrive pas à créer d'évènement sur plusieurs jours. il me crée plusieurs évènements identiques. J'aimerais avoir un seul évènement de plusieurs jours.
Merci
var EVENT_IMPORTED = "AJOUTE"; // Ajoutera le texte "AJOUTE" dans la colonne Y
var ss = SpreadsheetApp.getActiveSpreadsheet();
Function importCalendar() {
var document = SpreadsheetApp.getActive();
var sheet = document.getSheetByName("Calendrier");
document.setActiveSheet(sheet);
var range = sheet.getDataRange();
var startrow = 2; // Première ligne de prise en compte des données
var startcolumn = 3; // Première colonne de prise en compte des données, soit la colonne C (titre du rendez-vous)
var numrows = range.getLastRow(); // Nombre de lignes
var numcolumns = range.getLastColumn(); // Nombre de colonnes
var data = sheet.getRange(startrow, startcolumn, numrows-1, numcolumns).getValues(); // Plage contenant des données
for (var i = 0; i < numrows-1; ++i) {
var column = data[i];
var titre = column[0]; // Colonne B - Titre de l'événement dans l'agenda - Titre du rendez-vous
var DateDebut = column[1] + "GMT+0100"; // Colonne C - date et heure de début de l'événement
var DateFin = column[2] + "GMT+0100"; // Colonne D - date et heure de fin de l'événement
var EvtJournee = column[3].toUpperCase(); // Colonne E - événement sur la journée
var Description = column[4]; // Colonne F - description de l'événement
var Lieux = column[5]; // Colonne G - lieux de l'événement
var Private = column[6].toUpperCase(); // Colonne H - statut privé / public de l'événement
var Rappel1 = column[7].toUpperCase(); // Colonne I - Rappel n°1
var Rappel1Min = column[8]; // Colonne J - Nombre de minutes avant évènement pour le rappel n°1
var Rappel1Type = column[9].toUpperCase(); // Colonne K - Type du rappel n°1 (notification ou email)
var Rappel2 = column[10].toUpperCase(); // Colonne L - Rappel n°2
var Rappel2Min = column[11]; // Colonne M - Nombre de minutes avant évènement pour le rappel n°2
var Rappel2Type = column[12].toUpperCase();// Colonne N - Type du rappel n°2 (notification ou email)
var Participants = column[13]; // Colonne O - adresse(s) mail(s) de(s) participants (séparées par des virgules)
var EnvoieInvit = column[14].toUpperCase();// Colonne P - envoie des invitations aux participants
var Ressources = column[15]; // Colonne Q - ajouté au champ description
var couleur = column[17]; // Colonne S - Couleur de l'événement
var eventImported = column[18]; // Colonne T - Statut de l'importation - colonne AJOUTE A L'AGENDA
var Description_complete = Description + "\nRessources : " + Ressources //+ "\nDisponibilité : " + Dispo // concatenation des champs destinés à la zone Description de l'agenda
var calendarID = sheet.getRange(i+startrow,1).getValue(); // Référence de la cellule contenant le nom de l'agenda
var cal = CalendarApp.getCalendarById(calendarID);
var AEcrire = (eventImported != EVENT_IMPORTED) && (titre != "") && (column[1] != "") && (column[2] != "")
if (AEcrire == true) { // Evite les doublons dans l'agenda
switch(couleur){
case "Bleu pale":
couleur = "1";
break;
case "Vert pale":
couleur = "2";
break;
case "Mauve":
couleur = "3";
break;
case "Rouge pale":
couleur = "4";
break;
case "Jaune":
couleur = "5";
break;
case "Orange":
couleur = "6";
break;
case "Cyan":
couleur = "7";
break;
case "Gris":
couleur = "8";
break;
case "Bleu":
couleur = "9";
break;
case "Vert":
couleur = "10";
break;
case "Rouge":
couleur = "11";
break;
}
if (EvtJournee == "VRAI"){ //évènement sur la journée
evt = cal.createAllDayEventSeries(titre, new Date(DateDebut), CalendarApp.newRecurrence().addDailyRule().times(1).until(new Date(DateFin)), {description: Description_complete, location: Lieux, guests: Participants}); // Création de l'événement dans l'agenda
evt.setColor(couleur);}
else {
evt = cal.createEvent(titre, new Date(DateDebut), new Date(DateFin), {description: Description_complete, location: Lieux, guests: Participants}); // Création de l'événement dans l'agenda
evt.setColor(couleur);}
//visibilité de l'évènement
switch(Private){
case "PRIVATE" :
evt.setVisibility(CalendarApp.Visibility.PRIVATE);
break;
case "PUBLIC" :
evt.setVisibility(CalendarApp.Visibility.PUBLIC);
break;
case "CONFIDENTIAL" :
evt.setVisibility(CalendarApp.Visibility.CONFIDENTIAL);
break;
default :
evt.setVisibility(CalendarApp.Visibility.DEFAULT);
}
//Rappels
if (Rappel1 == "VRAI"){ // rappel n°1
if (Rappel1Type == "NOTIF"){
evt.addPopupReminder(Rappel1Min);}
if (Rappel1Type == "EMAIL"){
evt.addEmailReminder(Rappel1Min);}
}
if (Rappel2 == "VRAI"){ // rappel n°2
if (Rappel2Type == "NOTIF"){
evt.addPopupReminder(Rappel2Min);}
if (Rappel2Type == "EMAIL"){
evt.addEmailReminder(Rappel2Min);}
}
sheet.getRange(startrow + i, numcolumns).setValue(EVENT_IMPORTED); // Nombre de colonne contenant des données
SpreadsheetApp.flush();
}
}
}