Comment supprimer tous les événements à plusieurs dates à la fois, mais pas l'intégralité du calendrier dans Google Agenda?


22

Comment supprimer tous les événements à plusieurs dates à la fois, mais pas l'intégralité du calendrier dans Google Agenda? J'ai essayé de cliquer sur une date qui a un événement à supprimer et j'ai fait glisser ma souris jusqu'à 2 jours après cette date, mais je vois toujours "créer un événement". Je pensais pouvoir appuyer sur backspaceou deletepour supprimer tous ces événements.

Ce que j'ai fait jusqu'à présent = supprimer l'événement un par un :(


Il n'y a rien de intégré qui vous permettrait de faire cela. S'il existe une API pour le calendrier, il pourrait être possible pour quelqu'un de créer une application pour ce faire, mais je n'en connais pas.
ale

Réponses:


25

J'ai pu le faire avec un script Google comme celui-ci. Vous pouvez modifier cela pour localiser les jours que vous souhaitez supprimer, etc.

function delete_events()
{
    var fromDate = new Date(2013,0,1,0,0,0); 
    var toDate = new Date(2013,0,4,0,0,0);
    var calendarName = 'My Calendar';

    // delete from Jan 1 to end of Jan 4, 2013 (for month 0 = Jan, 1 = Feb...)

    var calendar = CalendarApp.getCalendarsByName(calendarName)[0];
    var events = calendar.getEvents(fromDate, toDate);
    for(var i=0; i<events.length;i++){
      var ev = events[i];
      Logger.log(ev.getTitle()); // show event name in log
      ev.deleteEvent();
    }
 }

Où entrez-vous cela?
justintime

4
Créez un nouveau script dans Google Scripts et collez-le. Remplacez-le calendarNamepar l'adresse e-mail (GMail) associée au calendrier.
Emaad Ahmed Manzoor

2
Pour la variable calendarName, la mienne n'a pas fonctionné pour mon calendrier MAIN , sauf si j'ai utilisé mon adresse Gmail complète réelle. Lors de l'affichage de ce nom d'agenda sur le côté gauche de mon agenda Google, il s'est affiché comme mon prénom et mon nom, mais cela n'a pas fonctionné pour ma variable calendarName. Pour mes calendriers de sous-compte, le nom du calendrier affiché à gauche des calendriers a bien fonctionné. J'obtiendrais le message d'erreur suivant lorsque j'utilisais le mauvais nom de calendrier, donc si vous voyez le message TypeError: Impossible d'appeler la méthode "getEvents" de undefined.
Kurt

1
(ce qui précède a été édité à partir d'une réponse transformée en commentaire. J'ai pensé que ces informations pourraient être utiles, alors je les ai conservées)
jonsca

8

J'ai trouvé une modification qui peut rendre ce script intéressant si vous souhaitez rechercher certains événements. Que vous avez importé intentionnellement ou non. Disons que beaucoup d'entrées ont le point de contrôle du cycle 1 10 dans le nom suivi d'un nombre ou autre. Soyez avisé que "Cycle 1 Checkpoint 10", "Cycle 1 Checkpoint 20" sera trouvé mais "Cycle1 Checkpoint 10" pas ..

function delete_events()
{
  //take care: Date function starts at 0 for the month (January=0)
  //{search: 'cycle'+"*"+'Checkpoint'} hier zijn de search terms
  var fromDate = new Date(2014,7,1,0,0,0); //This is August 1, 2014
  var toDate = new Date(2016,2,1,0,0,0);   //This is March 1, 2016 at 00h00'00"
  var calendarName = 'GuyForssman';


  var calendar = CalendarApp.getCalendarsByName(calendarName)[0];
  var events = calendar.getEvents(fromDate, toDate,{search: 'cycle'+"*"+Checkpoint'+"*"});
  for(var i=0; i<events.length;i++)
  {
    var ev = events[i];
      Logger.log('Item '+ev.getTitle()+' found on '+ev.getStartTime()); // show event name and date in log
      //ev.deleteEvent(); //uncomment this line to actually do the delete !
  }
}

Cela étend le script ci-dessus. M'a permis de supprimer un cursus d'une année entière en quelques minutes, merci
Daniel Filatov

3

Après la migration d'un ancien système de calendrier vers Google Apps, tous les événements récurrents ont été importés individuellement. J'ai créé un nouveau script Google sur https://script.google.com et l' ai modifié pour supprimer uniquement certains événements (un nouvel événement récurrent a déjà été créé avec un autre nom).

function delete_events()
{
  //take care: Date function starts at 0 for the month (January=0)
  var fromDate = new Date(2014,7,1,0,0,0); //This is August 1, 2014
  var toDate = new Date(2016,2,1,0,0,0);   //This is March 1, 2016 at 00h00'00"
  var calendarName = 'your_calendar_name';
  var toRemove = 'title_of_the_events';

  var calendar = CalendarApp.getCalendarsByName(calendarName)[0];
  var events = calendar.getEvents(fromDate, toDate,{search: toRemove});
  for(var i=0; i<events.length;i++)
  {
    var ev = events[i];
    if(ev.getTitle()==toRemove) //check if the title matches
    {
      Logger.log('Item '+ev.getTitle()+' found on '+ev.getStartTime()); // show event name and date in log
      //ev.deleteEvent(); //uncomment this line to actually do the delete !
    }
  }
}

2

La meilleure chose que j'ai trouvée est d'utiliser la fonction de suppression en masse de l'application mobile, Business Calendar Pro par Appgenixsoftware.


2

Il existe un client API gratuit sur http://www.gcaltoolkit.com . Il a une version réseau gratuite pour 1000 entrées et des versions téléchargeables pour Windows et Mac qui peuvent également être gratuites. Je l'ai essayé et cela a fonctionné rapidement pour moi.

Vous pouvez sélectionner par date ou par termes de recherche et il semble que vous puissiez le modifier manuellement davantage. Ou cliquez simplement sur ceux que vous souhaitez supprimer. Une fois que vous avez décidé, il y a un bouton pour valider vos modifications dans Google Agenda.

J'ai trouvé cela très utile lorsque j'ai eu le même problème il y a quelques minutes et j'ai été surpris de voir que ce n'était pas le cas ici.


-2

Si vous souhaitez supprimer tous les événements d'un calendrier, vous pouvez accéder aux paramètres du calendrier et supprimer tout le calendrier.

Si c'est votre calendrier principal, il supprimera toutes ses entrées, et s'il s'agit d'un autre calendrier, il supprimera tout le calendrier, vous devrez donc en créer un nouveau.


2
pas tout le calendrier. seulement 3 dates.
Arie
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.