LINE公式アカウント(旧LINE@)を使用しているお店のイベント情報を自動投稿できる仕組みを作成しました。
Googleカレンダーの予定をGoogle Apps Script(GAS)で取得し、指定の時間になったら翌日の予定(イベント情報)を自動的に投稿する仕組みです。
使用するツール・技術
今回のシステム構築では、以下の3つのツールを組み合わせます。それぞれの役割をしっかり理解しておくと、よりスムーズに連携ができます。
- LINE Messaging API:メッセージ送信機能を活用して、LINE公式アカウントからの自動投稿を実現。
- Google Apps Script(GAS):スクリプトの自動実行により、カレンダー情報の取得やLINEへの投稿を自動化。
- Googleカレンダー:イベント情報の取得元として活用し、日々のスケジュール管理を簡単に。

🔧この3つを組み合わせれば、運用がグッと楽になる!
(準備)Google Apps Scriptを用意する
本システムを構築するために、Google Apps Script(GAS)のプロジェクトを新規作成します。
- https://script.google.com/home を開く
- GASの「新しいプロジェクト」をクリック。
- 「無題のプロジェクト」をクリックし、任意の名前(例:LINE投稿)を設定
- プロジェクトが作成されたら、以下のコードを記述します。


💡 GASを使えば、無料で簡単に自動化できるよ!
Googleカレンダーの予定を取得する方法
Googleカレンダーの予定をGASで取得するためには、カレンダーのIDを取得し、それをスクリプトに設定する必要があります。
- Googleカレンダーを開く
- 取得したいカレンダーの「設定」を開く
- 「カレンダーの統合」セクションにあるカレンダーIDをコピーする
const calendar_ID = "×××××××××××××××××@group.calendar.google.com";
const calendar = CalendarApp.getCalendarById(calendar_ID);
const events = calendar.getEventsForDay(new Date());
(準備)LINE公式アカウントでアクセストークンを用意する
LINE公式アカウントを操作するために必要な作業です。
下記のページよりLINE Messaging APIのチャンネルアクセストークンを発行してください。
GASを利用してGoogleカレンダーのイベント取得とLINEへの自動送信
//Googleカレンダーを取得しLINEに送信
function getEvent(){
var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
var tomorrowformat = Utilities.formatDate(tomorrow, 'Asia/Tokyo', 'M/d');
const calendar_ID = "×××××××××××××××××@group.calendar.google.com";
const calendar = CalendarApp.getCalendarById(calendar_ID);
const events = calendar.getEventsForDay(tomorrow);
var msgContent = "";
var header = "こんばんは🙂\n\n明日(" + tomorrowformat + ")のイベントのお知らせです💡\n";
var footer = "\nお客様のご来店お待ちしております。";
for (const event of events) {
var scheduleTitle = event.getTitle();
var startTime = Utilities.formatDate(event.getStartTime(), 'JST', 'HH:mm');
var endTime = Utilities.formatDate(event.getEndTime(), 'JST', 'HH:mm');
var time = event.isAllDayEvent() ? "" : "(" + startTime + " ~ " + endTime + ")";
msgContent += "\n○" + scheduleTitle + time + "\n";
}
if (msgContent !== "") {
var postData = {
'messages': [
{
'type': 'text',
'text': msgContent
},
{
"type": "sticker",
"packageId": "1070",
"stickerId": "17839"
}
]
};
let options = {
method: 'post',
contentType: 'application/json',
headers: {
Authorization: 'Bearer ' + ACCESS_TOKEN // LINEアクセストークン
},
payload: JSON.stringify(postData)
};
UrlFetchApp.fetch("https://api.line.me/v2/bot/message/broadcast", options);
}
}
定期的に実行する
1.GASの左側にある「トリガー」をクリックし、次に「トリガーを追加」をクリックします

2.表示された画面にて
例.毎日8時~9時に投稿する場合
実行する関数を選択:「getEvent」を選択
時間ベースのトリガーのタイプを選択:「日付ベースのタイマー」を選択
時刻を選択:「午前8時~9時」を選択
※このほかにも毎月、毎週、毎時間などの設定ができます

まとめ
本システムは、Googleカレンダーにイベント情報を入力するだけで、LINEに自動投稿できる大変簡単で維持費のかからない仕組みです。特別なサーバーや有料ツールを使用せずに運用でき、導入のハードルが低い点が特徴です。設定さえ完了すれば、日々の運用を省力化しつつ、安定して情報発信ができます。ぜひ、皆さまのお店やビジネスで活用し、効率的なイベント告知に役立てていただければ幸いです!

このほかにも、GASを活用した業務自動化や効率的な集客方法に関する記事を公開しています。ぜひチェックして、さらに便利な仕組みを導入してみてください! 🚀
コメント