0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

タイムズカーシェアの予約をカレンダーに自動反映する

Last updated at Posted at 2025-04-25


タイムズカーシェアの予約情報をカレンダーに自動反映(新規登録 / 更新 / 削除)する機能をご紹介します

こちらの機能を利用すると以下が実現できます。

タイムズカーシェアで、

  • 予約をすると自動でカレンダーに予定が追加される
  • 予約を変更すると自動でカレンダーの予定が変更される
  • 予約を取り消すと自動でカレンダーの予定が削除される

カレンダー.png

はじめに

私生活でタイムズカーをよく利用しています。
タイムズカーを予約する中で予約状況をタイムズカーのアプリ内でしか確認できない不満が昔からありました。

メールで予約登録や変更、返却証の通知は届きます。
それをカレンダーにいちいち登録していて面倒でした。

一方で Google アカウントの愛用者でもあったので、GAS の存在も知っており無料の範囲でカレンダーへの自動反映機能を簡単に作れないか思案していました。
趣味で細々と作ったので、これを機にこちらで共有しようと思います。

タイムズカー利用者の方がこちらの記事を見つけてくださったら、もし良ければ使ってみてください。

機能概要

Google のサービスを活用しています。
Gmail, Google カレンダー, スプレッドシート(データベースとして)を利用します。

動作の流れは以下の通りです。

  1. タイムズカーで予約を 新規登録 / 変更 / 取消 / 返却 する
  2. Gmail に予約情報の最新の通知メールが届く
  3. Gmail のメール情報を GAS で抽出する
  4. Google カレンダーへ GAS でイベントを反映(登録 / 更新 / 削除)する

※ GAS(Google Apps Script)は時間主導型のトリガーで実行されるように設定する前提です

開発の前提

開発にあたって、こちらの機能を基盤にしています。
開発者の方はぜひ参考にしてみてください。

Qiita - GAS でスプレッドシートを Database ライクに操作する

成果物

GoogleDrive

開発したものは以下に格納してあります。
コピーしてご自身のマイドライブへ格納してご利用ください。
スプレッドシートをデータベースの役割として、それに GAS プロジェクトが紐づいています。

GoogleDrive - タイムズカーの予約をカレンダーに自動反映

GAS を時間主導型のトリガーに設定して利用してください。
※詳細は以降で説明します。

GitHub

GAS のソースコードは以下で管理しています。

GitHub - timescar-calendar-sync

開発内容

Gmail

■ 専用のラベルを作成する

Gmail の検索を効率化するために、まずラベルを作成します。
私の場合は TimesCar という名称のラベルを作成しました。

Gmail-label.png

参考)ラベルを作成して Gmail を整理する

■ メールの自動振り分け設定

対象のメールアドレスに自動振り分け設定をしておきます。
タイムズカーからメールが届くと、そのメールに自動でラベルを付与してくれます。

参考)メールのフィルタルールの作成

ラベル付与ルール.png

ラベル付与ルール2.png

スプレッドシート

開発物として上述したスプレッドシートを、データベースとして活用しています。
主に、予約情報をカレンダーへ最後に反映した日時(同期時刻管理)と、タイムズカーの予約番号とカレンダーのイベント ID を一意に紐づけた履歴リスト(同期履歴)です。
これを元に予約情報をカレンダーに効率的に自動反映することを実現しています。

スプシ_同期時刻管理.png

スプシ_同期履歴.png

GAS(Google Apps Script)

■ 概要

スプレッドシートに紐づけて GAS プロジェクトを開発しています。
こちらの GAS 内に存在する createEventFromGmail() メソッドを時間主導型のトリガーとして設定すると、Gmail を定期的に取得して、最新の予約通知メールが存在する場合は Google カレンダーへ自動反映されます。

予約の 新規登録、変更、取り消し、返却 に対応しています。

GAS_menu.png

GAS_内容.png

■ ラベル名の設定 【重要】

Gmail で専用のラベル(TimesCar)を設定するよう言及しましたが、こちらをご自身の好きな名称で作成された場合は GAS の一部を変更する必要があります。

Config.gs ファイルに記載のある this.labelNameTimesCar の値を、ご自身のラベル名称に合わせてください。

Config.gs
function config() {
  // スプレッドシート ID を指定しない(空欄)場合は getActiveSpreadsheet が実行される
  this.spreadsheetId = ""; // Spreadsheet ID: Default Database

  // ===========================
  // Setting as you like
  // ===========================
  this.settingAsYouLike = "Sample";

  this.labelNameTimesCar = 'TimesCar'; // Gmail の任意のラベル名
  this.subjectCalendarEvent = 'Times Car 予約'; // カレンダーのタイトル

...

スクリーンショット 2025-04-25 11.48.29.png

■ トリガーの設定方法

  1. GAS の左側にあるメニューから時計アイコンのトリガーを選択します
  2. トリガー設定の画面へ遷移したら、トリガーを追加 ボタンをクリックしてダイアログを表示させます
  3. 実行する関数に createEventFromGmail() を選択します
  4. イベントのソースは「時間主導型」
  5. トリガーの間隔は任意で設定できます(1分〜12時間おき、他)
  6. 設定が完了したら保存ボタンをクリック

トリガー_menu.png

トリガー_追加.png

トリガー_詳細.png

まとめ

以上で初期設定は完了です。
あとはタイムズカーで予約の操作を行うと、トリガーで設定した時間間隔ごとに最新の予約情報を Google カレンダーに自動反映してくれます。

最後まで読んでくださりありがとうございました!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?