如何一次删除多个日期的所有事件,而不是一次删除Google日历中的整个日历?


22

如何一次删除多个日期的所有事件,而不是一次删除Google日历中的整个日历?我试图单击要删除事件的日期,然后将鼠标拖到该日期后的2天,但是随后我总是看到“创建事件”。我以为我可以按backspacedelete删除所有这些事件。

到目前为止,我所做的=逐一删除事件:(


没有内置功能可以让您执行此操作。如果日历有API,则可能有人可以创建一个应用程序来执行此操作,但我不知道。
ale

Answers:


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 2014年

4
Google脚本处创建一个新脚本并将其粘贴。将更calendarName改为与日历关联的电子邮件(GMail)地址。
Emaad Ahmed Manzoor 2014年

2
对于变量calendarName,除非我使用实际的完整gmail地址,否则我的MAIN日历无法使用。在我的Google日历的左侧查看此日历名称时,它只是显示为我的名字和姓氏,但不适用于我的calendarName变量。对于我的子帐户日历,显示在日历左侧的日历名称可以正常工作。当我使用错误的日历名称时,我将收到以下错误消息,因此,如果您看到消息TypeError:Cannot调用未定义的方法“ getEvents”。
Kurt 2014年

1
(上面的内容是从答案中编辑出来的,变成了评论。我认为这些信息可能有用,因此我保留了下来)
jonsca

8

我发现了一个修改,如果您要查找某些事件,可以使此脚本值得。您有意或无意导入。可以说,很多条目的名称中都带有“ Cycle 1 Checkpoint 10”(循环1检查点),其后是数字或其他名称。建议您找到“循环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 !
  }
}

这扩展了上面的脚本。请允许我在几分钟内删除整年的课程,谢谢
Daniel Filatov

3

从以前的日历系统迁移到Google Apps后,所有重复发生的事件都将分别导入。我在https://script.google.com上创建了一个新的Google脚本,并对其进行了修改,以仅删除某些事件(已经使用其他名称进行了新的重复事件)。

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

我发现最好的是使用Appgenixsoftware的移动应用程序Business Calendar Pro的批量删除功能。


2

http://www.gcaltoolkit.com上有一个免费的API客户端。它具有1000个条目免费的网络版本,以及Windows和Mac可能免费的可下载版本。我尝试了一下,对我来说很快。

您可以按日期或搜索词进行选择,看起来您可以进一步对其进行手动修改。或者,只需单击要删除的内容。做出决定后,会有一个按钮可将您的更改提交回Google日历。

几分钟前,我遇到同样的问题时,我发现这非常有用,并且很惊讶地发现它不在这里。


-2

如果要删除日历中的所有事件,可以转到日历设置并删除整个日历。

如果是您的主日历,它将删除其所有条目,如果是另一个日历,则将删除整个日历,因此您必须创建一个新的日历。


2
不是整个日历。只有三个日期。
Arie
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.