我可以在不发送通知的情况下删除谷歌日历中的一系列事件吗?

问题描述 投票:2回答:1

我一直在使用这段代码来删除谷歌日历中的事件。

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

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();
}

但是,如果我做了一系列的活动,它就会给组织者发送一封电子邮件,说我已经拒绝了该活动。 我可以关闭这个通知吗?

google-apps-script google-calendar-api
1个回答
0
投票

问题:你可以修改通知的设置。

你可以通过用户界面修改通知设置,特别是禁用取消事件的通知,通过选择 "我的日历 "来修改通知。设置和共享 并在 其他通知,设置 Canceled eventsNone.

如果我没理解错的话,你是想用Apps Script来编程。

解决办法:据我所知,没有Apps Script内置的方法来管理这些设置。

据我所知,没有Apps Script内置的方法来管理这些设置。正因为如此,你应该启用 高级日历服务 并使用日历API方法。

在日历API中,通知由属性 notificationSettings 来自 日历列表资源. 要改变这些设置,你必须使用以下方法。日历列表:补丁你可以用它来更新现有的日历。

代码示例。

function disableNotifications() {
  var calendarId = "your-calendar-id";
  var resource = {
    notificationSettings: {
      notifications: [
        {
          type: "eventCreation",
          method: "email"
        },
        {
          type: "eventChange",
          method: "email"
        }
      ]
    }
  }
  Calendar.CalendarList.patch(resource, calendarId);
}

注意:

  • 例如,上面的示例,将禁用该日历的所有通知类型,除了 eventCreationeventChange. 你可以根据自己的喜好,通过添加或删除类型(此处 是可能的类型)。)

参考资料。

© www.soinside.com 2019 - 2024. All rights reserved.