Google Apps Scriptでスケジュールを自動メール送信する方法

Google Apps Script(GAS)で、作業スケジュールを毎週月曜の朝にメール自動送信するスクリプトを作成したのでブログに残します。

Google スプレッドシートを新規作成

Google ドライブにて Google スプレッドシートを新規作成する。

googleappsscript-image1

Google Spread Sheet を開く

ダブルクリックし Google Spread Sheet を開きます。

googleappsscript-image2

Java Script 編集画面を開く

ツール → スクリプトエディタにて Java Script エディタを開きます。

ロジック組む

googleappsscript-image3

実装内容

function scheduleMail() {

    // 本番イベントのカレンダーオブジェクト取得
    var cal = CalendarApp.getCalendarById("~~~~~~~~~~~~~~~カレンダーID~~~~~~~~~~~~~~~");
    var calName = cal.getName();

    // 一週間の予定
    var dtS = new Date();
    var dtE = new Date();
    dtS = new Date(dtS.getFullYear(),dtS.getMonth(),dtS.getDate(),0,0,0);
    dtE = new Date(dtE.getFullYear(),dtE.getMonth(),dtE.getDate(),0,0,0);

    dtE.setDate(dtE.getDate() + 7);
    var events = cal.getEvents(dtS,dtE);

    dtE.setDate(dtE.getDate() -1);

    var youbiArr = ['日', '月', '火', '水', '木', '金', '土'];
    var youbiDtS = youbiArr[dtS.getDay()];
    var youbiDtE = youbiArr[dtE.getDay()];

    var honbun = "";

    var kenmei = Utilities.formatDate(dtS,"GMT+09:00","yyyy/MM/dd")+"("+youbiDtS +")" + "~";
    kenmei += Utilities.formatDate(dtE,"GMT+09:00","yyyy/MM/dd")+"("+youbiDtE +")"+ "の" +calName + "予定です";

    var mailto = "~~~~~~~~~~~~~~~宛先メールアドレス~~~~~~~~~~~~~~~"
    var option = {};
    option.from = "~~~~~~~~~~~~~~~送信元メールアドレス~~~~~~~~~~~~~~~";

    if(events.length > 0){
        honbun = Utilities.formatDate(dtS,"GMT+09:00","yyyy/MM/dd")+"("+youbiDtS +")"+ "~"+ Utilities.formatDate(dtE,"GMT+09:00","yyyy/MM/dd")+"("+youbiDtE +")" +calName +  "の予定は下記の通りです"+ "\n\n";

        for(var i=0; i < events.length; i++){
            honbun += Utilities.formatDate(events[i].getStartTime(),"GMT+0900","yyyy年M月d日") ;
            honbun +=  " :";
            honbun += events[i].getTitle() + "\n";
        }

        honbun += "\n" + "カレンダーは以下のURLです" + "\n\n";
        honbun += "~~~~~~~~~~~~~~~カレンダーURL~~~~~~~~~~~~~~~" + "\n\n";

    } else {
        honbun = Utilities.formatDate(dtS,"GMT+09:00","yyyy/MM/dd")+"("+youbiDtS +")"+ "~"+ Utilities.formatDate(dtE,"GMT+09:00","yyyy/MM/dd")+"("+youbiDtE +")" +calName +  "の予定はありません"+ "\n\n";
    }

    GmailApp.sendEmail(mailto, kenmei, honbun,option);

}

テスト

googleappsscript-image4

今週の予定作業が、宛先メールアドレスに送信されていることを確認します。

プロジェクトのトリガー設定

※どのくらいの周期でプログラムを実行させるのか設定します。

googleappsscript-image5

これで毎週月曜日の AM6 時~ 7 時の間に自動でメール送信されます。

だいたい 6 時 20 分台に送信されることが多いです。

 

comments powered by Disqus