習い事のフリータイム予約を管理する方法|空き枠を見せても予約が回らない理由

「受講生が自分で予約できるようにしたい」。習い事や語学スクールなど、受講日が固定されないレッスンを提供しているスクールから、スクール管理の相談としてよくいただく要望です。ただし予約の仕組みをつくるとき、作業量の大半を占めるのは空き枠の表示ではありません。本事例では、時間と残席から選ぶ「フリータイムレッスン」の予約受付をどのように設計したかをご紹介します。
スクール管理システム「TechnoSMS」を開発するTECHNOPIAN株式会社の広報。「業務をシステムに合わせるのではなく、業務のためのシステムを作る」が信条。数十社以上の導入指揮経験を活かし、徹底した要件定義によって、スクール独自の複雑な運用ルールを最適なシステムにする過程をお伝えします。
この事例の要点(サマリ)
- 受講生の操作は「日程を選ぶ → 時間帯を選んで『予約』を押す → 予約確認画面で『予約確定』を押す」の3ステップです
- 作り込みの中心は空き枠の表示ではなく、予約させてはいけない条件をシステム側に持たせることでした
- 確定の手前で止める条件は6つあります(詳しくは「6つの条件で、確定の手前で止める」をご覧ください)
- 受付できる期間にも制約を置いています(設定の考え方は「受付期間の設計」をご覧ください)
- 運用の負荷を下げる仕掛けも入れています(詳しくは「レベル未定の枠に予約すると、レベルが確定する」をご覧ください)
- 予約管理はオプションとしてご用意しており、本事例の条件判定はカスタマイズで設計しています
フリータイムレッスンの予約は、「空きを見せる」だけでは成立しない

フリータイムレッスンは、あらかじめ用意された時間帯の中から、受講生が都合のよい枠を選んで受講する形式です。曜日固定のレッスンと違い、毎回の予約が発生します。
窓口や電話で受け付けている場合、スタッフ側では次のような確認が毎回発生します。
- この受講生は、その日時に予約できる契約になっているか
- 残りの受講回数はあるか
- すでに先の予約を入れすぎていないか
- 受講レベルは、その枠に合っているか
- その枠はまだ空いているか
- 同じ時間帯に、別の予約が入っていないか
受講生が自分で予約できるようにするということは、この確認をすべてシステムに移すということです。予約画面をつくる作業の中身は、実質的にこの確認ロジックの実装だと言えます。
受講生の操作は3ステップ

受講生から見た流れはシンプルです。
1. 日程を選ぶ
マイページの「レッスン予約」から「フリータイムレッスン」を選びます。カレンダーから直接選ぶか、「翌日へ」「前日へ」のボタンで日付を移動して、希望の日程を表示します。
2. 時間帯を選んで「予約」を押す
その日に開講されている時間帯が一覧で表示されるので、希望の時間帯を選んで「予約」を押します。予約確認画面に進みます。
3. 予約確認画面で「予約確定」を押す
予約確認画面で内容を確認し、「予約確定」を押すと、予約が成立します。この時点で、受講生の登録メールアドレスへ完了通知メールが自動送信されます。
操作としてはこれだけです。受講生が意識するのは「いつ・何時から受けるか」だけで、契約や残回数の確認は画面の裏側で終わっています。
転換点——作り込みの大半は「予約させない条件」にある

本事例で実装量の大半を占めたのは、予約を受け付ける処理ではなく、予約を止める処理でした。予約の仕組みの完成度は、通してはいけない申し込みを何種類、どの画面段階で止められるかで決まります。
6つの条件で、確定の手前で止める
止めるべき条件と、止める画面の段階は次のとおりです。
| 止める条件 | 判定するタイミング | 受講生に表示される内容 |
|---|---|---|
| 対象コースの登録がない/残回数が0 | 「フリータイムレッスン」を選んだ時点 | 登録がないか残回数がない旨を表示し、予約に進めない |
| 未来の予約が既に2件ある | 「フリータイムレッスン」を選んだ時点 | すでに2回分の予約を受け付けている旨を表示 |
| 登録レベルと枠のレベルが一致しない | 「予約」を押した時点 | 登録レベルと一致しないため予約できない旨を表示 |
| 予約可能な期間の範囲外 | 「予約」を押した時点 | 予約可能な日程外である旨を表示 |
| 確定の瞬間に満席になった | 「予約確定」を押した時点 | 満席となったため予約できない旨を表示 |
| 既存の予約と時間が重複している | 「予約」を押した時点 | すでに予約済みのスケジュールと重複がある旨を表示 |
判定を段階で分けているのには理由があります。契約や残回数のように入口で分かることは最初に止め、レベル・期間・重複のように枠を選んだ時点で分かることは「予約」を押した時点で止めます。満席だけは確定の瞬間まで決まらないため、最後に止めます。同じ枠を2人が同時に押した場合でも、先に確定した側だけが成立します。
受付期間の設計——受講日時を基準に締め切りを決める
予約を受け付ける期間は、受講日時を基準に設定します。「受講日時の○時間前まで」「受講日の2日前の12時まで」のように、受講日から何日前(または何日前の何時)で区切る形です。
本事例では、次のように設定しています。
- 受講日の13日前から予約を受け付けます
- 受講日の前日21時で締め切ります
前者は、講師や教室の手配が間に合う範囲に予約を収めるための設定です。後者は、当日の準備が始まったあとの飛び込み予約を防ぐためのものです。
こうした締め切りは、現場の運用の都合で決まります。「何時までなら、翌日の準備に間に合うか」を先に決めておくと、実装は素直に進みます。
レベル未定の枠に予約すると、レベルが確定する

もう1つ、運用上の仕掛けがあります。レベルがまだ決まっていないスケジュールに予約を入れると、その受講生のレベルが、その枠のレベルとして登録されるという挙動です。
レベル別に開講する語学スクールでは、レベルの管理そのものが運用の負荷になります。予約という行為をレベル確定のきっかけとして使うことで、別途の登録作業を挟まずに済みます。
こんな課題があれば、同じ設計で解決できます
以下に当てはまる状況であれば、本事例と同じ考え方で対応できる可能性が高いです。
- 予約を電話や窓口で受けており、受付のたびに契約内容と残回数を確認している
- 受講生に予約を開放したいが、条件に合わない申し込みが通ってしまうのが怖い
- 同じ枠に二重で予約が入り、あとから調整する手間が発生している
- 受講可能な期間や締め切りが、担当者ごとの判断になっている
- レベル別の開講をしており、レベルの管理が手作業になっている
まとめ
ここまでにご説明した内容を、課題と対応の対で一覧にすると次のとおりです。詳細はそれぞれの章をご覧ください。
| 課題 | 本事例の対応 |
|---|---|
| 受付のたびに契約・残回数を確認している | 入口の段階でシステムが判定し、予約に進ませない |
| 先の予約を取りすぎる受講生がいる | 未来の予約件数に上限を設ける |
| レベルに合わない枠に申し込まれる | 予約ボタンの時点でレベルの一致を判定 |
| 同じ枠が二重に埋まる | 「予約」の時点で重複を、確定の瞬間に満席を判定 |
| 当日の準備後に予約が入る | 受付期間と時刻の締め切りを制約として持たせる |
予約の仕組みは、空き枠を見せる画面のことではありません。通してはいけない申し込みを、正しい段階で止められるかどうかが実用性を決めます。
テクノピアンの提案は、製品説明にとどまりません。お客様のレッスンがどのような条件で成り立っているかを一緒に整理しながら、予約画面と受付ルールを同時に設計していきます。ご相談では、現在の受付フローの整理と、どこまでをシステムで受けられるかのご説明が可能です。
「受付のルールがまだ整理できていない」という段階でも、どうぞお気軽にご相談ください。

スクール管理システム「TechnoSMS」を開発するTECHNOPIAN株式会社の広報。「業務をシステムに合わせるのではなく、業務のためのシステムを作る」が信条。数十社以上の導入指揮経験を活かし、徹底した要件定義によって、スクール独自の複雑な運用ルールを最適なシステムにする過程をお伝えします。
