GoogleカレンダーとLINEをGASで連携!通知設定をマスターする方法

GASでGoogleカレンダーLINEを連携する方法があるって聞いたんですが、どうやって設定するのかさっぱりで…
猫男
猫男
catman
catman
いい質問だ。GoogleカレンダーLINEGASで連携することで、予定の通知をLINEで受け取れるようにすることができるさ。まずはやり方を一つずつ説明していくよ。

 

まずはGoogleカレンダーとLINEの連携を理解しよう

GoogleカレンダーのイベントをLINEに通知するためには、その両者をGASを使って連携させる必要があります。

Googleカレンダーのイベントを取得する

Googleカレンダーからイベントを取得するために、まずはGASを使ってGoogleカレンダーのAPIを利用します。


function getUpcomingEvents() {
 var calendar = CalendarApp.getDefaultCalendar();
 var events = calendar.getEventsForDay(new Date());
 for (var i = 0; i < events.length; i++) {
 Logger.log(events[i].getTitle());
 }
}

このコードでは、デフォルトのカレンダーを取得し、当日のイベントをリストするようにしています。

LINE通知用のスクリプトを書く

次は、LINEのAPIを使って通知を送る部分です。


function sendLineNotification(message) {
 var url = 'https://api.line.me/v2/bot/message/push';
 var headers = {
 'Content-Type': 'application/json',
 'Authorization': 'Bearer ' + 'YOUR_ACCESS_TOKEN'
 };
 var postData = {
 'to': 'YOUR_USER_ID',
 'messages': [
 {
 'type': 'text',
 'text': message
 }
 ]
 };
 var options = {
 'method': 'post',
 'headers': headers,
 'payload': JSON.stringify(postData)
 };
 UrlFetchApp.fetch(url, options);
}

このコードでは、LINEのAPIを利用してメッセージを送信する部分を設定しています。アクセストークンユーザーIDはLINE Developersで取得したものを使用してください。

 

GoogleカレンダーとLINEをGASで連携する流れ

より自動化を図るために、Googleカレンダーで登録された予定を自動でLINEに通知する方法を見ていきます。

トリガーを設定する方法

GASのトリガーを使えば、イベントが登録された時に自動でスクリプトが動くように設定できます。


function setTrigger() {
 ScriptApp.newTrigger('mainFunction')
 .timeBased()
 .everyDays(1)
 .atHour(8)
 .create();
}

ここでは、毎日午前8時にメインの関数を実行するように設定しています。

実際の連携スクリプト

次に、これらを組み合わせたメイン処理部分を示します。


function mainFunction() {
 var events = getUpcomingEvents();
 for (var i = 0; i < events.length; i++) {
 var message = '予定: ' + events[i].getTitle();
 sendLineNotification(message);
 }
}

メイン処理では、取得したイベントを一つずつLINEに送信しています。

 

練習問題

LINEに通知する際、イベントの日付を含めて「予定: イベント名(日付)」と表示させるスクリプトを書いてください。

  

解答・解説


function mainFunctionWithDate() {
 var events = getUpcomingEvents();
 for (var i = 0; i < events.length; i++) {
 var eventTitle = events[i].getTitle();
 var eventDate = events[i].getStartTime();
 var message = '予定: ' + eventTitle + ' (' + eventDate + ')';
 sendLineNotification(message);
 }
}

このコードでは、イベントの開始時間を新たに取得し、メッセージに追加しています。これにより、「予定: イベント名(日付)」の形式でLINEに通知されます。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。