I was able to get it to work once by using a simple function that just sent me an email with a short message. I have since not been able to get it to work to send me the longer email based off the spreadsheet.
Here is the entire code I was trying to run, that did not send me anything at 0500 today.
function createTimeTrigger3() {
try{
var SOD_Briefing_TriggerMonday = ScriptApp.newTrigger("sendBriefingByEmail2")
.timeBased()
.atHour(5)
.nearMinute(15)
.onWeekDay(ScriptApp.WeekDay.MONDAY)
.create();
var SOD_Briefing_TriggerTuesday = ScriptApp.newTrigger("sendBriefingByEmail2")
.timeBased()
.atHour(5)
.nearMinute(15)
.onWeekDay(ScriptApp.WeekDay.TUESDAY)
.create();
var SOD_Briefing_TriggerWednesday = ScriptApp.newTrigger("sendBriefingByEmail2")
.timeBased()
.atHour(5)
.nearMinute(15)
.onWeekDay(ScriptApp.WeekDay.WEDNESDAY)
.create();
var SOD_Briefing_TriggerThursday = ScriptApp.newTrigger("sendBriefingByEmail2")
.timeBased()
.atHour(5)
.nearMinute(15)
.onWeekDay(ScriptApp.WeekDay.THURSDAY)
.create();
var SOD_Briefing_TriggerFriday = ScriptApp.newTrigger("sendBriefingByEmail2")
.timeBased()
.atHour(5)
.nearMinute(15)
.onWeekDay(ScriptApp.WeekDay.FRIDAY)
.create();
}
catch(err)
{
MailApp.sendEmail("************.gov", "there was a problem with the SOD trigger", err.message);
}
Logger.log("Unique ID of SOD_Briefing_TriggerMonday: " + SOD_Briefing_TriggerMonday.getUniqueId());
Logger.log("Unique ID of SOD_Briefing_TriggerTuesday: " + SOD_Briefing_TriggerTuesday.getUniqueId());
Logger.log("Unique ID of SOD_Briefing_TriggerWednesday: " + SOD_Briefing_TriggerWednesday.getUniqueId());
Logger.log("Unique ID of SOD_Briefing_TriggerThursday: " + SOD_Briefing_TriggerThursday.getUniqueId());
Logger.log("Unique ID of SOD_Briefing_TriggerFriday: " + SOD_Briefing_TriggerFriday.getUniqueId());
Logger.log("Unique ID of SOD_Briefing_TriggerToday: " + SOD_Briefing_TriggerToday.getUniqueId());
}
function sendBriefingByEmail2() {
var email = SpreadsheetApp.openById("***********").getSheetByName("Email Roster").getRange(4, 3).getValue()
+SpreadsheetApp.openById("***************").getSheetByName("Email Roster").getRange(5, 3).getValue()
+SpreadsheetApp.openById("***************").getSheetByName("Email Roster").getRange(6, 3).getValue()
+SpreadsheetApp.openById("***************").getSheetByName("Email Roster").getRange(7, 3).getValue()
+SpreadsheetApp.openById("*************").getSheetByName("Email Roster").getRange(8, 3).getValue()
+SpreadsheetApp.openById("*********************").getSheetByName("Email Roster").getRange(9, 3).getValue()
+SpreadsheetApp.openById("**********************").getSheetByName("Email Roster").getRange(10, 3).getValue()
+SpreadsheetApp.openById("**************").getSheetByName("Email Roster").getRange(11, 3).getValue()
+SpreadsheetApp.openById("**********************").getSheetByName("Email Roster").getRange(12, 3).getValue();
if (SpreadsheetApp.openById("**********************").getSheetByName("Previous_24_Hours").getRange(2, 1).isBlank()){
try {
MailApp.sendEmail(email, "No SOD Daily Briefing to Report Today", "There were no daily briefing entries submitted for SOD in the previous 24 hours.");
}
catch(err){
MailApp.sendEmail("*************.gov", "there was a problem sending the SOD BLANK briefing in the AM", err.message);
}
}
else {
try {
var subject = "Special Operations Bureau Daily Briefing";
var row = 2;
var email24sheet = SpreadsheetApp.openById("*********************").getSheetByName("Previous_24_Hours");
var LastRow = SpreadsheetApp.openById("******************").getSheetByName("Previous_24_Hours").getLastRow();
var msgHtml = ""
do {
msgHtml = msgHtml + "<br><hr><br>"
+"<p>"+"<b>"+"Unit: "+"</b>"+email24sheet.getRange(row, 11).getValue()+"</p>"
+"<p>"+"<b>"+"Incident: "+"</b>"+email24sheet.getRange(row, 1).getValue()+"</p>"
+"<p>"+"<b>"+"Date / Time: "+"</b>"+email24sheet.getRange(row, 2).getValue()+ " @ " + email24sheet.getRange(row, 3).getValue()+ " hours"+"</p>"
+"<p>"+"<b>"+"Location: " + "</b>" +email24sheet.getRange(row, 4).getValue()+"</p>"
+"<p>"+"<b>"+"Trooper: "+"</b>"+email24sheet.getRange(row, 5).getValue()+"</p>"
+"<p>"+"<b>"+"Assisting Trooper(s): "+"</b>"+email24sheet.getRange(row, 6).getValue()+"</p>"
+"<p>"+"<b>"+"Suspect: "+"</b>"+email24sheet.getRange(row, 7).getValue()+"</p>"
+"<p>"+"<b>"+"Charges: "+"</b>"+email24sheet.getRange(row, 8).getValue()+"</p>"
+"<p>"+"<b>"+"Yield: "+"</b>"+email24sheet.getRange(row, 9).getValue()+"</p>"
+"<p>"+"<b>"+"Synopsis: "+"</b>"+email24sheet.getRange(row, 10).getValue()+"</p>";
row = row + 1;
} while(row < LastRow+1);
var msgHeader = "<p>"+"<H1>"+"<P ALIGN=Center>"+"Special Operations Bureau Daily Briefing"+"</H1>"+"</p>"
+"<p>"+"<H2>"+"<P ALIGN=Center>"+"Created: " + new Date().toLocaleDateString()+"</H2>"+"</p>";
var msgFooter = "<p>"+"<i>"+"<P ALIGN=Center>"+"This message was automatically generated using data submitted electronically from the Spec Ops Bureau website and / or form. For errors or suggestions for improvements, email **************.gov "+"</i>"+"</p>";
var msgPlain = msgHtml.replace(/(<([^>]+)>)/ig, ""); // clear html tags for plain mail
MailApp.sendEmail(email, subject, msgPlain, { htmlBody: msgHeader + msgHtml + msgFooter });
SpreadsheetApp.openById("*************").getSheetByName("Previous_24_Hours").getRange("Previous_24_Data").clearContent(); //clears the incidents that were just sent
}
catch(err){
MailApp.sendEmail("**************.gov", "there was a problem sending the SOD briefing in the AM", err.message);
}
}
}
I was getting nothing at 0500. I then tried to make more triggers just to test the trigger builder and try different things to see what I could make work.
I used the command I found from the google script site (https://developers.google.com/apps-script/managing_triggers_programmatically) to delete the triggers:
// Delete a trigger with the given unique ID
function deleteTrigger(triggerId) {
// Locate a trigger by unique ID
var allTriggers = ScriptApp.getScriptTriggers();
// Loop over all triggers
for(var i=0; i < allTriggers.length; i++) {
if (allTriggers[i].getUniqueId() == triggerId) {
// Found the trigger and now delete it
ScriptApp.deleteTrigger(allTriggers[i]);
break;
}
}
}
But now I am getting:
This script has too many triggers. Triggers must be deleted from the
script before more can be added.
and
Already setting up a recurring clock trigger.
as error messages emailed to me when I try to run anything.
Should I instead do a different function for each day of the week's trigger?