Как создать триггер для запуска программы в назначенное время?
Чтобы не терять триггерное время, а оно очень лимитировано для обычных аккаунтов, лучше всего использовать самовоспроизводящийся триггер

/**
 *
 */
function runOnce() {
  trigger_();
}

/**
 *
 */
function trigger_() {
  try {
    triggerAction();
  } catch (error) {
    console.error(error.message, error);
  } finally {
    var hours = 10;
    var minutes = 17;
    var seconds = 56;
    var now = new Date();
    var nextTime = new Date();
    nextTime.setHours(0, 0, 24 * 3600 + hours * 3600 + minutes * 60 + seconds);
    var delta = nextTime.getTime() - now.getTime();
    ScriptApp.newTrigger('trigger_')
      .timeBased()
      .after(delta)
      .create();
  }
}

/**
 *
 */
function triggerAction() {
  console.log("I'm fine");
}

triggerAction - это то, что выполняет ваш скрипт
runOnce - это то, что вы должны запустить один раз при первом запуске вашего триггера. Другие настройки не требуются
trigger_ - это и триггер и конфигурация вашего триггера

Такой триггер выполняется с высокой степенью точности, погрешность часто составляет меньше половины секунды.
1) Создайте поминутный триггер.
2) Внутри функции делайте проверку на время.
const time    = new Date();
const hours   = time.getHours();
const minutes = time.getMinutes();
if ((hours!=21)&&(minutes!=0)){return;};
Могу ли я написать такой триггер, чтобы он запускал программу по проверке накладных даже когда моя таблица у меня не загружена?
Функция запускается сама, таблицу держать открытой не надо.