0

We use a that gather the registration from Google Form and add them in our Agenda, our script uses the method "CalendarApp.openByName" to add the name automatically inside a Cell. It says the method is obsolete, what is the updated name for this method?

Here is the complete script:

var EVENT_IMPORTED = "AJOUTE"; // Ajoutera le texte "AJOUTE" dans la colonne N
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 = 2;  // Première colonne de prise en compte des données, soit la colonne B (titre du rendez-vous)
    var numcolumns = 30;  // Nombre de colonne
    var dataRange = sheet.getRange(startcolumn, 1, numcolumns, 11)   // 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 B - Titre de l'événement dans l'agenda - Titre du rendez-vous
    var DateDebut = column[2];    // Colonne C - date et heure de début de l'événement
    var Nom = column[3];          // Colonne E - Nom du contact
    var Adresse = column[4];      // Colonne F - Adresse
    var CP = column[5];           // Colonne G - Code postal
    var Ville = column[6];        // Colonne H - Ville
    var NumTel = column[7];       // Colonne I - Numéro de téléphone
    var Lieu = column[8];
    var Mail = column[9];    // Colonne J - Debut

    var description = "Nom du contact : "+ Nom +" // Adresse : "+ Adresse +" // Code postal : "+ CP +" // Ville : "+ Ville +" // Numéro de téléphone : "+ NumTel +" //Lieu Activité : "+ Lieu    // concatenation des champs des colonnes E à K destinée à la zone Description de l'agenda
    var eventImported = column[11];// Colonne N - 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 K, l'événement n'est pas ajouté
    var cal = CalendarApp.openByName(calendarName);


     cal.createEvent(titre, new Date(DateDebut), new Date(DateDebut), {description : description}); // Création de l'événement dans l'agenda avec le titre, la date de début, la date de fin et la description complète


      sheet.getRange(startcolumn + i, 11).setValue(EVENT_IMPORTED); // Nombre de colonne contenant des données

      SpreadsheetApp.flush();  
    }
  }
}

1 Answer 1

1

In the current stage, openByName() is deprecated. So please modify as follows.

From:

var cal = CalendarApp.openByName(calendarName);

To:

var cal = CalendarApp.getCalendarsByName(calendarName)[0];

Note:

  • This modification supposes that the calendar with the name of calendarName is existing only one.

Reference:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.