【GAS】Googleカレンダーの予定を毎朝メールで通知する方法

GAS

本ページはプロモーションが含まれています。

普段Googleカレンダーを使われている方,こんなことを思ったことはありませんか?

「カレンダーに予定を登録したものの,多すぎて把握できなくなってしまった…。」

実は,Google Apps ScriptGASを活用すれば,Googleカレンダーに登録している予定をあらかじめ設定した日時にメールでまとめて送信することができます。

本日のブログはこんな方におすすめ

1.普段からGoogleカレンダーを使っている
2.Googleカレンダーの予定が定期的にGmailで通知がくるようにしたい
3.Google Apps Script(GAS)の活用例に興味がある

まずは,簡単にGoogleカレンダーの説明をします。

Googleカレンダーとは

Googleカレンダーは,Googleのアカウントがあれば誰でも無料で使えるスケジュール管理ツールです。PCやスマートフォンで使用することができます。

Googleカレンダーへの予定の追加方法

カレンダーを開いたら,予定を入れたい日付のエリアを選択して予定のタイトルを入力します。

予定を登録したら,Google Apps ScriptGAS)のファイルを作成します。
本記事では,そもそもGoogle Apps Scriptを使ったことがないという方のために,簡単にご説明します。

Google Apps Script(GAS)とは

Google Apps ScriptGAS)は,Googleが提供するクラウドベースのスクリプト言語のことで,Googleのさまざまなサービスやアプリケーション(GmailGoogleカレンダースプレッドシートなど)を自動化することができます。

本ブログでは,これまでにもGoogle Apps Script(GAS)を活用した業務効率化の方法を紹介しているので,もしよければご覧ください!

Google Apps Scriptの開き方

  1. Googleにログインして,Googleドライブを開く。
  1. ファイルを作成するフォルダ(どこでもOK)で右クリック
  2. その他」を選び,Google Apps Scriptをクリック

4.赤枠の部分に下記の全体のコードを入力する

全体のコード

function sendTodaysCalendarEventsByEmail() {
  const calendarId = '**********************'; // カレンダーのID(初期設定はデフォルトのカレンダー)
  const emailAddress = '*********************'; // 送信先のメールアドレス

  const now = new Date();
  const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);
  const endOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59);

  const events = CalendarApp.getCalendarById(calendarId).getEvents(startOfDay, endOfDay);


  const subject = '【本日の予定】';
  let message = '本日の予定は以下の通りです。\n\n';


  if (events && events.length > 0) {
    for (let i = 0; i < events.length; i++) {
      const event = events[i];
      const startTime = formatDate(event.getStartTime());
      const endTime = formatDate(event.getEndTime());
      message += (i + 1) + '. '; // 連番を挿入
      message += event.getTitle() + '\n';
      if (event.isAllDayEvent()) {
        message += '時間: 終日\n\n';
      } else {
        message += '時間: ' + startTime + ' ~ ' + endTime + '\n\n';
      }
    }
  } else {
    message = '本日の予定はありません。';
  }

  // メール送信
  MailApp.sendEmail({
    to: emailAddress,
    subject: subject,
    body: message
  });
}

function formatDate(date) {
  const formattedTime = Utilities.formatDate(date, Session.getScriptTimeZone(), 'HH:mm');
  return formattedTime;
}

①と②を自分の情報に書きかえる

①と②の情報は人によって違うので,それぞれ自分の情報に書きかえる必要があります。

①GoogleカレンダーIDは特に何も設定していなければ,自分のGmailアドレスを入力すればOKです。

GoogleカレンダーIDの調べ方は下記の記事が参考になります。

【Googleカレンダー】カレンダーIDを確認する方法|共有やAPIで利用
【Googleカレンダー】カレンダーIDを確認する方法|共有やAPIで利用|今回は、Googleカレンダーの共有やGoogleカレンダーAPI(Calendar API)で利用する、カレンダーIDを確認する方法となります。【Googleカレ...

②のメールアドレスは,予定を通知したいメールアドレスを入力してください。
Gmail以外のメールアドレスでもOKです。

設定が完了したら,Google Apps Scriptの画面で保存ボタン(ctrl+sでもOK)を押して,「実行」をクリックします。

※下記のような画面が出たら,次のような手順でアクセスを許可してください。

1.「権限を確認」をクリック

2.自分のアカウントを選択

実行が完了したら,メールが指定のアドレスに届きます。

次に,このメールが届く日付を設定します。

今回は,毎朝8時にその日の予定がまとめて届くようにします。

メールが届くタイミングの設定

1.左タブの上から4つ目の「トリガー」をクリック

2.「トリガーを追加」をクリック

3.「実行する関数を選択」で「sendTodaysCalendarEventsByEmail」を選択

4.「時間ベースのトリガーのタイプを選択」で「日付ベースのタイマー」を選択し,

 「時刻を選択」で「午前8時~9時」を選択

通知したい時刻は,お好みに設定していただいてOKです。

設定は以上です。これで設定したタイミングでメールがきます

まとめ

本記事では,Googleカレンダーにある予定が毎朝自分にメールで届く仕組みの作り方を紹介しました。

このように,Google Apps Script(GAS)を使えばGoogleカレンダーGmailを連携してとても便利なシステムを作ることができます。

以前の記事で紹介したGoogleカレンダーに予定を登録できるスプレッドシートをあわせて使うとさらに便利になるので,ぜひご覧ください!

それではまた次回の記事でお会いしましょう!

GASを学習するのにおすすめな本

コメント

タイトルとURLをコピーしました