かずきち。の日記

サーバサイドエンジニアのつぶやき

【福利厚生】日本の祝祭日を自動取得して、休暇を促すGoogleチャットで作る【労務管理】

労務管理とはなにか?

www.smbc-card.com
引用:
https://www.smbc-card.com/hojin/magazine/bizi-dora/personnel/labor-management.jsp#:~:text=%E5%8A%B4%E5%8B%99%E7%AE%A1%E7%90%86%E3%81%A8%E3%81%AF%E3%80%81%E5%BE%93%E6%A5%AD,%E6%A5%AD%E5%8B%99%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82

労務管理とは、従業員の賃金や福利厚生など、労働に関することを管理する仕事のことです。労働時間の管理、賃金システムの見直し・管理などが業務に含まれます。労務管理と比較される人事管理は、従業員の雇用から解雇までの管理を行い、人事考課や採用、従業員の異動・配置などの業務が含まれる。
なので、人事部は有給の習得などを奨励したりするのだが、手作業で「有給取りましょう」などとやっていては日が暮れる。
ですので、日本の祝祭日カレンダーを取得してリフレッシュを促すbotを作っていく。

まずGoogleは世界各国の国民の祝日を公開しており、そのカレンダーを取得する。

support.google.com

Googleでは日本の国民の祝日アメリカの国民の祝日などのデータを持っていますのでプログラムで次の日が休みかどうかを取得します。

function getCalenderEvent() {
  //アクセス可能なカレンダーのIDを指定して、Googleカレンダーを取得する
  let myCalendar = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com');
  //Googleカレンダーから取得するイベントの開始日(今日)を設定する
  let startDate = new Date();
  //Googleカレンダーから取得するイベントの終了日(1日後)を設定する
  let endDate = new Date();
  endDate.setDate(startDate.getDate() + 1);
  //開始日~終了日に存在するGoogleカレンダーのイベントを取得する
  let myEvent = myCalendar.getEvents(startDate, endDate);
  //forループの処理で取得したイベントの件名をログ出力する
  for(let i = 0 ; i < myEvent.length ; i++ ){
    console.log(myEvent[i].getTitle());
    
    //console.log(myEvent[i].getAllDayStartDate());
    // Date型データをフォーマットに変更していく
    var todayStr = Utilities.formatDate(myEvent[i].getAllDayStartDate(), 'JST', 'yyyy-MM-dd');
    // フォーマットした日時を実行ログに表示
    console.log(todayStr);
    var url = "発言したいGoogleチャットのトークンに置き換える";
  
    var message = {'text': todayStr+"は"+myEvent[i].getTitle()+"です。リフレッシュして素敵な祝日をお過ごしください。"};
    var options = {
      'method': 'POST',
      'headers': {
        'Content-Type': 'application/json; charset=UTF-8'
      } ,
      'payload':JSON.stringify(message)
    };
  
  UrlFetchApp.fetch(url, options);
  }

32行のコードで片を付けました。

興味ある人はどうぞ。