Googleカレンダーに移動時間を自動追加するGASツール "Calendar Auto Route Calculator"
https://gist.github.com/DaisukeMiyazaki/4293e05627ecae17b23dd8b234a29a12
Googleカレンダーに予定を入れると、そこまでの移動ルート(電車・徒歩)を自動計算し、「移動予定(Travel to …)」 としてカレンダーに追加するGoogle Apps Script (GAS) ツールです。 Googleカレンダーで予定地を入れると自動で行き先/帰り道をカレンダーにセットしてくれます。
機能
- 自動ルート計算
- 予定の「場所(Location)」を読み取り、Google Maps APIで経路を検索。
- 出発地は「自宅(デフォルト)」または「直前の予定の場所(ハシゴの場合)」から自動判定。
- 15分前行動
- イベント開始時刻の 15分前 に現地に到着するようなスケジュールで移動時間を確保します。
- 詳細な経路案内
- カレンダーイベントの説明欄(Description)に、乗るべき電車の時間、路線名、乗り換え駅、運賃(可能な場合)を自動追記します。
- 帰宅ルートの自動追加
- その日の最後の予定が終わった後、自宅へ帰るための移動予定(Travel to Home)も自動作成します。
- 重複防止
- すでに移動予定が作成されている場合は二重登録しません。
セットアップ手順
このツールはサーバー不要で、Google Apps Script上で動作します。
1. プロジェクト作成
- ブラウザで Google Apps Script (script.google.com) にアクセス。
- 「新しいプロジェクト」を作成。
2. コードの導入
- このリポジトリの
calendar_auto_route.jsの内容をコピー。 - GASエディタの
Code.gsにすべて貼り付け。
3. 設定変更
コード先頭の定数を自分の環境に合わせて書き換えてください。
const CALENDAR_ID = "primary"; // 自分のカレンダーならこのままでOK
const HOME_LOCATION = ""; // 自宅や最寄り駅の住所
4. サービスの有効化
Google Maps機能を使用するため、以下の手順が必要な場合があります(現在は標準機能の Maps クラスを使用しているため、追加設定なしで動くことが多いですが、念のため)。
- 左メニュー「サービス」の「+」ボタン -> 「Google Maps Service」があれば追加(通常は不要)。
5. トリガー設定(自動化)
- 左メニューの時計アイコン(トリガー)をクリック。
- 「トリガーを追加」ボタンをクリック。
- 以下のように設定して保存:
- 実行する関数:
onCalendarChange - イベントのソース:
カレンダーから - イベントの種類:
イベントの更新
- 実行する関数:
- 保存時にGoogleアカウントへのアクセス権限を求められるので「許可」します。
- ※「このアプリはGoogleによって確認されていません」と出た場合は、「詳細」→「(プロジェクト名)に移動」をクリックして許可してください。
使い方
- Googleカレンダーに予定を入れます。「場所」フィールドを必ず入力してください。
- 数秒〜数十秒後、その予定の直前に「Travel to [予定名]」という新しい予定が自動的に追加されます。
- 追加された予定をクリックすると、詳細欄で「何時の電車に乗ればいいか」が確認できます。
その他
- トリガー発火時に、今日から14日後までの予定をスキャン。
- 「場所」があり、かつ直前に「Travel to」がない予定を探して処理。
- ルート検索は
Maps.newDirectionFinder()(Transit Mode) を使用。 - 行きは
.setArrive(start - 15min)、帰りは.setDepart(end)で検索。