无法获取要在单元格中链接的日历事件 ID



您好!

多亏了我们的社区,我能够使用谷歌主页创建不同的日历活动。但是,我现在想把创建的事件的超链接放在我的日历详细信息旁边的一列中。我在这里也读过同样的问题,但似乎无法理解。我很困惑答案是什么意思,"对于给定的CalendarEvent类型的event对象和给定的calendarId">

在我的代码中,我认为eventinviteID = eventCal.getEventById(calendarId).split('@'),而calendarIdcalendarId = Session.getActiveUser().getEmail()。然而,当我现在用base64对它们进行编码时,生成的eventID与日历中生成的不匹配。我已经尝试了几次迭代,但仍然没有成功。

请查看下面的代码(我只包含了我认为相关的行,以便于阅读(:

function sendInvites(){
var sheet = SpreadsheetApp.getActiveSheet();
var calendarId = Session.getActiveUser().getEmail();
var eventCal = CalendarApp.getCalendarById(calendarId);
eventCal.createEvent(title, sDateTime, eDateTime, details);
var inviteID = eventCal.getEventById(calendarId).split('@');
var inviteURL = "https://calendar.google.com/calendar/r/eventedit/" + Utilities.base64Encode(inviteID[0]+""+calendarId);
sheet.getRange(startrow + x, 26).setValue('=HYPERLINK("' + inviteURL + '","View")');
}

我怀疑我没有正确提取事件ID或日历ID。我希望得到你的指导。

谢谢!

createEvent()方法调用返回的event对象中获取事件id。我已经更正了您的代码,以便它实际获得与事件编辑URL一起使用的正确标识符:

function sendInvites(){
var sheet = SpreadsheetApp.getActiveSheet();
var calendarId = Session.getActiveUser().getEmail();
var calendar = CalendarApp.getCalendarById(calendarId);
var event = calendar.createEvent(title, sDateTime, eDateTime, details);
var inviteID = Utilities.base64Encode(event.getId().split("@")[0] + " " + calendarId);
var inviteURL = "https://calendar.google.com/calendar/r/eventedit/" + inviteID;
sheet.getRange(startrow + x, 26).setValue('=HYPERLINK("' + inviteURL + '","View")');
}

最新更新