イベント会場予約の仕組みをMicrosoft 365のBookingsで実現してみた

[TDCソフト株式会社 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/tdc) 14日目の記事です！

https://qiita.com/advent-calendar/2023/tdc

TDCソフトは [2023年10月にオフィス移転](https://www.tdc.co.jp/info/16721/) しまして、現在は東京都の九段下にある [九段会館テラス](https://kudan-kaikan-terrace.jp/) に居を構えております。オフィス移転にともない、オフィス内に飲食を楽しみながらコミュニケーションできるイベントスペースを作ろうということになりまして、**TDC HUB** という名前で運営を始めました。
このTDC HUBについての記事をメディアに掲載いただきましたので、ぜひご覧ください😃

https://www.itmedia.co.jp/enterprise/articles/2311/22/news054.html

https://vachanavi.com/2023/11/20/tdcsoft/

https://news.mynavi.jp/techplus/article/office_research-15/

今回はTDC HUBの予約を [Microsoft Bookings](https://www.microsoft.com/ja-jp/microsoft-365/business/scheduling-and-booking-app) で実現したので、その解説をしてみたいと思います。

# TDC HUB の予約の要件について

TDC HUB はオフィスの一室を利用したイベントスペースで、09:00 ~ 17:30 の間はフリースペースとして開放していますが **17:30 ~ 21:00** の間は飲食しながらコミュニケーションできるイベントスペースに変わります。また、このイベントスペースはイベントの周知や飲食品の在庫コントロールのために事前予約制となっています。

予約のしくみを作る前提条件として、Microsoft 365でオフィスの会議室を管理しているので TDC HUBのイベントスペースも同様にOutlookで管理したいという点が挙げられます。

ということで、もろもろ含めて予約の要件を整理するとだいたいこんな感じです。

- **イベントスペースを誰でも予約できるようにしたい**
- 09:00 ~ 17:30 は一部の人しか予約できないが 17:30 ~ 21:00 だけは誰でも予約できるようにしたい
- 予約は一枠90分
- 簡単な操作で予約できるようにしたい
- 会場の予約状況は **Outlook** で管理したい（≒Outlook にも予約状況が載っていてほしい）

これらの要件を満たせるのが Microsoft Bookings というわけです。

https://www.microsoft.com/ja-jp/microsoft-365/business/scheduling-and-booking-app

# Microsoft Bookings について

"booking" は部屋や座席を予約するという意味で、[Microsoft Bookings](https://www.microsoft.com/ja-jp/microsoft-365/business/scheduling-and-booking-app) はまさしく今回のような予約を実現するのにぴったりのサービスです。Bookings を使えば以下の様な予約画面をすぐに提供することができます。

![b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819924/06ed4213-fbc4-20ca-b854-51e2c75b0d80.png)

Booking の機能を簡単にまとめるとこんな感じです。

- Outlook に登録済みの **人・場所・モノ** に対して時間予約ができる
- 予約するとOutlookの予定に登録される
- 既に予約された時間枠は候補にでないようにすることができる
- 予約可能な時間帯を設定できる
- リードタイム（いつから、あるいはいつまでに予約できるか？）を設定できる
- リマインダーメールやフォローアップメールを自動送信できる
- スマートフォンでも使いやすい予約画面がすぐに出来上がる
- 予約と Power Automate を連動して、いろいろな自動化ワークフローを動かすことができる

これらはTDC HUBの要件にぴったりの機能なので、Bookings を予約の仕組みとして使うことにしました！Microsoft Bookingsは [ほとんどのMicrosoft 365サブスクリプションで使うことができます。](https://learn.microsoft.com/ja-jp/microsoft-365/bookings/bookings-faq) 
以下の様なサービスの予約システムが欲しい人はぜひ一度Bookingsを触ってみてください！

- 組織内の部屋や作業用の道具を貸し出す仕組みを作りたい！
- 製品の紹介や相談会を、お客様側から予約できるようにしたい！

# Bookingsでサービス作成する最初の流れ

Microsoft 365のBookingsアプリを開いて [作成] ボタンを押すとサービス作成のウィザードが始まります。ウィザードは以下の様な流れで進みます。

まずはサービスの **[名前]** を登録します。例えば「〇〇会場予約」などがいいでしょう。
**[業種]** は「医療」「採用」「ITサポート」等の中からイメージに一番合うものを選びます。TDC HUBの場合は近いものが無かったので「その他」にしています。
**[勤務時間]** は予約対象がアクティブな時間帯を設定します。TDC HUBの場合は要件に書いてある通り月～金の17:30 ~ 21:00を設定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819924/b56f3fa8-48b8-26fa-e465-4cbeb12af2b7.png)

次に **スタッフの招待** です。スタッフと書いてあるので人を入れないといけないかのように思えますが、Outlookに登録されているリソースであればなんでもOKです。TDC HUBの場合は運営に関わる人と、**部屋** のリソースを設定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819924/ed003ad4-0b3d-0b8e-e6b6-8cb0688ac504.png)

次に **サービスの設定** です。実現したいサービスの一枠の時間や予約できる時間帯などを設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819924/f29df48d-6736-074b-3c1c-c7ba62543047.png)

最後に予約できる人の範囲を設定します。TDC HUBは組織内向けのサービスですので「所属組織内の人」を設定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819924/22093116-e3ce-23bb-4d38-54e2747f0e32.png)

これで準備は完了、と言いたいところですが、TDC HUBの場合はもうひと手間設定を行っています。
作成後に [サービスの編集] を開いて、[スタッフの割り当て] から以下の図のように設定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819924/4f0a42df-cb8d-4fbf-a542-4aed6e1ec03e.png)

Bookingsでスタッフを予約する時の割り当て方は以下のいずれかから選ぶことができます。

| モード | 説明 |
| - | - |
| A | スタッフの中から予定が空いている1つのスタッフを自動選択 |
| B | お客様がスタッフの中から誰を予約するか指名する |
| C | 割り当てられたスタッフ全員を予約する |

TDC HUBの場合、予約したいのはイベントスペースという場所だけ、かつ指名制は不要ですので、スタッフには **部屋のリソースのみを設定** しておき、**設定されたスタッフ全員** を予約するモードCにしておきました。

後は、予約サイトのURLを周知すれば予約サービススタートです！

# Bookingsの便利な機能を見てみよう！

TDC HUBの予約の仕組みを作っていて、こりゃ便利だな！と思った機能をいくつか紹介します。Bookingsを使うかどうか迷ったときの参考にしてみてください。

## 勤務時間設定機能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819924/c2922916-83b7-93dc-7984-c39b4f8be2a8.png)

Bookingsの作成ウィザードでも登場したこちらですが、会議室リソースのアクセス権限と合わせるとすごく便利です。
まずはOutlookの管理機能から、特定の会議室に対して予約できる人を**Bookingsが自動作成したシステムユーザのみに限定**しておきます。Bookingsでサービスを作ると [Microsoft Entra ID](https://www.microsoft.com/ja-jp/security/business/microsoft-entra) にシステムユーザが自動登録されるので、このユーザに予約を限定しておけば、Bookingsからのみ場所の予約ができるという状況を作ることができます。
Outlookの予約制限と、Bookingsの勤務時間設定の合わせ技で、特定の時間帯にしか予約できないシステムの出来上がりです。

## メール リマインダー and メールでのフォローアップ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819924/decccac7-cae1-ba47-fe18-0c615fbc8d82.png)

予約の日程に近づいたとき、あるいは予約の日程を過ぎたときに自動的にメールを送ることができます。メールの内容は自由に変えることができるので、TDC HUBではこんな内容を載せています。

- イベントスペースを利用している様子を写真撮影してViva Engageに掲載してもらうお願い
- イベントスペースに対するフィードバックをもらうためのアンケートのお願い
- 社内の公式Webサイトの案内

メールの内容を手厚くすることで満足度が上がると思いますので、ぜひ素敵な文面を考えてみてください。

## さいごに

Bookingsは使い方次第で組織の業務をすごくスマートにしてくれる便利なアプリです。予約に必要な機能をいくつも揃えているので、ぜひ色々と触ってみてほしいです。

[Bookingsの公式サイト](https://www.microsoft.com/ja-jp/microsoft-365/business/scheduling-and-booking-app)にはどんな時に使えばいいか事例をまとめてくれていますので、そちらもぜひどうぞ。皆さんに合った使い方が見つかるかもしれません。

まだまだBookingsの設定を触り切れていないところがありますので、もっといい設定があるよ！という方は是非教えていただけると嬉しいです！