概要
我が家では、GASを使用して、ごみ捨てのリマインドメールを送信しています。
夜21~22時頃に私と妻宛に「明日のごみは燃やせるごみです。出して良いごみは○○です」みたいなメールが届くようになっています。これに気づいたら、翌日出すゴミの準備をするようにしています。
方法は単純で、Googleカレンダーにゴミの予定日を登録して、それを前日にリマインドしているだけです。ごみの日をすぐに忘れてしまう私にとっては、少し便利なシステムです。
Googleカレンダーへの登録
Googleカレンダーを開いて、「他のカレンダー」の横のプラスマークをクリックしましょう。「新しいカレンダーを作成」をクリックして、「○○市ゴミカレンダー」などと名前を付けて保存しましょう。
あとは、このカレンダーに、お住まいの地域のごみ捨ての情報を登録してください。
ごみの予定を登録する際には、第n○曜日や、毎週○曜日といった登録の仕方ができるので、これを使います。
これで登録が完了すると、以下のようになります。
これで準備は完了です。
カレンダーIDの取得
プログラムにカレンダーを読み込ませるためにカレンダーIDを取得する必要があります。
先ほど作成したカレンダーの横の「…」をクリックし、「設定と共有」を選択します。
「カレンダーの統合」をクリックすると、「カレンダーID」がありますので、これをどこかにキープしてください。
GASのスクリプト
Googleドライブを開いて、スタンドアロン型でスクリプトを書きましょう。
記入するスクリプトは以下の通りです。
function garbage_disposal() {
// 対象のカレンダーID
const calendarId = 'ここにカレンダーIDを入力';
// カレンダーオブジェクト取得
const calendar = CalendarApp.getCalendarById(calendarId);
// 現在日時を取得
const today = new Date();
const tomorrow = new Date(today.getTime() + 24 * 60 * 60 * 1000); //
const tomorrow2 = Utilities.formatDate(tomorrow, "JST", "MM/dd");
if(tomorrow2 =="01/01" || tomorrow2 == "01/02" || tomorrow2=="01/03"){
return
}
// 指定日の予定オブジェクトの配列の0番目を取得
const event = calendar.getEventsForDay(tomorrow)[0];
if (event === undefined) {
Logger.log("No events found.");
}
// 予定が1件以上の場合
else {
let title = event.getTitle();
let body = event.getDescription()
Logger.log(title);
Logger.log(body);
email(title, body);
}
}
function email(title, body) {
GmailApp.sendEmail("私のメールアドレス,妻のメールアドレス", "明日のごみは【" + title + "】です", "明日のごみは" + title + "です\n出して良いごみは\n" + body + "\nです。\n\n※このメールは自動送信です。");
}
トリガー設定
このスクリプトを、毎日22時頃に実行するように設定します。
GASのエディタ画面から、目覚まし時計のマークをクリックして、トリガー画面を開きます。
「トリガーを追加」をクリックして、以下のように設定して、保存をクリックします
これで毎日21~22時頃に、Googleカレンダーの内容が指定したメールアドレスに届くはずです!
この仕組みを応用して、もっと便利な何かを作れないか検討中です。