なんか今日、人少ないな...
コロナ?
インフルエンザ??
今日って「振替休日」じゃん!
土日以外の休日をslackへ通知したい
土日が休みなのは分かりきっているので、**平日(月火水木金)だけど「休み!」**な日を通知して欲しい。
必要な機能は
- 日本の祝日を取得する
- 毎日定期起動する
- slackへ投稿する
です。
日本の祝日を取得する
Googleカレンダーから「日本の祝日」を取得します。
function isPublicHoliday() {
var today = new Date();
var calendarName = "日本の祝日";
var calendar = CalendarApp.getCalendarByName(calendarName)
var todayEvents = calendar.getEventsForDay(today);
if(todayEvents.length > 0) {
return true;
}
return false;
}
週末(土日)も休みなので、カレンダーから取得します
- 土曜日 = 6
- 日曜日 = 0
function isWeekend() {
var today = new Date();
var weekInt = today.getDate();
if(weekInt == 0 || weekInt == 6){
return true;
}
return false;
}
この2つの関数を利用すると
**平日(月火水木金)だけど「休み!」**な日は
「祝日である」かつ「週末でない」として表現できます。
function isWeekdaysButHolidays() {
var publicHoliday = isPublicHoliday();
var weekend = isWeekend();
if(publicHoliday && !weekend){
return true;
}
return false;
}
毎日定期起動する
これはgasのcron機能を使いましょう。
slackへ投稿する
slackのwebhookトークンが別途必要です。
function postToSlack() {
postUrl = '#' //投稿先slackのwebhookトークン
var message = '平日だけど、休み!';
var jsonData = {
'text': message
};
var payload = JSON.stringify(jsonData);
var options = {
'method': 'post',
'contentType': 'application/json',
'payload': payload
};
UrlFetchApp.fetch(postUrl, options);
}
まとめ
この通知プログラムにより
「月曜朝にバタバタして準備したら、会社は休みだった」
という事態は避けられると思います。