Google Apps Script(GAS)とLINE Notifyを使って、Googleカレンダーの予定をLINEで通知する方法
みなさん、こんにちは。まりです。
家族の予定管理って大変ですね。特に子どもたちの習い事や学校の行事など、毎日把握しなければならないことがたくさんあります。
家族の予定管理、もう迷わない!
そんな中、ちょっとした工夫で生活をラクにできる方法があります。それは、Googleカレンダーの予定を前夜にLINEで通知してくれるシステムです。
以前、Gmailで受信した子どもの習い事の入退室通知をLINEで知らせる方法をシェアしたところ、予想外にたくさんの方々からご反響いただき、大変嬉しく思いました。
X/Twitterでは、なんと53万回以上のビューを獲得しました!
GoogleカレンダーとLINE Notify連携で実現!前夜通知システム
今回はさらに別のLINE活用法、Googleカレンダーに登録した家族の予定を、前夜にLINEでお知らせする仕組みをご紹介します。
設定方法を画像付きで丁寧に解説
Google Apps ScriptとLINE Notifyを使えば、簡単にこの仕組みを設定することができます。 ぜひ最後までご覧いただき、ご家族の予定管理を便利にするヒントをお受け取りください。
この小さな工夫で、予定を忘れず毎日を快適に過ごせるようになることでしょう。
Google Apps Script(GAS)とLINE Notifyを使って、Googleカレンダーの予定をLINEで通知する方法
毎日の家族の予定をスムーズに管理するために、Googleカレンダーの予定を前日の夜にLINEで通知するシステムを設定する手順を紹介します。この方法を利用すれば、忘れがちな予定も前もってリマインドされ、翌日の準備がぐんと楽になります。それでは、設定方法に入る前に必要な準備から見ていきましょう。
必要な準備
Googleアカウント:GoogleカレンダーとGASを使用するために必要です。
LINEアカウント:通知を受け取るために必要です。
LINE Notifyのトークン:LINEに通知を送るために必要です。LINE Notifyの公式サイトでトークンを生成します。
1.LINE Notifyでアクセストークンを取得
(1) PCでLINE Notifyのウェブサイトにアクセスします。
(2) QRコードを読み取って、LINE Notify を友達に追加します。
(3)LINEアカウントでログインした後、「トークンを発行する」を選択します。
(4)発行するトークンの名前を入力し、通知を受け取りたいLINEグループを選択します。
(5)「発行する」をおすと、トークンが生成されるので、これをコピーしておきます。
以上でトークンの発行は完了です。
2.Google Apps Scriptを使用してスクリプトを作成
(1)Google Apps Scriptを開始:
Googleドライブにアクセスし、「Google Apps Script」を選択します。
新しいスクリプトエディタが開きます。
(2)スクリプトの入力:
ここに、Googleカレンダーの予定を前夜にLINEで通知するためのスクリプトを入力します。基本的なスクリプトはインターネット上で見つけることができますし、私の書いたスクリプトをコピー・アンド・ペーストで大丈夫です。
//A,LINE Notifyと接続する設定
const LINE_NOTIFY_TOKEN = "**********************";
const LINE_NOTIFY_API = "https://notify-api.line.me/api/notify";
// 複数のカレンダーのIDと名前
const calendarInfo = [
{ id: '*************@group.calendar.google.com', name: '家族' },
{ id: '*************@group.calendar.google.com', name: '長男' },
{ id: '*************@group.calendar.google.com', name: '次男' },
];
function sendMessage() {
// カレンダーから取得する時間の設定
const today = new Date();
today.setDate(today.getDate() + 1); // 今日の日付に1日加算して明日に設定
today.setHours(0); // 当日の午前0時
today.setMinutes(0); // 分
today.setSeconds(0); // 秒
const tomorrow = new Date(today.getTime() + (24 * 60 * 60 * 1000)); // 翌 々日の午前0時
// 予定を取得する日付の設定
const monthNum = today.getMonth() + 1; // 月
const dateNum = today.getDate(); // 日
const day = today.getDay(); // 曜日
const dayArray = ['日', '月', '火', '水', '木', '金', '土'];
const thisDate = monthNum + "月" + dateNum + "日"; // 明日の日付
let sendMessage = "\n" + thisDate + "(" + dayArray[day] + ")の予定は以下の通りです。\n\n";
// 複数のカレンダーから予定を取得
let events = [];
calendarInfo.forEach(function(calendar) {
var cal = CalendarApp.getCalendarById(calendar.id);
var calEvents = cal.getEvents(today, tomorrow);
calEvents.forEach(function(event) {
event.calendarName = calendar.name; // イベントにカレンダー名を追加
});
events = events.concat(calEvents);
});
// 予定の内容を整形してメッセージに追加
if (events.length === 0) {
sendMessage += "予定はありません。";
} else {
events.forEach(function(event, index) {
const title = event.getTitle();
const startTime = formatDate(event.getStartTime());
const endTime = formatDate(event.getEndTime());
// ここでカレンダーの名前も含める
sendMessage += `${index + 1}. [${event.calendarName}] ${title} (${startTime} ~ ${endTime})\n- - - - - - - - - - -\n`;
});
}
// LINEに送信
UrlFetchApp.fetch(LINE_NOTIFY_API, {
"method": "post",
"payload": "message=" + encodeURIComponent(sendMessage),
"headers": {"Authorization": "Bearer " + LINE_NOTIFY_TOKEN}
});
}
// 日時をHH:MM形式に整形する関数
function formatDate(date) {
return Utilities.formatDate(date, Session.getScriptTimeZone(), 'HH:mm');
}
(3)個人で設定が変更が必要な項目
・アクセストークンの設定: スクリプトの"************"のところに、LINE Notifyから取得したアクセストークンを書いてください。
const LINE_NOTIFY_TOKEN = "**********************";
・カレンダーIDとその名前の設定: 我が家では、家族それぞれが個別のGoogleカレンダーを持っているので、各カレンダーからの予定をまとめて通知しています。それぞれのカレンダーIDをスクリプトに追加し、全員の予定を一つのメッセージにまとめて通知できます。
*************@group.calendar.google.comのところは、ご自身のカレンダーIDを、'家族'や’長男’のところも、ご自身でわかりやすく変更してください。
// 複数のカレンダーのIDと名前
const calendarInfo = [
{ id: '*************@group.calendar.google.com', name: '家族' },
{ id: '*************@group.calendar.google.com', name: '長男' },
{ id: '*************@group.calendar.google.com', name: '次男' },
];
カレンダーIDの確認の仕方がわからない場合は、こちらの記事が参考になります。
(4)プログラムの実行:
・プログラムの保存:作成したプログラムを保存します。画面上部にある「名前を付けて保存」を選択し、プログラムにお好みの名前を付けます。
・プログラムの実行:保存後、エディタ上部のドロップダウンメニュー「関数を選択」から「sendMessage」を選択します。
右隣にある実行ボタン(▶︎マーク)をクリックします。
初めての実行時には、Googleからの許可を求められます。画面に表示される警告に惑わされず、「詳細」をクリックし、「(安全ではないページへ)移動」を選択して進んでください。
続いて表示される画面で、プログラムに必要な権限を許可します。
3.トリガーの設定
スクリプトエディタの「トリガー」画面から、スクリプトが毎日特定の時間に実行されるように設定します。これにより、前日の夜に翌日の予定が自動的にLINEに通知されるようになります。
スクリプトエディタの左上にある時計マークのアイコンをクリックし、「トリガー」を選択します。
画面右下にある「+トリガーを追加」をクリックします。
「実行する関数を選択」で「sendMessage」を選びます。
「イベントのソースを選択」では「時間主導型」を選択します。
「時間ベースのトリガータイプを選択」で「日付ベースのタイマー」を選びます。
「時刻を選択」で「午後7字から8時」を選択します。(お好きな時間に設定してください。)
こんな感じのLINEが届きます。
まとめ:日常生活を変える小さな一歩
この記事を通じて、Google Apps Script(GAS)とLINE Notifyを使った、Googleカレンダーの予定をLINEで通知する方法を詳しくご紹介しました。日々の忙しさの中で、家族の予定を見落としてしまうことは誰にでもあることです。しかし、このシンプルながらも強力なシステムを設定することで、そのような小さな忘れ物を減らし、毎日をもっとスムーズに過ごすことができます。
技術の活用がもたらすもの
時間の節約:自動化された通知システムにより、手動でカレンダーをチェックする手間が省けます。
忘れ物の減少:前日の夜に翌日の予定をリマインドされることで、大切な予定を見落とすリスクを減らせます。
家族間のコミュニケーションの向上:家族全員が予定を共有しやすくなることで、お互いの計画を理解し合い、サポートしやすくなります。
さらなる一歩へ
今回ご紹介した方法と応用例を基に、自分のライフスタイルや家族のニーズに合わせて、さらにカスタマイズを加えてみてください。例えば、特定の予定に関するリマインダーを設定したり、天気予報を予定通知に含めるなど、さまざまな工夫をすることで、このシステムの有用性を最大限に引き出すことができます。
技術を活用して日常生活をより便利にすることは、決して難しいことではありません。この記事が、あなたの生活に役立つテクノロジーを導入するきっかけとなれば幸いです。日々の生活をもう一歩快適にするための試みを、ぜひ楽しんでください。
ーーーーーーーーーー
私の書いた本が出版されました!
\Twitterからうまれた/
ちょっと理系なおうち遊びの本
Amazon 売れ筋ランキング
幼児教育 カテゴリー 有料Top100
ベストセラー1位✨ になりました!
ありがとうございます!
KindleUnlimited, ペーパーバックでも読めます!