Як видалити всі події на багатьох датах одночасно, але не весь Календар у Календарі Google?


22

Як видалити всі події на багатьох датах одночасно, але не весь Календар у Календарі Google? Я намагався натиснути на дату, яка отримала подію, щоб видалити та перетягнув мишу до 2 днів після цієї дати, але потім я завжди бачу "створити подію". Я думав, що можу натиснути backspaceабо deleteвидалити всі ці події.

Що я робив досі = видалення події одна за одною :(


Немає нічого вбудованого, що дозволило б вам це зробити. Якщо для календаря є API, хтось може створити додаток для цього, але я не знаю жодного.
але

Відповіді:


25

Мені вдалося це зробити з таким сценарієм Google. Ви можете змінити це, щоб точно вказати дні, які потрібно видалити тощо.

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

Я знайшов модифікацію, яка може зробити цей сценарій вартим, якщо ви хочете шукати певні події. Щоб ви навмисно чи не імпортували. Скажімо, багато записів мають в імені цикл 1 контрольної точки 10, а за ним номер чи інше. Зауважте, що "Цикл 1 Контрольна точка 10", "Цикл 1 Контрольна точка 20" будуть знайдені, але "Цикл 1 Контрольна точка 10" немає.

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 Apps всі повторювані події імпортувалися окремо. Я створив новий сценарій Google на 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 !
    }
  }
}

2

Найкраще, що я знайшов - це використання функції масового видалення з мобільного додатку Business Calendar Pro від Appgenixsoftware.


2

На сайті http://www.gcaltoolkit.com є безкоштовний клієнт API . Він має мережеву версію, безкоштовну для 1000 записів та завантажуваних версій для Windows та Mac, які також можуть бути безкоштовними. Я спробував це, і це швидко спрацювало.

Ви можете вибрати за датою або за пошуковими термінами, і, схоже, ви можете вручну змінити це. Або просто натисніть на ті, які потрібно видалити. Після того, як ви вирішите, з’явиться кнопка, щоб повернути свої зміни до Календаря Google.

Я вважав це дуже корисним, коли у мене була така ж проблема кілька хвилин тому, і я був здивований, побачивши, що тут не було.


-2

Якщо ви хочете видалити всі події в календарі, ви можете перейти до налаштувань календаря та видалити весь календар.

Якщо це ваш основний календар, він видалить усі його записи, а якщо це інший календар, він видалить весь календар, тому вам доведеться створити новий.


2
не весь календар. всього 3 дати.
Ар'є
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.