Multi-Day Booking
little trigger-installer
/**
* Rebuild all installable triggers for this spreadsheet project.
* Safe to run manually from Apps Script.
*/
function createInstallableTriggers() {
const ss = SpreadsheetApp.getActive();
// Remove existing triggers for this project first,
// so we don't end up with duplicates.
const triggers = ScriptApp.getProjectTriggers();
for (const trigger of triggers) {
ScriptApp.deleteTrigger(trigger);
}
// Spreadsheet on edit trigger
ScriptApp.newTrigger('onApprovalEdit')
.forSpreadsheet(ss)
.onEdit()
.create();
// Form submit trigger
ScriptApp.newTrigger('setPendingOnFormSubmit')
.forSpreadsheet(ss)
.onFormSubmit()
.create();
Logger.log('Installable triggers recreated successfully.');
}
Checker Function
/**
* Lists current project triggers in the log.
*/
function listProjectTriggers() {
const triggers = ScriptApp.getProjectTriggers();
if (triggers.length === 0) {
Logger.log('No project triggers found.');
return;
}
triggers.forEach((t, i) => {
Logger.log(
'%s) Function: %s | Event: %s | Source: %s',
i + 1,
t.getHandlerFunction(),
t.getEventType(),
t.getTriggerSource()
);
});
}