使用Google Apps脚本,我尝试在CalendarApp中创建一个事件,并在电子表格中存储该事件的链接。要创建指向事件的链接,我需要获取事件ID,但是在Google Apps脚本中使用event.getID()会返回错误的事件ID。
链接的格式应为:https://calendar.google.com/calendar/event?eid= {eventID} =%7BAmerica / Chicago%7D
EventID应如下所示:tmFmbHZydmU1aDBDZGhlYmMwaWdqcW1wZGMgdDY1HT6yhuHI5YXJwYW5lMHV2OTYzamtAZw
getID()返回此信息:[email protected]
var event = CalendarApp.getCalendarById(calID).createAllDayEvent(eventName, new Date (eventDate));
var eventID = event.getId();
var eventLink = "https://www.google.com/calendar/event?eid=" + eventID + "&ctz={America/Chicago}";
Logger.log(eventLink);
为什么GAS会以这种格式返回ID?
根据这个documentation,
的getId()
获取日历的ID。用户默认日历的ID是其电子邮件地址。
您必须拥有活动的特定ID。
您也可以查看此链接:
基于这个link,ID并不总是相同,它们是相同的,显然分配了一个临时ID,直到它们被同步。
返回给您的ID是日历ID([email protected])
如果您仔细检查这是否与要创建事件的日历的ID相匹配,请转到设置并共享日历,如屏幕截图所示。
然后,您可以使用此ID来调用您要使用的日历:calendar = CalendarApp.getCalendarById('[email protected]');
那么你可以跟进你的原始意图... eventId = calendar.createAllDayEvent(eventName,new Date(eventDate))。getId;