我想与用户共享一个Google工作表,允许他们将多日全天活动添加到他们的日历中。由于谷歌没有提供这样做的功能,我已经厌倦了各种解决方法。
createEvent(title,startTime,endTime)并不完美,因为它使用并显示datetime,
createEventFromDescription(description)不允许元数据,如描述,所以我尝试使用高级日历服务。
从我读过的高级日历服务启用后,您应该可以使用Google Calendar API,就像使用App Script的内置日历服务一样。如果我在工作表脚本编辑器中运行这个内置函数它可以工作,我可以复制工作表,通过电子邮件发送给其他人,他们也可以运行该功能
var event = CalendarApp.getDefaultCalendar().createEvent('Apollo
11 Landing',
new Date('July 20, 1969 20:00:00 UTC'),
new Date('July 20, 1969 21:00:00 UTC'),
{location: 'The Moon'});
Logger.log('Event ID: ' + event.getId());
如果我使用高级日历服务并使用下面的代码基本上是他们的示例,我可以在脚本编辑器中运行该功能,但它可以工作,但如果我复制工作表并通过电子邮件发送给其他人尝试我得到的错误“找不到项目(编号),不能用于API调用”。任何人都可以看到我做错了什么。
function createEvent() {
var calendarId = 'primary';
var event = {
summary: 'Lunch Meeting',
location: 'The Deli',
description: 'To discuss our plans for the presentation next week.',
start: {
date: "2017-05-21"
},
end: {
date: "2017-05-24"
},
attendees: [
{email: 'alice@example.com'},
{email: 'bob@example.com'}
],
// Red background. Use Calendar.Colors.get() for the full list.
colorId: 11
};
event = Calendar.Events.insert(event, calendarId);
Logger.log('Event ID: ' + event.getId());
}
答案 0 :(得分:0)
嗯,我不知道你为什么会收到API调用错误;但是,createEventFromDescription
会返回一个事件对象,因此您可以添加如下所示的描述:
var event = createEventFromDescription("Some event 4/25 - 4/30");
event.setDescription("This is a description.");
CalendarApp
不像高级日历服务那样健壮(例如,您无法设置事件颜色),但它可能足以满足您的目的。