この記事はQiita Engineer Festa 2023 参加記事です。
Qiita運営さんのこの記事誰得? 私しか得しないニッチな技術で記事投稿!企画への参加記事になります。
この記事で書くこと
いつも飲み過ぎちゃう自分に対して、シラフの自分がしっかり注意してくれるようにしてみたので、そのお話です。
この記事で書かないこと
注意された結果、どうなったのか?は書きません。
そんな注意、アルコールの前では無力です。
いつも飲み過ぎちゃうから、飲みすぎないようにメールで注意してくれるようにしたお話。
準備
用意するもの
- Googleアカウント
使うもの
- Googleカレンダー
- Google Apps Script(通称GAS)
仕組み
毎朝、その日のカレンダーを取得して飲みの予定が入っていたら、飲み過ぎちゃダメよ!というメールを送る。
実際に作ってみる
GASを書いてみよう。
ここから作っていきます。
実際のGASはこんな感じです。
function sendAlertMail() {
// 自分のカレンダー
const myCalendar = 'jibun_no_mail@example.com';
// カレンダーオブジェクト取得
const calendarData = CalendarApp.getCalendarById(myCalendar);
// 今日の日付を取得
const today = new Date();
// 今日の予定を配列で取得
const schedules = calendarData.getEventsForDay(today);
// メールを送信するかフラグ
let sendMailFlg = false;
// 予定がある場合のみ実行
if (schedules.length != 0) {
// 予定の件数だけ実行
for (schedule in schedules) {
// 予定の件名に飲み会っぽい文字がある時はメールを送る
if(schedules[schedule].getTitle().includes('飲') || schedules[schedule].getTitle().includes('🍺') || schedules[schedule].getTitle().includes('🍻') || schedules[schedule].getTitle().includes('会食')){
sendMailFlg = true;
}
}
}
// 飲み会がある時はメールを送信する。
if(sendMailFlg){
// メール件名
const subject = '【要注意】本日は飲み会があります。';
// 送付先メールアドレス
const address = 'jibun_no_mail@example.com'
// メール本文テンプレート
const body = `本日は飲み会があります。
あなたは、過去何回も飲みすぎて失敗しています。
お酒は程々に`;
// メール送信
GmailApp.sendEmail(address, subject, body);
}
}
トリガーを設定してみよう
設定は、こんな感じ。
毎朝、AM9時から10時の間にメールを飛ぶように設定。
とりあえず手動で動かしてみた
できた
まとめ
勢いで書きました。
GASは、もっときれいに書けると思います。
というよりも、そもそもこんな通知が来なくても、お酒とは正しく付き合いましょう。