複数の Google Calendar をまとめた Calendar を Google Apps Script を利用して作成する

複数の Google Calendar を使って予定管理しているのだが、たとえば仕事相手に空いている時間を教えたいときなどに、複数のカレンダーのアドレスを教えなければならずに面倒であった。できれば1つのカレンダーを共有するだけで予定を相手に通知できるようにし、かついままでのカレンダーの使用方法は変えたくない。

複数のGoogleカレンダーをまとめる を参考に このスクリプト を使おうと思ったが、一度に多くの操作をしすぎだと怒られたので、自分で書き換えた。JavaScript のオブジェクト、Python と同じだと思っていると痛い目にあうことがわかった(できれば Python で書きたかった)。

定期的に実行する方法は先のサイトを見ればいいが、メモとしてここにも書いておくと、

  • まとめる先のカレンダーを新しく作成しておく。
    • 公開範囲も適切に設定しておく。
  • Google Drive で新しい Google Sheets を作成
  • Tools > Script Editor を開く。
  • 下のコードをコピペ・カレンダー ID を書き込む。
    • ID は example@group.calendar.google.com みたいな形をしている。
  • テストラン。上部で関数名 (main) を選択してから Run.
  • 結果を見て、満足なら Resources > Current project's triggers から実行時刻を入力。ぼくは始業前の 7:00-8:00 と業務後の 18:00-19:00 に1回ずつ走るように設定した。

難点としては、本来ならカレンダー(予定の種類)ごとに細かく閲覧設定ができるところを縮退させてしまっている点か。しかしまぁ、そのへんはスクリプトを軽く書き換えて、プライベートな予定は Private という名前にしてパブリックな予定はそのままの名前とする、みたいな感じにすれば丸いのでは。

参考にしたサイトは以下である。

gist583d364fa99b9fafdcaf5e9287047ca7