美好的一天!
感谢我们的社区,我能够使用googlesheets创建不同的日历活动。但是,我现在想将创建的事件的超链接放在日历详细信息旁边的栏中。我也已经读过关于同一问题here的信息,但似乎无法遵循。答案是“对于类型为CalendarEvent的给定event
对象和给定calendarId
的对象,我很困惑。
在我的代码中,尽管event
是inviteID = eventCal.getEventById(calendarId).split('@')
,而calendarId
是calendarId = Session.getActiveUser().getEmail()
。但是,当我现在使用base64对其进行编码时,生成的eventID与我的日历中生成的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")');
}
我的怀疑是我没有正确提取eventID或calendarId。希望您对此提供指导。
谢谢!
答案 0 :(得分:1)
您从event
方法调用返回的createEvent()
对象中获取事件ID。我已更正了您的代码,以便它实际上获得与eventedit 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")');
}