メニュー

【Google Apps Script】祝日・休日・指定した日にはスクリプト実行をスキップする方法

毎日なにかしらルーティンでスクリプトを走らせているのですが、祝日・休日・指定した日には実行スクリプトをスキップしたいので、その方法をまとめました。

たとえばこういったスクリプトなどが、営業日だけスクリプトが実行されるようになります。

目次

祝日・休日はスクリプトが実行スキップ

function isBusinessDay(date){
  if (date.getDay() == 0 || date.getDay() == 6) {
    return false;
  }
  var calJa = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com');
  if(calJa.getEventsForDay(date).length > 0){
    return false;
  }
  return true;
}

function myFunction() {
  var date = new Date();  
   if(isBusinessDay(date)){
      Logger.log('送信');
    }else{
      Logger.log('休日');
    }
}  

さらに指定した日も実行スキッ

  1. Googleカレンダーを開く
  2. 新しくカレンダーを追加して、スキップしたい日に予定を入れる
  3. カレンダー項目横、スリードットをクリック、「設定と共有」を開いて、カレンダーID(例:hogehoge@group.calendar.google.com)をメモ
  4. 下記のスクリプトを参考に。(カレンダーIDも入力)
function isBusinessDay(date){
  if (date.getDay() == 0 || date.getDay() == 6) {
    return false;
  }
  var calJa = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com');
  if(calJa.getEventsForDay(date).length > 0){
    return false;
  }
  return true;
}

function isSpecifiedDay(date){
  if (date.getDay() == 0 || date.getDay() == 6) {
    return false;
  }
  var calJa = CalendarApp.getCalendarById('hogehoge@group.calendar.google.com');//Google カレンダーID
  if(calJa.getEventsForDay(date).length > 0){
    return false;
  }
  return true;
}

function myFunction() {
  var date = new Date();  
  if(isSpecifiedDay(date)){ 
    if(isBusinessDay(date)){
      Logger.log('送信!');
    }else{
      Logger.log('休日');
    }
  }else{
    Logger.log('指定日休日');
  }
}

まとめ

便利で応用が効くのでメモしておきました。

この記事も読まれてます

目次
閉じる