I've created a script which loops through each google sheet row and creates a calendar event if the background on a cell in column 5 is = dark yellow 1.
function CheckDocument() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet1=ss.getSheetByName('Sheet1');
var tasksApproaching = ""; // list of items of approaching overdue tasks
var tasksOverdue = ""; // list of items that are overdue
var tasksApproachingArr = []; // array of approaching overdue tasks
var tasksOverdueArr = []; // array of overdue tasks
var timeRemaining = []; // array of time values (today - refreshdate) example (3/5/21 - 3/2/21 = 3 days)
var calendarID = sheet2.getRange(6,2).getValue(); //obtain calendarID
var eventCal = CalendarApp.getCalendarById(calendarID); //set object of calendarID
for (var i=3;i<n+1;i++){ //loop through sheet, add tasks to arrays if it meets conditional formatting color criteria
var taskRefreshDate = sheet1.getRange(i,5).getValue();
var background = sheet1.getRange(i,5).getBackground();
if (background == "#f1c232"){ //dark yellow 1 background color
calendarTask = sheet1.getRange(i,1).getValue(); //set title for calendar event creation
tasksApproachingArr.push(sheet1.getRange(i,1).getValue()); //send task name to array
timeRemainingMils = taskRefreshDate.getTime() - today; //Milliseconds of time between refresh date and today
timeRemaining.push(Math.floor(timeRemainingMils/(86400 * 1000))+1); //Convert milliseconds to # days
if(sheet1.getRange(i,9).getValue()==""){
eventCal.createAllDayEvent(calendarTask, taskRefreshDate, {
description: calendarTask
});
sheet1.getRange(i,9).setValue("Yes");
}
} else if(background == "#e06666") { //light red 1 background
tasksOverdueArr.push(sheet1.getRange(i,1).getValue());
} else if(sheet1.getRange(i,9).getValue()=="Yes"){
sheet1.getRange(i,9).setValue("");
}
}
}
My objective is to remove those events from my calendar if the background is updated to dark green 1.
var startTime = new Date(2021,1,1,0,0,0);
var endTime = new Date(2021,12,31,0,0,0);
var events = eventCal.getEvents(startTime,endTime);
for (var e=0; e<events.length;e++){
eventStartTime = events[e].getStartTime();
eventTitle = events[e].getTitle();
for (var i=3;i<n+1;i++){
if((eventStartTime == sheet1.getRange(i,5).getValue()) && (eventTitle == sheet1.getRange(i,1).getValue()) && (sheet1.getRange(i,5).getBackground()=="#6aa84f")){
events[e].deleteEvent();
}
}
}
I can successfully create the calendar events, however, when I update the spreadsheet by changing one of the cells in column 5 from dark yellow to dark green, the event still remains on my calendar. Any idea as to what I'm missing? Thanks.