TL;DR
追加したいものは全部 add
クエリパラメータに足しちゃえ〜(おジャ魔女カーニバルのリズムで)
背景
Google Workspaceを使っている組織に所属されている方は、会議室や設備などのリソースが組織で定義されていて、カレンダーから予定を作成するときにこれらも予定に入れて確保することがあると思います。
Googleカレンダーの画面から予定を作成するときはポチポチと利用状況などを確認しながら設定すればいいのですが、たとえば「いま会議室が空いていることは確認できている。すぐに使いたいけど、予約としてカレンダーに予定を入れておきたい」といったときに毎回ポチポチするのは面倒だったので、リソースを含めて予定を作成する方法を調べてみました。
公式のリファレンスなどに記載がない方法のため、仕様変更などによって想定通りに動作しない場合や今後動作しなくなることが想定されます。自己責任で使用してください。
方法
リソースのカレンダーIDを調べる
組織でリソースが定義されている場合、そのリソースのカレンダーが存在するはずです。Googleカレンダーの設定→「カレンダーの追加」→「リソースをブラウジング」から、使いたい会議室などのリソースにチェックを入れて「他のカレンダーの設定」に追加しておきます。
次に、追加したリソースの「カレンダーの設定」→「カレンダーの統合」に記載のある @resource.calendar.google.com
で終わるカレンダーIDをメモしておきます。
これ以降リソースのカレンダーは必要ないので、チェックを外してもOKです。
リソースのカレンダーIDを含めてスケジュールを作成するURLを組み立てる
公式のリファレンスが見つからないのですが、Googleカレンダーではクエリパラメータを使って予定を追加する画面に遷移できます。
ただ、この手の方法の紹介記事ではタイトルや説明の追記方法は説明があったり察しがつくものの、会議室の追加方法は見つかりません。
ここで冒頭の伏線が回収されるのですが、add
クエリパラメータにはその予定に参加するメンバーのメールアドレスを追加するような説明があります。そしてリソースもメールアドレスっぽいカレンダーIDを持っています。
そこで、下記のようなURLを組み立ててGoogleカレンダーに遷移すると…
https://www.google.com/calendar/render?action=TEMPLATE&text=Reserve%20test&details=Created%20by%20URL&add=<リソースのカレンダーID@resource.calendar.google.com>
タイトルや説明とあわせて、リソースを含んだスケジュール作成画面に遷移できました。このURLをブックマークしたりQRコードに利用すると、1クリックで会議室などのリソースを含む予定が作成できるようになります。
上記のURLをAndroidで開いてもアプリからリソース付きのカレンダーが作成できましたが、スケジュールの作成画面ではユーザー欄にリソースが表示されたり、会議室名が正しく表示されない場合があるようです(実際リソースカレンダーを見ると予約はできていました)。
ヒントになったサイト