Jak usunąć wszystkie wydarzenia z wielu dat jednocześnie, ale nie cały kalendarz w Kalendarzu Google?

22

Jak usunąć wszystkie wydarzenia z wielu dat jednocześnie, ale nie cały kalendarz w Kalendarzu Google? Próbowałem kliknąć datę, dla której wydarzenie zostało usunięte, i przeciągnąłem mysz do 2 dni po tej dacie, ale wtedy zawsze widzę „Utwórz wydarzenie”. Myślałem, że mogę nacisnąć backspacelub, deleteaby usunąć wszystkie te zdarzenia.

Co zrobiłem do tej pory = usuwam zdarzenie jeden po drugim :(

Arie
źródło
Nie ma nic wbudowanego, co by to pozwoliło. Jeśli istnieje interfejs API dla kalendarza, możliwe, że ktoś utworzy aplikację, aby to zrobić, ale nie znam żadnej.
ale

Odpowiedzi:

25

Byłem w stanie to zrobić za pomocą takiego skryptu Google. Możesz to zmienić, aby wskazać dni, które chcesz usunąć itp.

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();
    }
 }
Glen Little
źródło
Gdzie to wpisujesz?
justintime
4
Utwórz nowy skrypt w Google Scripts i wklej go. Zmień calendarNameadres e-mail (GMail) powiązany z kalendarzem.
Emaad Ahmed Manzoor
2
W przypadku zmiennej calendarName moja nie działała dla mojego głównego kalendarza, chyba że użyłem mojego rzeczywistego pełnego adresu Gmail. Podczas przeglądania tej nazwy kalendarza po lewej stronie mojego Kalendarza Google po prostu pojawiło się ono jako moje imię i nazwisko, ale nie działało to w przypadku mojej zmiennej calendarName. W przypadku moich kalendarzy subkontowych nazwa kalendarza widoczna po lewej stronie kalendarzy działała poprawnie. Otrzymałbym następujący komunikat o błędzie, gdy użyłem niewłaściwej nazwy kalendarza, więc jeśli zobaczysz komunikat TypeError: Nie można wywołać metody „getEvents” z niezdefiniowanej.
Kurt
1
(powyższe zostało zredagowane z odpowiedzi zamienionej w komentarz. Myślałem, że ta informacja może być przydatna, więc ją zachowałem)
jonsca
8

Znalazłem modyfikację, dzięki której skrypt może się opłacać, jeśli chcesz wyszukać określone zdarzenia. Że celowo lub nie importujesz. Powiedzmy, że wiele wpisów ma w nazwie Cykl 1 Punkt kontrolny 10, po którym następuje liczba lub cokolwiek innego. Należy pamiętać, że „Cykl 1 Punkt kontrolny 10”, „Cykl 1 Punkt kontrolny 20” zostanie znaleziony, ale „Cykl 1 Punkt kontrolny 10” nie zostanie znaleziony.

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 !
  }
}
Guy Forssman
źródło
To rozszerza powyższy skrypt. Pozwoliłem sobie usunąć całoroczny program nauczania w kilka minut, dzięki
Daniel Filatov
3

Po migracji z poprzedniego systemu kalendarza do Google Apps wszystkie powtarzające się wydarzenia zostały zaimportowane indywidualnie. Utworzyłem nowy skrypt Google na stronie https://script.google.com i zmodyfikowałem go, aby usunąć tylko niektóre zdarzenia (nowe zdarzenie cykliczne zostało już wykonane pod inną nazwą).

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 !
    }
  }
}
DaveG
źródło
2

Najlepsze, co znalazłem, to korzystanie z funkcji masowego usuwania z aplikacji mobilnej Business Calendar Pro firmy Appgenixsoftware.

Strizzle
źródło
2

Istnieje darmowy klient API na stronie http://www.gcaltoolkit.com . Posiada wersję sieciową, która jest bezpłatna dla 1000 wpisów, oraz wersje do pobrania dla systemów Windows i Mac, które mogą być również bezpłatne. Próbowałem i działało to dla mnie szybko.

Możesz wybrać według daty lub według wyszukiwanych terminów i wygląda na to, że możesz to zmienić ręcznie. Lub po prostu kliknij te, które chcesz usunąć. Po podjęciu decyzji pojawi się przycisk, aby zatwierdzić zmiany z powrotem do Kalendarza Google.

Uznałem to za bardzo pomocne, gdy miałem ten sam problem kilka minut temu i byłem zaskoczony, widząc, że nie ma go tutaj.

Paweł
źródło
-2

Jeśli chcesz usunąć wszystkie wydarzenia w kalendarzu, możesz przejść do ustawień kalendarza i usunąć cały kalendarz.

Jeśli jest to Twój główny kalendarz, usunie wszystkie jego wpisy, a jeśli jest to inny kalendarz, usunie cały kalendarz, dlatego będziesz musiał utworzyć nowy.

Greg
źródło
2
nie cały kalendarz. tylko 3 daty.
Arie,