google-apps-script - 防止来自 Apps 脚本的重复日历事件
问题描述
关于如何防止脚本在每次运行时继续添加重复的日历事件,我已经阅读了 SO 和其他地方的许多帖子。到目前为止,我在阻止重复项方面一直没有成功。
这是我的代码:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [ {name: "Push to Calendar", functionName: "sendCalendarEvents"} ];
ss.addMenu("Custom Menu", menuEntries);
}
function sendCalendarEvents() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var calendarId = spreadsheet.getRange('G1').getValue();
var eventCal = CalendarApp.getCalendarById(calendarId);
var lastRow = spreadsheet.getLastRow();
var count = spreadsheet.getRange("A3:E"+lastRow+"").getValues();//five columns
var minutesBefore = 462
for (x=0; x<count.length; x++) {
var row = count[x];
var title = row[0];
var startTime = row[1];
var endTime = row[2];
var guests = row[3];
var description = row[4];
var location = row[5];
var id = row[7];no row[7]
var options = {
'location': location,
'description': description,
'guests':guests +',',
'sendInvites': 'True',
}
if(!id) {
var event = eventCal.createAllDayEvent(title, startTime, options);
var newEventId = event.getId();
spreadsheet.getRange(x+3,7).setValue('yes');
spreadsheet.getRange(x+3,8).setValue(newEventId);
event.addEmailReminder(minutesBefore);
Logger.log('Event ID: ' + event.getId());
这是我的电子表格(带有“测试”数据)
我还尝试了“if”语句的变体(例如 if (row[x][7] != 'yes')...create the event),但这也没有奏效。
有什么帮助吗?解决重复问题后,我希望能够让用户在电子表格中编辑事件的日期或标题等,并删除现有事件,然后是一个新事件(具有更新的标题/日期)创建...如果可能的话。
感谢您的任何帮助,您可以提供!
解决方案
您的数据中只有五列。没有行[7]
var count = spreadsheet.getRange("A3:E"+lastRow+"").getValues();//only five columns in your data
var minutesBefore = 462
for (x=0; x<count.length; x++) {
var row = count[x];
var title = row[0];
var startTime = row[1];
var endTime = row[2];
var guests = row[3];
var description = row[4];
var location = row[5];
var id = row[7];//Problem is right here...there is no row[7];
推荐阅读
- excel - 在服务器上运行 VBA 脚本时路径中有额外空间
- cassandra - Cassandra CQL - 在时间戳之前获取自 1 以来的记录
- benchmarking - 如何对 Raku 进行基准测试?
- java - 使用 java 检测代理运行应用程序时生成的 WebSphere Liberty 代码转储
- c# - Visual Studio Class not found 异常和命名空间未找到
- bash - 如何将 bash 命令行参数传递给 sed -np?
- c# - 根据参数更新表达式
- oracle - 找不到顶点应用程序页面
- c# - C# SQL 传递变量进行查询
- java - 圣杯。将文件上传到临时文件夹并在 gsp 中显示