我想使用Google Apps脚本createAllDayEvent(title, date)
创建一个全天的Google日历,但只有一个日期参数,因此我只能创建一天的AllDay Google日历。
现在我需要创建两天的AllDay Google日历(例如:从2013年6月28日到2013年6月29日),我该怎么办?
感谢您的帮助!
答案 0 :(得分:3)
您需要使用createAllDayEventSeries(),它接受Recurrence参数。
var recurrence = CalendarApp.newRecurrence().addDailyRule().times(2);
var eventSeries = CalendarApp.getDefaultCalendar().createAllDayEventSeries('My All Day Event',
new Date('June 28, 2013'),
recurrence,
{guests: 'everyone@example.com'});
Logger.log('Event Series ID: ' + eventSeries.getId());
答案 1 :(得分:0)
您无法添加创建多天'全天'通过CalendarApp Class跨越多天的事件。您必须通过高级Google服务使用Calendar API执行此操作。
1)为脚本启用Calendar API 在google scripts页面上,转到菜单项' Resources' →'高级Google服务'。打开Calendar API(目前为v3)。
2)通过Google API控制台启用服务 在“高级Google服务”页面中,点击指向API控制台的链接。点击' +启用API'。选择'日历API',然后启用它。
3)使用下面的代码片段(创建一个为期两天的全天事件)作为示例
var calId = '##########################@group.calendar.google.com';
var event = {
"summary":"Summary",
"location":"Location",
"description":"Description",
"start":{
"date":"2017-06-03"
},
"end":{
"date":"2017-06-05"
}
};
Calendar.Events.insert(event,calId);
// You can check how the events are stored below
var events = Calendar.Events.list(calId, {timeMin: (new Date(2017,5,2)).toISOString(),
timeMax: (new Date(2017,5,10)).toISOString(),
maxResults: 2500});
您需要注意的是,上述代码将在6月3日至6月4日期间生成全天活动(结束日期基本上是2017-06-05T00:00:00)。
您可以添加其他事件属性,在Calendar API/Events/insert页面上有所记录。使用Calendar.Events.list获取事件列表会给你一个想法。
如果您查看日历API事件,您会注意到与iCal规范有很多重叠。