Note the formula in column H, which generates TRUE/FALSE. You can obviously replace this logic with whatever you want.
I set a daily 8am trigger to run this script, which sends notifications for the rows that are marked TRUE:
function sendReminderEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange('B1').setValue("");
SpreadsheetApp.flush();
sheet.getRange('B1').setValue("=TODAY()");
SpreadsheetApp.flush();
var headerrows = 3;
var numColumns = 8;
var subjectColumn = 1; // one-based, i.e. column A is 1, B is 2 etc.
var addressColumn = 2;
var conditionColumn = 8;
var startRow = 1 + headerrows; // First row of data to process
var numRows = sheet.getLastRow()-headerrows; // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, numRows, numColumns);
var data = dataRange.getValues();
for (var i in data) {
var row = data[i];
if (row[conditionColumn-1]) {
var emailAddress = row[addressColumn-1];
var message = 'Reminder: ' + row[subjectColumn-1];
var subject = message;
MailApp.sendEmail(emailAddress, subject, message);
}
}
}
Note the formula in column H, which generates TRUE/FALSE. You can obviously replace this logic with whatever you want.
I set a daily 8am trigger to run this script, which sends notifications for the rows that are marked TRUE: