我将脚本链接到一个名为“发送到日历”的按钮,该按钮将出现在工作表的每个工作表上。我想要脚本:
1)在Google日历上创建一个新事件,其名称和日期基于按钮所在的工作表上的信息(每张工作表上的数据不同,都位于相同的单元格地址)。
2)在开始日期的6周前为所有与会者设置提醒。
3)邀请/添加邀请对象(可能是通过将活动作为电子邮件发送到非Gmail地址吗?只要我可以自动邀请邀请对象,我会很灵活)
4)将所有这些邀请的colorId设置为“ 3”(淡紫色),或将默认事件颜色设置为其他颜色。 (这很好,但是是可选的。)
我一直在将脚本与Google的示例以及在此站点上找到的一些答案结合在一起,但没有一个能满足我的要求。我还启用了Google高级服务(https://developers.google.com/apps-script/guides/services/advanced),因为我读到问题可能出在Google API权限中,但是启用该功能已经过了几个小时,并且仍然无法正常工作。我不确定这是否有所作为。
我认为这很接近,但是它返回404错误,我不知道为什么。
function createEvent() {
var vSS = SpreadsheetApp.getActiveSpreadsheet();
var vS = vSS.getActiveSheet();
var vEventName = vS.getRange("M5").getValue();
var start = vS.getRange("M6").getValue();
var end = vS.getRange("H3").getValue();
var calendar = CalendarApp.getCalendarById(
'example@gmail.com');
var event = calendar.createEvent; {vEventName;
new Date(start);
new Date(end);
attendees: [
{email: 'example@example.com'},
{email: 'example@example.com'}
];
colorId: 3
};
event = Calendar.Events.insert(event, calendar);
Logger.log('Event ID: ' + event.id);
}
这会成功在我的日历上创建一个活动,但不会添加邀请对象,创建提醒或更改颜色。 (在这里找到:Google Apps Script - Creating Calendar Events)
function createEvent() {
var vSS = SpreadsheetApp.getActiveSpreadsheet();
var vS = vSS.getActiveSheet();
var vStartDate = vS.getRange("M5").getValue();
var vEndDate = vS.getRange("M6").getValue();
var vEventName = vS.getRange("H3").getValue();
var calendar = CalendarApp.getCalendarById(
'example@gmail.com');
var event = calendar.createEvent(vEventName,
new Date(vStartDate),
new Date(vEndDate));
Logger.log('Event ID: ' + event.getId());
}
我们将不胜感激,特别是如果您能够添加一些有关代码部分工作方式的“ //”说明,则将非常感谢。我是剧本新手,想自学。感谢您的光临!
答案 0 :(得分:0)
考虑以下代码:
function createEvent() {
var vSS = SpreadsheetApp.getActiveSpreadsheet();
var vS = vSS.getActiveSheet();
var vEventName = vS.getRange("M5").getValue();
// M6 and H3 cells should contain valid dates
var start = vS.getRange("M6").getValue();
var end = vS.getRange("H3").getValue();
var calendar = CalendarApp.getCalendarById('example@gmail.com');
// Creating event with options (guests list)
var event = calendar.createEvent(vEventName, start, end, {
// a comma-separated list of email addresses that should be added as guests
guests: 'guest1@gmail.com,guest2@mail.ru',
sendInvites: true
});
// Set desired color to the created event
event.setColor(CalendarApp.EventColor.MAUVE);
Logger.log('Event ID: ' + event.id);
}
我们将creating event with options与随后的事件着色一起使用。它对我有用(电子邮件已更改)。