毎朝カレンダーアプリを開いて、今日の予定を確認していませんか?その手間、GASで自動化しちゃいましょう!このチュートリアルでは、Googleカレンダーに登録された予定を毎日LINEに通知するGASスクリプトの作り方を、ステップ・バイ・ステップで解説します。プログラミングの知識がなくても、コピペで簡単に実装できるので、ぜひチャレンジしてみてください!
今回作成する自動化の全体像
graph TD A[Googleカレンダーの予定を取得] --> B{予定あり?} B -- YES --> C[LINEに予定を送信] B -- NO --> D[「予定なし」をLINEに送信]
ステップ0:事前準備
- Googleアカウント(GoogleカレンダーとGoogle Apps Scriptを使用するため)
- LINEアカウント(LINE Messaging APIを使用するため)
- LINE Messaging APIのチャネルアクセストークンとユーザーID:LINE Developers Consoleでチャネルを作成し、取得します。
- GoogleカレンダーのID:通知を受け取りたいカレンダーのIDを事前に確認しておきます。(カレンダーの設定画面で確認できます)
ステップ・バイ・ステップ構築ガイド
Step1:開発環境の準備
GoogleアカウントでGoogle Apps Script (GAS)を開き、「新しいプロジェクト」を作成します。
Step2:LINE Messaging APIの設定
LINE Developers Consoleでチャネルを作成し、チャネルシークレットとチャネルアクセストークンを取得します。また、ユーザーIDを取得します。LINE Messaging APIのメッセージ送信APIの使用方法を確認しておきましょう。
Step3:GoogleカレンダーのID取得
Googleカレンダーにログインし、通知対象のカレンダーの設定画面を開き、カレンダーIDを確認します。
Step4:GASスクリプトの作成
以下のコードをGASにコピー&ペーストします。
YOUR_CHANNEL_ACCESS_TOKEN
、YOUR_USER_ID
、YOUR_GOOGLE_CALENDAR_ID
を、それぞれ取得したアクセストークン、ユーザーID、カレンダーIDに置き換えます。
function sendDailySchedule() {
// LINE Messaging APIのエンドポイント
const lineApiUrl = 'https://api.line.me/v2/bot/message/push';
// チャンネルアクセストークン
const channelAccessToken = 'YOUR_CHANNEL_ACCESS_TOKEN';
// ユーザーID
const userId = 'YOUR_USER_ID';
// GoogleカレンダーのID
const calendarId = 'YOUR_GOOGLE_CALENDAR_ID';
// 今日の日付
const today = new Date();
// 明日(翌日の予定を取得)
const tomorrow = new Date();
tomorrow.setDate(today.getDate() + 1);
// カレンダーの予定を取得
const events = CalendarApp.getCalendarById(calendarId).getEvents(tomorrow, new Date(tomorrow.getFullYear(), tomorrow.getMonth(), tomorrow.getDate() + 1));
// メッセージを作成
let message = "明日の予定:\n";
if (events.length > 0) {
events.forEach(event => {
message += `${event.getTitle()} (${event.getStartTime().toLocaleString()}-${event.getEndTime().toLocaleString()})\n`;
});
} else {
message = "明日の予定はありません。";
}
// LINEにメッセージを送信
const options = {
'method': 'post',
'contentType': 'application/json',
'headers': {
'Authorization': `Bearer ${channelAccessToken}`
},
'payload': JSON.stringify({
"to": userId,
"messages": [
{
"type": "text",
"text": message
}
]
})
};
UrlFetchApp.fetch(lineApiUrl, options);
}
// トリガーを設定(毎日午前7時に実行)
function createTrigger() {
if (ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() === 'sendDailySchedule').length === 0) {
ScriptApp.newTrigger('sendDailySchedule')
.timeBased()
.atHour(7)
.everyDays(1)
.create();
}
}
Step5:トリガーの設定
GASの編集画面で「編集」>「現在のプロジェクトのトリガー」を選択します。「トリガーを追加」をクリックし、「関数名」に createTrigger
を選択します。「イベントソース」を「時間ベース」に、「時間ベースのトリガーのタイプ」を「日付ベースのタイマー」に設定します。「時間」を毎日実行したい時刻(例:午前7時)に設定し、「保存」をクリックします。これで、毎日指定した時刻にスクリプトが自動実行され、LINEに予定が通知されます。
まとめ:自動化で生まれた時間を、もっと創造的な仕事に
これで、毎朝カレンダーを確認する手間が省け、時間を有効活用できます!GASを活用すれば、他にも様々な業務を自動化できます。次は、顧客からの問い合わせに自動返信するシステムなど、より高度な自動化にも挑戦してみませんか?
免責事項:本記事で紹介している手順やコードは、執筆時点での情報に基づいています。各サービスの仕様変更により、同様の手順で動作しない可能性があります。また、本チュートリアルの実行によって生じたいかなる損害についても、当方は一切の責任を負いかねます。ご自身の責任において、バックアップを取るなどの対策の上、実行してください。