Bonjour,

J'ai créé un tableau sur Google Sheets afin d'intégrer des évènement dans Google Agenda grâce à un script. Cela me servira pour mes révisions.
Mon but est de créer plusieurs événements, selon la courbe de l'oubli d'Ebinghaus (rappels à J3, J10, J30 et J60).

J'ai plus ou moins réussi, mais je suis confrontée à deux problèmes :
- le script met "AJOUTE" dans chaque case de la colonne, alors que par exemple je n'ai qu'une seule ligne remplie de dates (pour être plus précise, une ligne = un chapitre, or je n'étudie pas tous les chapitres le même jour !)
- le script ne tient pas compte des événements déjà créés, je me retrouve donc avec des doublets, triplets, etc.

Le script est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
var EVENT_IMPORTED = "AJOUTE"; // Ajoutera le texte "AJOUTE" dans la colonne G
var ss = SpreadsheetApp.getActiveSpreadsheet();
 
function onOpen() {
   var menuEntries = [{name: "Ajouter les événements à l'agenda", functionName: "importCalendar"}];
   ss.addMenu("Agenda", menuEntries); // Pour ajouter une menu Agenda et un sous-menu "ajouter les événements" dans la feuille de calcul. Cela permettra de tester manuellement la liaison entre la feuille de calcul et l'agenda
}
 
function importCalendar() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var startcolumn = 1
    var numcolumns = 30
    var dataRange = sheet.getRange(startcolumn, 1, numcolumns, 6)   // Nombre de colonne contenant des données
    var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) { 
    var column = data[i];
    var titre = column[1];     // Colonne A - Titre de l'événement dans l'agenda - Titre du rendez-vous
    var DateJ3 = column[2];    // Colonne B - J3
    var DateJ10 = column[3];  // Colonne C - J10
    var DateJ30 = column[4];   // Colonne D -J30
    var DateJ60 = column[5];   // Colonne E - J60
    var eventImported = column[6];// Colonne G - Statut de l'importation - colonne AJOUTE A L'AGENDA 
 
 
    var setupInfo = ss.getSheetByName("agenda"); // Nom de la feuille de calcul contenant la nom de l'agenda
    var calendarName = setupInfo.getRange("A1").getValue(); // Référence de la cellule contenant le nom de l'agenda
 
    if (eventImported  != EVENT_IMPORTED && titre != "") {  // Evite les doublons dans l'agenda, si le texte AJOUTE est présent en G, l'événement n'est pas ajouté
    var cal = CalendarApp.openByName(calendarName);
 
 
     cal.createAllDayEvent(titre, new Date(DateJ3)); // Création de l'événement dans l'agenda avec le titre, la date de début
     cal.createAllDayEvent(titre, new Date(DateJ10));
     cal.createAllDayEvent(titre, new Date(DateJ30));
     cal.createAllDayEvent(titre, new Date(DateJ60));
 
      sheet.getRange(startcolumn + i, 7).setValue(EVENT_IMPORTED); // Nombre de colonne contenant des données
 
      SpreadsheetApp.flush();  
    }
  }
}

Merci à ceux qui voudront bien m'aider, après des heures de recherches je désespère !
Bonne soirée
Clara