フリーランスや経営者の皆さん、毎朝のタスク確認に追われていませんか?「朝のバタバタで今日の予定を確認し忘れた」「複数のカレンダーをチェックするのが面倒…」「大事なアポイントをうっかり忘れてヒヤリとした…」なんて経験、一度はあるのではないでしょうか。そんな悩みを解決するのが、今回ご紹介する「Googleカレンダーの予定を毎朝LINEに自動通知する仕組み」です。この記事を読めば、プログラミング経験がほとんどない方でも、約30分で自分専用のスケジュール秘書を開発できます。毎朝決まった時間に、その日の予定がLINEに届く快適さを、ぜひ体験してみてください。面倒なスケジュール管理から解放され、一日をスムーズにスタートさせましょう!
今回作成する自動化の全体像
これから作成する自動化の仕組みは、以下の図のような流れで動作します。毎朝決まった時間にプログラムが自動で動き出し、Googleカレンダーからその日の予定を取得して、あなたのLINEにメッセージとして届けてくれます。
graph TD
A[【毎日朝8時】
タイマーが作動] --> B(Google Apps Scriptが起動);
B --> C{Googleカレンダーに
今日の予定はある?};
C -->|Yes| D[今日の予定一覧を取得];
D --> E[LINEで送るメッセージを作成];
E --> F[LINE Messaging APIへ
メッセージ送信をリクエスト];
F --> G([あなたのLINEに
今日の予定が届く!✨]);
C -->|No| H(処理を終了);
ステップ0:事前準備
本格的な構築作業に入る前に、以下のものを準備しておきましょう。すべて無料で利用できますのでご安心ください。
- Googleアカウント:Googleカレンダーと、今回の自動化の心臓部となるGoogle Apps Scriptを利用するために必須です。
- LINEアカウント:通知を受け取るための個人のLINEアカウントです。
- LINE Developersアカウント:プログラムからLINEにメッセージを送るための「Messaging API」という機能を利用するために必要です。お持ちのLINEアカウントで簡単に作成できます。
ステップ・バイ・ステップ構築ガイド
準備が整ったら、いよいよ構築スタートです!一つひとつの手順を丁寧に進めていきましょう。
Step1:LINEに通知するための準備をする
まず、プログラムがLINEにメッセージを送れるように、LINE側の設定を行います。専門用語が出てきますが、手順通りに進めれば大丈夫です。
- LINE Developersにログイン:まず「LINE Developers」サイトにアクセスし、お持ちのLINEアカウントでログインします。
- プロバイダーの作成:「プロバイダー」とは、サービス提供者のことです。初めての場合は「作成」ボタンを押し、好きな名前(例:自分の名前や会社名)を入力してプロバイダーを作成します。
- チャネルの作成:作成したプロバイダーを選択し、「新規チャネル作成」から「Messaging API」を選択します。チャネルの種類、プロバイダー、会社・事業者の所在国・地域などを入力し、チャネル名(例:スケジュール通知Bot)やチャネル説明などを設定して作成します。利用規約に同意して進めてください。
- チャネルアクセストークンの取得:作成したチャネルの「Messaging API設定」タブを開きます。一番下にある「チャネルアクセストークン(長期)」の「発行」ボタンをクリックします。表示された英数字の羅列がトークンです。これは後で使う非常に大事な情報なので、コピーしてメモ帳などに貼り付けておきましょう。
- 自分のユーザーIDを確認:作成したLINE公式アカウント(Bot)を、自分のLINEで友だち追加します。その後、そのBotに何かメッセージを送ります。次に、LINE Developersの「Messaging API設定」タブ中程にある「Webhook URL」の設定欄に `https://example.com` のように仮のURLを入力して一度保存します。するとその下に「Webhookの利用」というスイッチが現れるのでONにします。その後、ページ上部の「チャネル基本設定」タブに戻り、「あなたのユーザーID」を確認できます。これもコピーしてメモ帳に保存しておきましょう。
Step2:Google Apps Scriptの準備をする
次に、Googleカレンダーの情報を取得し、LINEに送る命令を書き込むためのプログラムの置き場所(Google Apps Script)を準備します。
- GASプロジェクトの作成:「Google Apps Script」にアクセスし、「新しいプロジェクト」をクリックします。
- プロジェクト名の変更:画面左上の「無題のプロジェクト」をクリックし、「GoogleカレンダーLINE通知」など分かりやすい名前に変更します。
- Google Calendar APIの有効化:エディタ画面の左側メニューにある「サービス」の横の「+」ボタンをクリックします。「Google Calendar API」を選択し、「追加」ボタンを押します。これにより、このスクリプトがGoogleカレンダーの情報にアクセスできるようになります。
- カレンダーIDの確認:予定を取得したいGoogleカレンダーを開きます。設定メニューから、目的のカレンダーの「設定と共有」を開きます。「カレンダーの統合」というセクションにある「カレンダーID」(通常はメールアドレス形式)をコピーして、先ほどのチャネルアクセストークン等と一緒にメモしておきます。
Step3:スクリプトを記述する(コピペでOK!)
いよいよプログラミングです。といっても、以下のコードをまるごとコピーして、先ほど作成したGoogle Apps Scriptのエディタに貼り付けるだけでOKです!
// 【要設定】ここから3つの項目を自分のものに書き換えてください
const CHANNEL_ACCESS_TOKEN = 'ここにLINEのチャネルアクセストークンを入力';
const USER_ID = 'ここに通知を送りたいLINEのユーザーIDを入力';
const CALENDAR_ID = 'ここに予定を取得したいGoogleカレンダーのIDを入力';
// 【設定はここまで】
function main() {
// 指定したカレンダーIDからGoogleカレンダーを取得
const calendar = Calendar.Calendars.get(CALENDAR_ID);
if (!calendar) {
console.log('指定されたカレンダーが見つかりませんでした。');
return;
}
// 今日の開始時刻と終了時刻をDateオブジェクトで作成
const today = new Date();
const startTime = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0);
const endTime = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 23, 59, 59);
// 今日の予定をカレンダーから取得
const events = Calendar.Events.list(CALENDAR_ID, {
timeMin: startTime.toISOString(),
timeMax: endTime.toISOString(),
singleEvents: true,
orderBy: 'startTime'
}).items;
// メッセージを作成
let message = `おはようございます!\n今日の予定をお知らせしますね。\n\n`;
if (events.length === 0) {
message += '今日は予定がありません。素敵な一日を!✨';
} else {
events.forEach(event => {
// 終日イベントの場合
if (event.start.date) {
message += `🗓️ 終日: ${event.summary}\n`;
} else {
// 時間指定のあるイベントの場合
const eventStart = new Date(event.start.dateTime);
const eventEnd = new Date(event.end.dateTime);
const startTimeStr = ('0' + eventStart.getHours()).slice(-2) + ':' + ('0' + eventStart.getMinutes()).slice(-2);
const endTimeStr = ('0' + eventEnd.getHours()).slice(-2) + ':' + ('0' + eventEnd.getMinutes()).slice(-2);
message += `🕒 ${startTimeStr}〜${endTimeStr}: ${event.summary}\n`;
}
});
message += '\n今日も一日、頑張りましょう!💪';
}
// LINEにメッセージを送信
sendLineMessage(message);
}
// LINEにメッセージを送信する関数
function sendLineMessage(message) {
const url = 'https://api.line.me/v2/bot/message/push';
const headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN
};
const payload = {
'to': USER_ID,
'messages': [{
'type': 'text',
'text': message
}]
};
const options = {
'method': 'post',
'headers': headers,
'payload': JSON.stringify(payload)
};
UrlFetchApp.fetch(url, options);
}
貼り付けたら、コードの最初にある3つの項目(`CHANNEL_ACCESS_TOKEN`, `USER_ID`, `CALENDAR_ID`)を、Step1とStep2でメモしたあなた自身の情報に書き換えてください。これでプログラムの準備は完了です。フロッピーディスクのアイコン(保存)をクリックして、忘れずに保存しましょう。
Step4:毎日自動で実行するように設定する
最後に、このプログラムが毎日決まった時間に自動で動くように「トリガー」を設定します。
- トリガー設定画面を開く:GASエディタの左側メニューから、時計のアイコンの「トリガー」をクリックします。
- トリガーを追加:画面右下の「トリガーを追加」ボタンをクリックします。
- トリガーを設定:以下の通りに設定してください。
- 実行する関数を選択: `main`
- 実行するデプロイを選択: `Head`
- イベントのソースを選択: `時間主導型`
- 時間ベースのトリガーのタイプを選択: `日付ベースのタイマー`
- 時刻を選択: `午前 8 時~9 時` (など、通知を受け取りたい時間帯を選びます)
- 保存:「保存」ボタンをクリックします。初回のみ、Googleアカウントへのアクセス許可を求める画面が表示されます。「権限を確認」をクリックし、自分のアカウントを選択後、「詳細」→「(安全でないページ)に移動」と進み、「許可」をクリックしてください。これで全てのステップが完了です!
まとめ:自動化で生まれた時間を、もっと創造的な仕事に
お疲れ様でした!これで、設定した時間になるとGoogleカレンダーの予定が自動でLINEに届くようになりました。毎朝のスケジュール確認という小さな手間がなくなるだけで、一日の始まりがぐっとスムーズになるはずです。手作業を一つ減らすことで生まれた数分の時間を、もっと創造的な仕事や、自分のためのインプットの時間に使っていきましょう。
今回はLINEへの通知でしたが、同じ仕組みを応用してビジネスチャットツールのSlackに通知したり、週の初めにその週の予定をまとめて通知したりすることも可能です。ぜひ、あなたの仕事に合わせて、さまざまな自動化に挑戦してみてください!
免責事項:本記事で紹介している手順やコードは、執筆時点での情報に基づいています。各サービスの仕様変更により、同様の手順で動作しない可能性があります。また、本チュートリアルの実行によって生じたいかなる損害についても、当方は一切の責任を負いかねます。ご自身の責任において、バックアップを取るなどの対策の上、実行してください。
