事件没有被添加到日历中



我有事件的名称和结束日期(没有开始日期)在谷歌表格。

列B列C结束日期。

脚本显示执行成功,但是事件没有被添加到Google Calendar中。

我是所有者,有完全的权利/许可。

脚本如下:

function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('Sync to Calendar');
var item = menu.addItem('Commit', 'syncCalendar');
item.addToUi();
}
function calendar() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var eventCal = CalendarApp.getCalendarById("calendarid**");
var name = spreadsheet.getRange('B3:B250').getValue();
var start = new Date(spreadsheet.getRange('C3:C250').getValue()).getTime();
var end =  new Date(spreadsheet.getRange('C3:C250').getValue()).getTime();
eventCal.createEvent(name,new Date(start),new Date(end));
Logger.log('Reminder is added to your calendar');
}

必须按如下方式创建一个循环

const cal = '################@gmail.com'
function calendar() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var eventCal = CalendarApp.getCalendarById(cal);
var lastRow = spreadsheet.getLastRow()
var name = spreadsheet.getRange('B3:B' + lastRow).getValues().flat();
var start = spreadsheet.getRange('C3:C' + lastRow).getValues().flat();
var end = spreadsheet.getRange('C3:C' + lastRow).getValues().flat();
name.forEach((n, i) => {
try {
var id = eventCal.createEvent(n, new Date(start[i].getTime()), new Date(end[i].getTime())).getId();
console.log(id)
} catch (e) {
console.log(i + ' ' + e)
}
})
Logger.log('Reminder is added to your calendar');
}

平()

forEach ()

在@Mike Steelson的帮助下,这个脚本正在工作。

但是,当您再次运行代码时,它会在日历中创建重复项。

有办法避免这种情况吗?

const cal = 'yourcalendarid@group.calendar.google.com'
function calendar() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var eventCal = CalendarApp.getCalendarById(cal);
var lastRow = spreadsheet.getLastRow()
var name = spreadsheet.getRange('B3:B' + lastRow).getValues().flat();
var start = spreadsheet.getRange('C3:C' + lastRow).getValues().flat();
var end = spreadsheet.getRange('C3:C' + lastRow).getValues().flat();
name.forEach((n, i) => {
try {
var id = eventCal.createEvent(n, new Date(start[i].getTime()), new Date(end[i].getTime())).getId();
console.log(id)
} catch (e) {
console.log(i + ' ' + e)
}
})
Logger.log('Reminder is added to your calendar');
}

最新更新