Как удалить все события сразу за несколько дат, но не весь Календарь в Календаре Google?

22

Как удалить все события сразу за несколько дат, но не весь Календарь в Календаре Google? Я пытался щелкнуть по дате, на которой есть событие, которое нужно удалить, и перетащил мышь на 2 дня после этой даты, но затем я всегда вижу «создать событие». Я думал, что смогу нажать backspaceили deleteудалить все эти события.

Что я сделал до сих пор = удаление события по одному :(

Арье
источник
Там нет ничего встроенного, что позволило бы вам сделать это. Если для календаря есть API, кто-то может создать приложение для этого, но я не знаю ни одного.
Эль

Ответы:

25

Я смог сделать это с помощью Google Script, как это. Вы можете изменить это, чтобы точно указать дни, которые вы хотите удалить, и т. Д.

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();
    }
 }
Глен Литтл
источник
Где вы вводите это?
Justintime
4
Создайте новый скрипт в Google Scripts и вставьте его. Измените calendarNameадрес электронной почты (GMail), связанный с календарем.
Эмаад Ахмед Мансур
2
Для переменной calendarName мой не работал для моего ГЛАВНОГО календаря, если я не использовал свой фактический полный адрес Gmail. При просмотре этого названия календаря в левой части моего Календаря Google, оно просто отображалось как мои имя и фамилия, но это не сработало для моей переменной calendarName. Для моих календарей субсчета имя календаря, показанное в левой части календарей, работало нормально. Я получил бы следующее сообщение об ошибке, когда я использовал неправильное имя календаря, поэтому, если вы видите сообщение TypeError: Невозможно вызвать метод "getEvents" из неопределенного.
Курт,
1
(вышеизложенное было отредактировано из ответа, превращенного в комментарий. Я подумал, что эта информация может быть полезна, поэтому я сохранил ее)
jonsca
8

Я нашел модификацию, которая может сделать этот скрипт полезным, если вы хотите искать определенные события. Это вы намеренно или не импортировали. Допустим, во многих записях указывается «Контрольная точка 10 цикла 1», за которой следует номер или что-то еще. Имейте в виду, что «Контрольная точка 10 цикла 1», «Контрольная точка 20 цикла 1» найдены, но «Контрольная точка 10 цикла 1» не найдена.

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 !
  }
}
Гай Форссман
источник
Это расширяет сценарий выше. Позволил мне удалить целый год в учебную программу, спасибо
Даниил Филатов
3

После миграции из предыдущей календарной системы в Службы Google все повторяющиеся события импортировались по отдельности. Я создал новый скрипт Google Script на https://script.google.com и изменил его, чтобы удалить только некоторые события (новое повторяющееся событие уже было создано с другим именем).

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
источник
2

Лучшее, что я нашел, - это использование функции массового удаления из мобильного приложения Business Calendar Pro от Appgenixsoftware.

Strizzle
источник
2

На http://www.gcaltoolkit.com есть бесплатный API-клиент . Он имеет сетевую версию, которая бесплатна для 1000 записей, и загружаемые версии для Windows и Mac, которые также могут быть бесплатными. Я попробовал это, и это быстро сработало для меня.

Вы можете выбрать по дате или по условиям поиска, и похоже, что вы можете изменить это вручную. Или просто нажмите те, которые вы хотите удалить. После того, как вы решите, есть кнопка, чтобы зафиксировать ваши изменения обратно в Календарь Google.

Я нашел это очень полезным, когда у меня была та же проблема несколько минут назад, и я был удивлен, увидев, что ее здесь нет.

Павел
источник
-2

Если вы хотите удалить все события в календаре, вы можете перейти к настройкам календаря и удалить весь календарь.

Если это ваш основной календарь, он удалит все свои записи, а если это другой календарь, он удалит весь календарь, поэтому вам придется создать новый.

Greg
источник
2
не весь календарь. всего 3 свидания.
Арье