google-apps-script - 如何在 Google Apps 脚本中修复此脚本以创建带有邀请的日历活动?
问题描述
我将一个脚本链接到一个名为“发送到日历”的按钮,该按钮将位于我的工作表中的每张纸上。我希望脚本:
1)在谷歌日历上创建一个新事件,其名称和日期基于按钮所在工作表上的信息(每张工作表不同的数据,都位于相同的单元格地址)。
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 脚本 - 创建日历事件)
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());
}
任何帮助表示赞赏,特别是如果您能够添加一些关于代码部分如何工作的“//”解释。我是脚本新手,并试图自学。感谢您的关注!
解决方案
考虑以下代码:
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);
}
我们使用了带有选项的创建事件以及随后的事件着色。它对我有用(电子邮件已更改)。
推荐阅读
- c# - 流畅地从一个窗口切换到另一个窗口
- javascript - 在 2 socket.on(event) 上获取不同的套接字 id
- javascript - Javascript - 平方距离表现不佳,为什么?
- flutter - 将 SingleChildScrollView 放在 Column 上方时不起作用
- python - 如何使用 Scopus API 和 Python 搜索特定期刊 ISSN 的所有作者、隶属关系和引文?
- node.js - Mongodb:如果在第一个集合中找不到数据,则在另一个集合中查找
- java - Java 套接字客户端不会停止读取数据
- python - 如何将字典列表(在 json 中)转换为 python 中的对象?
- python - 使用来自 python 的图像以 PDF 格式创建报告
- c++ - Qt与webRTC如何实现