セットアップ手順書 — 毎朝「今日の予定」を自動でメール通知(GAS入門③)
SHIFT AI WEBINAR「毎朝『今日の予定』が自動で届く。時間主導トリガーを覚える60分」(2026-09-08)配布資料
作るもの: 毎朝きまった時刻に、Googleカレンダーの「今日の予定」をまとめて自分あてにメールで送るツール 所要時間: 約10分/必要なもの: Googleアカウントのみ(無料・インストール不要)
ウェビナー当日に作れなくて大丈夫です。 当日は講師が作るところを見て流れをつかんでいただき、 ご自身の実装はこの手順書を見ながら後日ゆっくりで問題ありません。
ステップ0: 用意するもの(1分)
- Googleアカウント(Gmailが使えていればOK)
- Googleカレンダーに予定がいくつか入っていること(動作確認のため。なくても動きます)
インストールするものも、支払うものも、前回までの参加も必要ありません。
ステップ1: Apps Scriptのプロジェクトを作る(2分)
前回までと開き方が違います。 第1回・第2回は「スプレッドシート → 拡張機能 → Apps Script」で開きました。 今回のツールはスプレッドシートを使わないので、ドライブから単体のスクリプトとして作ります。
- Googleドライブ を開く
- 左上の「+ 新規」→「その他」→「Google Apps Script」をクリック
- 「その他」の中に見つからない場合は「その他」→「アプリを追加」から
Google Apps Scriptを追加してください
- 「その他」の中に見つからない場合は「その他」→「アプリを追加」から
- 新しいタブでエディタが開きます。左上の「無題のプロジェクト」をクリックして、
毎朝の予定メールなど分かる名前に変えておきます
ステップ2: コードを貼り付ける(2分)
- エディタの中央に
function myFunction() { }と書かれたコードがあります。すべて選択して削除します - 配布ファイル
code.gsの中身をすべてコピーして貼り付けます - Ctrl + S(Macは Cmd + S)で保存します
ステップ3: 手動で1回動かす(3分)
まずトリガーなしで、メールが届くかを確かめます。
- エディタ上部の関数選択(プルダウン)で
sendTodayScheduleを選ぶ - ▶ 実行 をクリック
- 初回だけ承認画面が出ます。次の順にクリックしてください
- 「権限を確認」
- 自分のGoogleアカウントを選択
- 「このアプリはGoogleで確認されていません」と出たら → 左下の「詳細」→「(プロジェクト名)に移動(安全ではないページ)」
- 「許可」
- 承認が終わると自動でもう一度実行されます。自分のGmailに
【今日の予定】…というメールが届けば成功です
届かないとき: 迷惑メールフォルダを確認してください。それでもなければ、 エディタ左メニューの「実行数」を開き、赤いエラーが出ていないか見ます(→ 最後の「うまく動かないとき」へ)
ステップ4: 毎朝の自動送信をONにする(1分)
- 関数選択で
createDailyTriggerを選ぶ - ▶ 実行 をクリック(1回だけでOK)
- 左メニューの「トリガー(時計のアイコン)」を開いて、
sendTodayScheduleの時間主導トリガーが1件できていれば完了です
翌朝から、設定した時刻に自動でメールが届きます。
設定を変えたいとき
コード冒頭の「設定」の3行を書き換えて、保存 → createDailyTrigger をもう一度実行します。
| 変えたいこと | 書き換える場所 | 例 |
|---|---|---|
| 送る時刻 | const SEND_HOUR = 7; |
8 にすると毎朝8時台 |
| 送り先 | const MAIL_TO = ''; |
'you@example.com' で他の人にも送れる |
| 件名の頭 | const SUBJECT_PREFIX = '【今日の予定】'; |
'【本日のスケジュール】' など |
時刻は分単位で指定できません。
SEND_HOUR = 7なら「7時〜8時のあいだ」に届きます。 これはGASの時間主導トリガーの仕様です。
止めたいとき
- 関数選択で
deleteDailyTriggerを選んで ▶ 実行 - または左メニューの「トリガー」から、該当行の「⋮」→「トリガーを削除」
うまく動かないとき トップ3
| 症状 | 原因 | 直し方 |
|---|---|---|
| メールが届かない | 承認が完了していない | もう一度 sendTodaySchedule を ▶ 実行し、承認画面を最後(「許可」)まで進める |
| 予定があるのに「予定がありません」 | 予定が別のカレンダーに入っている | このツールは「デフォルトのカレンダー」だけを見ます。マイカレンダー本体に予定があるか確認する |
| 時刻がずれる/日付がおかしい | プロジェクトのタイムゾーン | エディタ左下「プロジェクトの設定」→ タイムゾーンを「(GMT+09:00) 日本標準時」にする |
応用アイデア
- 予定が0件の日は送らない:
buildMailBodyを呼ぶ前にif (events.length === 0) return;を入れる - 前日の夜に翌日分を送る:
getEventsForDay(today)のtodayを翌日の日付にする - チームに共有する:
MAIL_TOをチームのメーリングリストにする(※他人の予定を勝手に送らないよう注意) - Googleチャット/LINEに飛ばす: 第4回以降で扱う Webhook を使うと、メール以外にも送れます
次回: 9/22(水)GAS入門④「Discord/Webhook連携」(シリーズ第4回・予定) ※日程はSHIFT AI会員サイトのイベントページでご確認ください