2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ゴミ出しを忘れないようにGASでメール通知を自動化した!

2
Last updated at Posted at 2026-03-11

はじめに

「あ、今日燃えるゴミの日だった……」

ゴミ収集車が去った後に気づく、誰もが経験したことがあるのではないでしょうか。
今回は、そんな失敗を繰り返さないために、Google Apps Script(GAS)を使ったシンプルなゴミ出しリマインダーを自動化してみました。

完成イメージ

ゴミの日に自分のGmailに通知が届きます。
僕の場合は以下のように通知が届きます。

曜日 通知内容
月・木 燃えるゴミの日
ペットボトル・缶の日

環境・前提条件

  • Googleアカウント(無料)
  • Gmail(送受信に使用)
  • Google Apps Script(無料)
  • プログラミングの基礎知識(あると望ましいが、コピペでもOK)

コード

function Rubbish() {
  const now = new Date();
  const day = now.getDay(); // 0:日, 1:月, 2:火, 3:水, 4:木, 5:金, 6:土

  const to = '自分のメールアドレス@gmail.com'; // ← ここを書き換える

  let subject = '';
  let body = '';

  if (day === 1 || day === 4) { // 月曜日または木曜日
    subject = '燃えるゴミの日';
    body = '今日は燃えるゴミの日です。忘れずに出しましょう!';
  } else if (day === 2) { // 火曜日
    subject = 'ペットボトル・缶の日';
    body = 'ペットボトルと缶のゴミを出しましょう!';
  } else {
    return; // ゴミの日ではない → 何もしない
  }

  GmailApp.sendEmail(to, subject, body);
}

コードの解説

new Date().getDay() で今日の曜日を数値で取得します。

戻り値 曜日
0 日曜日
1 月曜日
2 火曜日
3 水曜日
4 木曜日
5 金曜日
6 土曜日

ゴミの日に該当する曜日であれば GmailApp.sendEmail() でメールを送信し、該当しない日は return で何もせず終了します。

注意: ゴミ収集日は地域によって異なります。お住まいの自治体のスケジュールに合わせて if の条件を書き換えてください。

セットアップ手順

1. Google Apps Scriptを開く

https://script.google.com にアクセスし、「新しいプロジェクト」をクリックします。

2. コードを貼り付ける

デフォルトで表示されている function myFunction() {} を削除し、上記のコードを貼り付けます。

'自分のメールアドレス@gmail.com' の部分を自分のGmailアドレスに書き換えてください。

3. 動作確認

メニューから実行したい関数として Rubbish を選択し、「▶ 実行」ボタンを押します。

初回実行時はGmailへのアクセス許可を求めるダイアログが表示されます。「許可」をクリックしてください。

ゴミの日に該当する曜日であれば、メールが届いていることを確認します。

4. トリガーを設定する

毎日自動で動くようにトリガーを設定します。

  1. 左サイドバーの時計アイコン「トリガー」をクリック
  2. 右下の「トリガーを追加」をクリック
  3. 以下のように設定する
項目 設定値
実行する関数 Rubbish
イベントのソース 時間主導型
時間ベースのトリガーのタイプ 日付ベースのタイマー
時刻 ゴミ出し前に届く時間
  1. 「保存」をクリック

これで毎朝指定した時間帯にスクリプトが自動実行されます。ゴミの日以外は何も起こりません。

カスタマイズ例

複数の種類に対応する

function Rubbish() {
  const now = new Date();
  const day = now.getDay();
  const to = '自分のメールアドレス@gmail.com';

  const schedule = {
    1: { subject: '🔥 燃えるゴミの日', body: '燃えるゴミを出しましょう!' },
    3: { subject: '🔥 燃えるゴミの日', body: '燃えるゴミを出しましょう!' },
    2: { subject: '♻️ ペットボトル・缶の日', body: 'ペットボトルと缶を出しましょう!' },
    4: { subject: '📦 段ボール・古紙の日', body: '段ボールと古紙を束ねて出しましょう!' },
  };

  if (schedule[day]) {
    GmailApp.sendEmail(to, schedule[day].subject, schedule[day].body);
  }
}

オブジェクトでスケジュールを管理することで、種類が増えるがシンプルになります。

第◯週のみに対応する(隔週・月1回)

資源ごみなど「第2・第4火曜日のみ」といった収集日にも対応できます。

function getWeekOfMonth(date) {
  const firstDay = new Date(date.getFullYear(), date.getMonth(), 1).getDay();
  return Math.ceil((date.getDate() + firstDay) / 7);
}

function Rubbish() {
  const now = new Date();
  const day = now.getDay();
  const week = getWeekOfMonth(now);
  const to = '自分のメールアドレス@gmail.com';

  // 第2・第4火曜日:資源ごみ
  if (day === 2 && (week === 2 || week === 4)) {
    GmailApp.sendEmail(to, '♻️ 資源ごみの日', '今日は資源ごみの日です!');
  }
}

注意点・ハマりどころ

GASのタイムゾーン設定

GASのデフォルトタイムゾーンがアメリカになっている場合、日本時間とズレてゴミの日判定がおかしくなることがあります。

「プロジェクトの設定」→「タイムゾーン」を Asia/Tokyo に変更してください。

メールが迷惑メールに入る場合

自分のGmailアドレスから自分に送っているため、通常は迷惑メールに振り分けられません。もし入った場合は「迷惑メールではない」と設定してください。(ここ以外とハマりどころです)

まとめ

GASを使えば、わずか数十行のコードで実用的なゴミ出しリマインダーが作れます。

  • 無料
  • サーバー不要
  • 一度設定すれば全自動
  • 地域のルールに合わせてカスタマイズ可能

「ゴミ出しを忘れがち」という地味な悩みをコードで解決するのは、プログラミングの楽しさでもあると再認識できました!ぜひ自分の収集スケジュールに合わせてアレンジしてみてください!

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?