gpt4 book ai didi

javascript - 谷歌日历脚本 : remove recurrence

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:29 28 4
gpt4 key购买 nike

我正在遍历事件电子表格并相应地修改我的日历。

我可以使用 setRecurrence 创建多日事件,但我不知道如何删除该类并将其变回单日事件。

知道这一点很重要,因为显然不止一次将 setRecurrence 应用于一个事件并不会替换/重新定义现有的循环,而是不断将其他类添加到它上面。这会阻止简单的解决方法,例如应用 0 天的重复等。

我正在寻找与 event.removeRecurrence() 等效的方法。

最佳答案

此代码使用高级日历服务,您必须在脚本编辑器菜单中启用它:ressources/advanced Google Services ***

function ChangeEvent(){
var calendarId = 'primary';
var eventId = 'omv6###########e8jbs';
var event = Calendar.Events.get(calendarId, eventId);
Logger.log('old recurrence = '+event.recurrence);
event.recurrence = '';
Calendar.Events.patch(event,calendarId,eventId);
Logger.log('new recurrence = '+event.recurrence);
}

enter image description here


编辑

在您发表评论后,

请注意,高级日历 API 使用的 ID 略有不同,因为它不包括 @google.com。您应该在使用前简单地删除最后一部分。

示例:

[16-02-19 07:22:59:739 CET] ba4a1dub73uqsvhld3abh15f38@google.com
[16-02-19 07:22:59:740 CET] ba4a1dub73uqsvhld3abh15f38

使用一些字符串方法得到我们需要的结果:

  Logger.log(event.getId());// event is the event you get using calendarApp
var advancedID = event.getId().substring(0,event.getId().indexOf('@'));
Logger.log(advancedID);// this ID is for advanced service
}

工作示例:

首先使用 createEventRec()

使用 calendarApp 创建一个 5 天重复的事件(因此我们处于您的真实情况)

检查日历是否符合预期

然后使用changeEvent() 并检查结果

function createEventRec(){
var cal = CalendarApp.getDefaultCalendar();
var recurrence = CalendarApp.newRecurrence().addDailyRule().times(5);
var event = cal.createEventSeries('Dinner with Mary', new Date(),new Date(new Date().getTime()+3600000), recurrence);
Logger.log(event.getId());
PropertiesService.getScriptProperties().setProperty('ID',event.getId());
}


function ChangeEventRecurrence(){
var calendarId = 'primary';
var ID = PropertiesService.getScriptProperties().getProperty('ID');
var advancedID = ID.substring(0,ID.indexOf('@'));
Logger.log(advancedID);
var event = Calendar.Events.get(calendarId, advancedID);
Logger.log('old recurrence = '+event.recurrence);
event.recurrence = '';
Calendar.Events.patch(event,calendarId,advancedID);
Logger.log('new recurrence = '+event.recurrence);
}

关于javascript - 谷歌日历脚本 : remove recurrence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35477612/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com