
GASでGoogleカレンダーのスケジュールを自動通知!Slackと連携してリマインドも完全自動化🚀
💡この文章はAI初心者向けに書いた記事です!
📌 はじめに
Googleカレンダーに登録している予定を毎朝6時にメール&Slackで通知し、1時間前・30分前・10分前にリマインダーを自動送信する方法を解説します!
「予定を忘れてしまう…」「リマインドを手作業でやっている…」そんな方におすすめのGAS(Google Apps Script)を活用した完全自動化スクリプトです!
✅ できること
✔ Googleカレンダーの当日スケジュールを自動取得&通知(メール+Slack)
✔ イベントの1時間前・30分前・10分前にリマインダーを自動送信
✔ SlackのWebhookを使い、リマインドもリアルタイムで通知
✔ GASのトリガーを設定し、一度導入すれば完全自動化!
📌 使い方(導入ステップ)
① Google Apps Script(GAS)のセットアップ
「新しいスクリプト」を作成
以下のコードをコピペ
SlackのWebhook URLを設定
GASのトリガーを設定(毎朝6時のスケジュール通知&リマインダー実行)
📌 GASの完全スクリプト
/*******************************************************
* Googleカレンダーの当日予定を毎朝6時にメール&Slackに通知
* イベント開始の1時間前・30分前・10分前にリマインド!
*******************************************************/
function sendDailySchedule() {
// デフォルトのGoogleカレンダーを取得
var calendar = CalendarApp.getDefaultCalendar();
var today = new Date();
today.setHours(0, 0, 0, 0);
var tomorrow = new Date(today);
tomorrow.setDate(today.getDate() + 1);
// 当日のイベントを取得
var events = calendar.getEvents(today, tomorrow);
var emailMessage = "📅 本日のスケジュール\n\n";
var slackMessage = "*📅 本日のスケジュール*\n\n";
// イベントがない場合
if (events.length === 0) {
emailMessage += "本日の予定はありません。\n";
slackMessage += "本日の予定はありません。";
} else {
// 取得したイベントをループ
for (var i = 0; i < events.length; i++) {
var event = events[i];
var title = event.getTitle();
var startTime = event.getStartTime();
var endTime = event.getEndTime();
var location = event.getLocation() || "(場所の指定なし)";
// メール文面用
emailMessage += "▶ " + title + "\n" +
"⏰ " + formatTime(startTime) + " - " + formatTime(endTime) + "\n" +
"📍 " + location + "\n\n";
// Slack文面用
slackMessage += "▶ *" + title + "*\n" +
"⏰ " + formatTime(startTime) + " - " + formatTime(endTime) + "\n" +
"📍 " + location + "\n\n";
// イベント開始前のリマインド通知をスケジューリング
scheduleReminder(event, -60); // 1時間前
scheduleReminder(event, -30); // 30分前
scheduleReminder(event, -10); // 10分前
}
}
// メール送信(自分のアカウント宛)
MailApp.sendEmail(Session.getActiveUser().getEmail(), "📅 本日のスケジュール", emailMessage);
// Slackへ送信
sendSlackNotification(slackMessage);
}
// イベント開始前のリマインドを予約する
function scheduleReminder(event, minutesBefore) {
// リマインドのタイミング(イベント開始時間 + minutesBefore分)
var reminderTime = new Date(event.getStartTime().getTime() + minutesBefore * 60000);
// 過去の時間はスキップ
if (reminderTime < new Date()) return;
ScriptApp.newTrigger("sendReminder")
.timeBased()
.at(reminderTime)
.create();
}
// リマインド実行
function sendReminder() {
var now = new Date();
var calendar = CalendarApp.getDefaultCalendar();
// 直近10分間に開始するイベントを取得
var events = calendar.getEvents(now, new Date(now.getTime() + 10 * 60000));
for (var i = 0; i < events.length; i++) {
var event = events[i];
var title = event.getTitle();
var startTime = formatTime(event.getStartTime());
var message = "⏰ リマインド: *" + title + "* が " + startTime + " に開始します!";
// メール送信
MailApp.sendEmail(Session.getActiveUser().getEmail(), "⏰ イベントリマインダー", message);
// Slackへも送信
sendSlackNotification(message);
}
}
// Slackに通知する関数
function sendSlackNotification(message) {
// ここに取得したWebHook URLを貼り付け
var slackWebhookUrl = "https://hooks.slack.com/services/XXXXX/XXXXX/XXXXX";
var payload = JSON.stringify({ text: message });
UrlFetchApp.fetch(slackWebhookUrl, {
method: "post",
contentType: "application/json",
payload: payload
});
}
// 日時フォーマット関数 (HH:mm)
function formatTime(date) {
return Utilities.formatDate(date, Session.getScriptTimeZone(), "HH:mm");
}
// 朝6時のトリガーを自動作成する関数 (必要に応じて実行)
function setupDailyTrigger() {
ScriptApp.newTrigger("sendDailySchedule")
.timeBased()
.atHour(6)
.everyDays(1)
.create();
}
📌 Slack Webhook URL の取得はこちらから
Slack通知を行うには、Webhook URLの取得が必要です。
詳しい手順はこちらの記事を参考にしてください👇
🔗 Slack Webhook URL の取得方法
📌 GASのトリガー設定
GASのトリガーを設定する理由とは?
Google Apps Script(GAS)では、特定のタイミングや条件でスクリプトを自動実行するために「トリガー」 を設定します。手動でスクリプトを毎回実行する必要がなくなり、作業を効率化できます。
「毎朝6時にスケジュールを通知」するための設定
GASエディタの**[編集] → [現在のプロジェクトのトリガー]** を開く
「トリガーを追加」
関数: sendDailySchedule
イベントの種類: 時間主導型
時間ベースのトリガー: 日付ベースのタイマー(朝6時)
「リマインダーを自動送信」するための設定
「トリガーを追加」
関数: sendReminder
イベントの種類: 時間主導型
時間ベースのトリガー: 5分ごとに実行
📌 まとめ
📌 GASでGoogleカレンダーのスケジュール通知を完全自動化!
📌 メール & Slack でリアルタイム通知
📌 リマインダーを1時間前・30分前・10分前に送信
📌 トリガーを設定すれば、手間なく毎日自動実行!
📢 こんな人におすすめ! ✅ 予定を忘れがちな人
✅ スケジュール管理をSlackと連携したい人
✅ リマインドを自動化して手間を減らしたい人
以上が、Googleカレンダーの当日予定を朝6時にメールとSlackへ通知し、イベントの1時間前・30分前・10分前にリマインダーを送信する方法でした。もし、エラーが出たり、さらに別の要望があれば、コメントやSNSなどで教えてください。皆さんの業務や日常のタスク管理が、少しでもスムーズになるよう願っています!
それでは、良き自動化ライフをお過ごしください。👍