一緒に手を動かしていただくのは自由です。ただし追いつけなくて大丈夫。
コードも手順書もあとで配りますので、ご自身の実装は後日でかまいません。
GAS入門シリーズ。毎回ちがう「自動化の型」を1つずつ覚えていきます。
各回は独立した内容。第1回・第2回に出ていなくても、今日だけで完結します。
テーマは「時間主導トリガー」。決まった時刻に、勝手に動く仕組みです。
気になったこと、聞き逃したこと、どんなことでも気軽にどうぞ。
文章にしなくてOK。絵文字・スタンプのリアクションだけでも十分です。
あとから見返せます。その場で全部わからなくて大丈夫です。
業務自動化エキスパート/書籍著者。
GoogleのツールとGAS(Google Apps Script)で「手作業をなくす」業務自動化をテーマに、セミナー登壇や書籍の執筆をしています。
本シリーズでは、毎回1時間で自動化の型を1つずつお見せします。
カレンダーやGmailを、認証まわりの面倒なしにそのまま操作できます。
「時刻が来たら」「フォームが届いたら」——自分がPCを開いていなくても動きます。今日はここ。
Googleアカウントさえあれば追加費用なし。JavaScriptベースの文法です。

時間主導トリガーが、決まった時刻にスクリプトを呼び出します。
カレンダーから、その日の予定をまとめて取得します。
読みやすい文章に組み立てて、自分あてにメールします。
| 回 | 起動のきっかけ | どんなときに動くか |
|---|---|---|
| 第1回 | onFormSubmit | フォームに回答が届いたとき |
| 第2回 | onOpen | スプレッドシートを開いたとき |
| 第3回(今日) | 時間主導トリガー | 決まった時刻が来たとき——人が何もしなくても動く |
function sendTodaySchedule() {
const today = new Date();
const cal = CalendarApp.getDefaultCalendar();
// ① 今日の予定を取る
const events = cal.getEventsForDay(today);
// ② 本文を組み立てる
const body = buildMailBody(today, events);
// ③ 自分あてに送る
GmailApp.sendEmail(to, subject, body);
}



function createDailyTrigger() {
deleteDailyTrigger(); // 二重登録を防ぐ
ScriptApp.newTrigger('sendTodaySchedule')
.timeBased()
.atHour(7) // 7時台に実行
.everyDays(1) // 毎日
.create();
}

| 症状 | よくある原因 | 直し方 |
|---|---|---|
| メールが届かない | 承認が最後まで終わっていない | もう一度実行し、「詳細」→「移動」→「許可」まで進める |
| 「予定なし」になる | 予定が別のカレンダーにある | このツールはデフォルトのカレンダーだけを見ます |
| 日付・時刻がずれる | プロジェクトのタイムゾーン | 「プロジェクトの設定」→ 日本標準時(GMT+09:00)に変更 |
1行足すだけ。通知が多すぎるとかえって読まなくなります。
日付を1日ずらすだけ。「明日の準備」に使えます。
次回以降のWebhookを覚えると、Discord・Slack・LINEにも送れます。
決まった時刻に、人が何もしなくても動かせる
コードと手順書は配布します。実装は後日でOK
次回・第4回はDiscord連携(Webhook)。はじめて事前準備が要る回です