如何使用Google Apps脚本创建两天的AllDay活动?

时间:2013-07-01 08:31:38

标签: google-apps-script

我想使用Google Apps脚本createAllDayEvent(title, date)创建一个全天的Google日历,但只有一个日期参数,因此我只能创建一天的AllDay Google日历。

现在我需要创建两天的AllDay Google日历(例如:从2013年6月28日到2013年6月29日),我该怎么办?

感谢您的帮助!

2 个答案:

答案 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规范有很多重叠。