【发布时间】:2022-01-13 22:09:04
【问题描述】:
我有以下代码从我的谷歌日历中删除在谷歌表格中标记为Pending Removal 的事件。此代码中删除单个事件的部分工作得很好,但我需要对其进行调整以删除重复事件。现在它只删除重复事件系列中的第一个事件。
注意:事件在 Column E 或 ```x[4]`` 中表示为待删除。
function calendarRemove() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var dataSheet = ss.getSheetByName('Events Calendar')
var settingsSheet = ss.getSheetByName('Calendar Settings');
var calendarId = 'calendarID';
var eventCal = CalendarApp.getCalendarById(calendarId);
var eventArray = dataSheet.getRange('A2:H').getDisplayValues();
for (x = 0; x < eventArray.length; x++) {
var event = eventArray[x];
var eventName = event[1];
var eventDate = new Date(event[0]);
var timeZone = event[6];
var startTime = new Date(`${event[0]} ${event[2]} ${timeZone}`);
var endTime = new Date(`${event[0]} ${event[3]} ${timeZone}`);
var status = event[4]; // Used in the following comparison expression
if (status === 'Pending Removal') {
var returnedEvents = eventCal.getEventsForDay(eventDate, {search: eventName});
for (i = 0; i < returnedEvents.length; i++) {
var toRemove = returnedEvents[i];
if (toRemove.isRecurringEvent) {
toRemove.deleteEventSeries();
} else { toRemove.deleteEvent(); }
eventArray[x][4] = 'Removed'; // Modifying the status value from "Pending Removal" to "Removed"
}
}
}
dataSheet.getRange('A2:H').setValues(eventArray); // Overwrite the source data with the modified array
}
【问题讨论】:
标签: javascript google-apps-script google-sheets google-calendar-api