Suppression automatique d'événements

Sur le forum d'aide aux utilisateurs de Google Agenda, il a été demandé s'il existait une façon automatique de supprimer les événements passés. Etrange demande, mais pourquoi pas ?



Ce besoin n'existe pas sur Google Agenda ; pour autant, avec quelques lignes de script, c'est tout à fait envisageable.

Dans la partie paramétrage, vous pouvez choisir les bornes de dates de suppression avec la variable nombreDejoursEnArriere et vous pouvez aussi garder les événements du jour ou des jours passés avec la variable joursEnMoins.

J'ai choisi par défaut de lancer le script sur le calendrier par défaut de l'utilisateur.

Il est bien entendu possible de lancer ce script via un déclencheur tous les jours.

Voici le code : 

function suppressionEvenementsPasses() {
  
  // PARAMETRAGE //
  
  //Calendrier par défaut choisi
  var calendrier = CalendarApp.getDefaultCalendar();
  // Ou choisir l'ID d'un calendrier en particulier
  //var calendrier =       CalendarApp.getCalendarById("calendarId@group.calendar.google.com");
  
 var nombreDeJoursEnArriere = '60';
 var joursEnMoins = 1 // Suppression des évènements antérieurs à la veille (inclus)
  
  // TRAITEMENT //
  
  var MILLIS_PER_DAY = 1000 * 60 * 60 * 24;
  var now = new Date();  
  var dateInitiale = new Date(now.getTime() - nombreDeJoursEnArriere * MILLIS_PER_DAY);
  var dateMaximum = new Date(); 
  dateMaximum.setDate(dateMaximum.getDate()-joursEnMoins);    
  var listeEvenements = calendrier.getEvents(dateInitiale,dateMaximum);  
  for (var i = 0; i < listeEvenements.length; i++) {  
    Logger.log("Suppression de l'événement: " + listeEvenements[i].getTitle());
    //listeEvenements[i].deleteEvent();
  } 
}

Commentaires