複数の Google カレンダーの
「予定あり」だけを同期する
予定のタイトルも参加者も持ち出さずに、空き時間だけを揃えます。 アカウントをまたいだダブルブッキングを防ぐための、オープンソースのツールです。
- 双方向・3アカウント以上に対応
- 予定の内容は転記しない
- MIT ライセンス
- 自分の環境で動かす
なぜ必要か
仕事用・個人用・副業用とアカウントが増えると、それぞれのカレンダーは互いの予定を知りません。 空いていると思って入れた打ち合わせが、別のアカウントの予定と重なります。
かといって、会社の予定の内容をそのまま個人のカレンダーに流し込むのは避けたいはずです。 必要なのは「ここは埋まっている」という情報だけで、誰と何を話すかという情報まで共有する必要はありません。 CalMesh が同期するのは、その 時間の占有状況だけです。
何をするか
接続した各カレンダーの予定を読み取り、他のカレンダーに「予定あり」というブロックだけを作成します。 元の予定が動けばブロックも追従し、元が消えればブロックも消えます。 3つ以上のアカウントを接続した場合は、すべての組み合わせに対してメッシュ状に同期します。
作成されたブロックは色と識別用のマーカーで元の予定と区別され、同期の対象からは除外されるため、 ブロックがさらにブロックを生むことはありません。
転記する情報と、しない情報
| 転記する | 開始時刻・終了時刻・タイムゾーン / 終日かどうか / 空き時間扱いかどうか |
|---|---|
| 転記しない | 予定のタイトル / 説明・本文 / 参加者とそのメールアドレス / 場所 / 会議の URL / 添付ファイル / 返信状況 |
ブロックのタイトルには、利用者が決めた固定の文言(既定では「予定あり」)が入ります。 元の予定のタイトルを含めたい場合だけ、設定でそう指定できます。
同期しない予定
- 「空き時間」として登録された予定
- 自分が辞退した予定
- 勤務場所(ワーキングロケーション)
- CalMesh 自身が作成したブロック
- 設定した最小時間より短い予定
使い方
- Google アカウントを接続する 同期したいアカウントを順に認証します。カレンダーの読み取りと、ブロックの書き込みに使います。
- ラベルと範囲を決める どのカレンダーからどのカレンダーへ、どんな名前のブロックを作るかを設定します。 対象は直近から3か月先までです。
- 定期実行に任せる 15分ごとに同期します。自分の PC で動かすほか、GitHub Actions のスケジュールで PC を閉じていても動かせます。
データはどこにあるか
CalMesh にサーバーはありません。 認証情報と設定は、あなたが動かしている環境(自分の PC、または自分の GitHub リポジトリの シークレット)にのみ保存されます。開発者がそれらを受け取ることも、閲覧することもできません。
カレンダーの内容がどこかに蓄積されることもありません。実行のたびに Google から読み取り、 必要なブロックを書き込んで、そのまま終了します。
詳細はプライバシーポリシーに記載しています。 ソースコードはすべて公開されているため、実際に何を読み書きしているかは GitHub で確認できます。
導入する
Node.js 20 以上が必要です。セットアップの手順はリポジトリの README にあります。
github.com/Yamamoto-Shohei/google-calendar-sync
不具合の報告や要望は GitHub の Issue、それ以外のお問い合わせは support@rcat.app までお願いします。