【问题标题】:Getting the Event ID After creating Event with google spreadsheet/calendar使用谷歌电子表格/日历创建事件后获取事件 ID
【发布时间】:2019-05-23 19:21:17
【问题描述】:
我编写了一个脚本,用于通过表单和电子表格为 Google 日历创建活动。
是否有可能在创建事件后立即获取事件 ID?
想将其保存在电子表格中,以便我可以根据需要更改或删除事件...
【问题讨论】:
标签:
google-apps-script
google-sheets
google-calendar-api
【解决方案1】:
通常,您可以通过在CalendarEvent 类实例上调用getId() 方法来访问事件的ID(假设您通过CalendarApp 服务创建事件)。另一方面,如果您向日历 API 发出 http 请求(例如 insert),您可以生成一个 id,将其作为请求正文属性传递 id(有三个要求:base32hex 编码,5
这是一个非常简单的示例来说明第二种方法(该示例假设您已在“日历”名称下的高级服务中启用日历 API):
/**
* Test for created event;
* @returns {Object} requested event;
*/
function getEvent() {
var id = 'eventid1';
var event = Calendar.Events.get('primary', id);
Logger.log(event);
return event;
}
/**
* Inserts event (for example simplicity, hardcoded Id);
*/
function insertEvent() {
var id = 'eventid1';
var start = new Date()
start.setHours(21);
var end = new Date()
end.setHours(22);
var tz = 'America/Los_Angeles';
var event = {
start : {
dateTime : start.toISOString(),
timeZone : tz
},
end : {
dateTime : end.toISOString(),
timeZone : tz
},
id : id
};
Calendar.Events.insert(event, 'primary');
}
希望这两种解决方案中的任何一种都会有所帮助,否则,请务必提供创建事件的代码示例!