每个月创建一个没有周末的全天活动

Create an all-day event every month without weekends

我正在尝试让 Google Apps 脚本在每个月的 10 日创建一个名为“发薪日”的活动,但如果 10 日是周六或周日,则必须在最后一天创建该活动10号(星期五)之前的工作日。

到目前为止,这是我设法得到的最接近的:

var start = new Date();  // The event start date
var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
var days = [
  CalendarApp.Weekday.SUNDAY,
  CalendarApp.Weekday.MONDAY,
  CalendarApp.Weekday.TUESDAY,
  CalendarApp.Weekday.WEDNESDAY,
  CalendarApp.Weekday.THURSDAY,
  CalendarApp.Weekday.FRIDAY,
  CalendarApp.Weekday.SATURDAY
];
var weekday = days[start.getDay()];
var monthday = start.getDate();
var mod = monthday % 7 - 1;
var good_days = numbers.slice(monthday-mod, monthday-mod+7)

var recurrence = CalendarApp.newRecurrence();
recurrence.addWeeklyRule().onlyOnWeekday(weekday).onlyOnMonthDays(good_days);

非常感谢任何帮助。

function createNextMonthsTrigger() {
  let d = 10;
  const nmd = new Date(new Date().getFullYear(), new Date().getMonth() + 1, d).getDay();
  if (nmd == 6) {
    d = 9;
  } else if (nmd == 0) {
    d = 8;
  }
  ScriptApp.getProjectTriggers().forEach(t => {
    if (t.getHandlerFunction() == 'createMyEvent') {
      ScriptApp.deleteTrigger(t);
    }
  });
  ScriptApp.newTrigger('createMyEvent').timeBased().onMonthDay(d).atHour(1).create();
}