Googleフォームで予約システムは自作できる?定員設定とGAS活用術【2026年版】

2026年2月26日(木)
目次
  • 1. 導入
    • 2. 前提条件
      • 3. 手順(PC)
        • 4. Jicoo(ジクー)について

        導入

        「無料で予約システムを作りたいけれど、ダブルブッキングで謝罪メールを送る休日を過ごしたくない」

        コストを抑えて予約受付を自動化したい小規模事業者や社内イベントの幹事の方にとって、Googleフォームは最初に思い浮かぶ選択肢ではないでしょうか。しかし、いざ運用を始めてみると、手作業での定員管理や予約枠の更新に追われ、現場は悲鳴を上げているはずです。

        本記事では、GoogleフォームとGAS(Google Apps Script)を組み合わせて、定員設定や自動返信を備えた予約システムを自作する方法を解説します。同時に、無料ツールゆえに抱える構造的な弱点と、それを乗り越えてコア業務に集中するための実践的なアプローチも提示します。

        この記事を読むことで、Googleフォームで予約システムを構築する具体的な手順と、専用ツールへ移行すべきタイミングの判断基準がわかります。

        前提条件

        作業を始める前に、以下の環境と前提知識を確認しておきましょう。

        • 必要な環境:GoogleアカウントおよびPCブラウザ(GASの編集にはPC環境が必須です)
        • 対象読者:コストをかけずに予約受付を行いたい個人事業主、小規模チームの担当者
        • 重要な前提:Googleフォームの標準機能には「時間枠ごとの在庫管理」や「定員設定」の機能が存在しません。

        アンケート収集を主目的とするGoogleフォームには、そもそも「在庫」という概念がありません。そのため、特定の時間枠が満席になったら自動で受付を停止するには、スプレッドシートとGASを用いた拡張カスタマイズが不可欠となります。

        手順(PC)

        ここからは、実際にPCを使って予約システムを構築する手順を見ていきましょう。

        Googleフォームで予約システムを作る基本ステップ

        まずは、予約の受け皿となるフォームとデータベースを準備します。

        1. フォームの作成:Googleフォームを新規作成し、氏名、メールアドレス、希望日時(プルダウン形式)の質問を設けます。
        2. スプレッドシートの連携:回答タブから「スプレッドシートにリンク」をクリックし、回答を記録するシートを作成します。
        3. 在庫管理シートの追加:作成されたスプレッドシート内に新しいタブ(例:在庫管理)を追加し、各日時の「定員数」と「現在の予約数」を計算する関数を設定します。

        Googleフォームの回答タブとスプレッドシート連携ボタン

        【コピペOK】GASで定員設定と自動返信を実装する方法

        次に、フォームの送信をトリガーにして動くプログラム(GAS)を設定します。スプレッドシートのメニューから「拡張機能」>「Apps Script」を開き、以下のロジックを実装します。

        実務的には、以下の3つの処理を順番に行うスクリプトを記述します。

        1. 回答の取得:送信されたメールアドレスと希望日時を取得する。
        2. 定員の判定と選択肢の更新:スプレッドシートの在庫を確認し、満席になった日時はフォームのプルダウン選択肢から削除する。
        3. **自動返信メールの送信:予約完了の案内メールを自動で送信する。

        ここで最も重要なのが、LockService**(排他制御)の導入です。

        function onFormSubmit(e) {
          // 排他制御の開始(ダブルブッキング防止)
          var lock = LockService.getScriptLock();
          try {
            lock.waitLock(10000); // 10秒間ロックを取得
            
            // ここに在庫確認・選択肢更新・自動返信の処理を記述
            
          } catch (e) {
            Logger.log('同時アクセスによるエラー: ' + e);
          } finally {
            lock.releaseLock(); // ロックの解除
          }
        }
        

        GASのエディタ画面とLockServiceの記述部分

        このスクリプトを保存し、トリガー設定画面から「フォーム送信時」に実行されるよう設定すれば、擬似的な予約システムの完成です。ただし、GASのコードはGoogle側の仕様変更により突然動作しなくなる可能性があるため、公開時の動作確認が必須だと考えます。

        手順(スマホ)

        スマートフォンからの設定についてですが、結論から言うとスマホでの予約システム構築(特にGASの編集)は推奨できません。

        • 画面サイズの制約:GASのエディタはモバイルブラウザに最適化されておらず、コードの記述やデバッグが極めて困難です。
        • 現実的な運用:スマホからは、完成したフォームの表示確認や、スプレッドシートアプリを通じた予約状況の閲覧にとどめるのが無難です。

        現場感としては、移動中や外出先で予約の入り具合をスマホのアプリからサッと確認できる状態にしておくのが、最もストレスのない運用方法ではないでしょうか。

        よくある失敗と対処

        自作の予約システムを運用する中で、多くの現場が直面する代表的なトラブルとその対処法をまとめました。

        Googleフォーム予約の致命的な弱点:ダブルブッキングのリスク

        「残り1枠のところに、2人の顧客がほぼ同時に申し込んでしまった」

        これは、Googleフォーム予約において最も恐ろしいシナリオです。前述した LockService を実装していない場合、スクリプトが在庫を減らす処理を完了する前に別の申し込みが通過してしまい、定員オーバーが発生します。手作業で謝罪と日程再調整の連絡を行う疲労感は、チームの雰囲気や心理的安全性を著しく低下させます。厳密な先着順処理が求められるビジネス用途では、このリスクを常に抱えることになります。

        GASのメール送信上限(1日100通の壁)

        無料のGoogleアカウント(Gmail)を使用している場合、GAS経由で送信できるメールは1日あたり100通までという制限があります。 イベントの告知直後など、短期間に予約が殺到した場合、自動返信メールが途中でストップしてしまうリスクがあります。大規模な受付を行う際は、Google Workspaceアカウントの利用を検討するか、後述する専用ツールの導入が必要です。

        メンテナンスの属人化

        「作った担当者が退職してしまい、エラーが出ても誰も直せない」というのもよくある失敗パターンです。自作システムは初期費用が無料である反面、保守運用にかかる見えないコストが高くつく傾向にあります。

        運用を安定させるには

        GoogleフォームとGASによる自作は、あくまで「擬似的な予約システム」です。事業の成長に伴い予約数が増えてきたら、手動運用や自作スクリプトの保守から脱却し、専用ツールへ移行することが、結果的に最もコストパフォーマンスが高くなります。

        ここでは、2026年2月26日時点で検討すべき、Googleフォームの代替となる予約ツールを3つ紹介します。

        1. freee予約(旧tol) 2026年2月に名称変更された、スマホ完結型の予約システムです。無料プランでも予約件数に制限がなく、プログラミングの知識がなくても直感的に定員管理やリマインドメールの設定が可能です。
        2. formrun フォーム作成に特化したツールですが、有料プランであれば選択肢ごとの定員設定(在庫管理)が可能です。顧客管理機能も充実していますが、無料プランでは月間回答数などの制限がある点に注意が必要です。
        3. Jicoo 日程調整と予約受付の自動化に特化した連携ツールです。普段お使いのカレンダー連携を行うことで、空き枠のみを自動で抽出し、予約が入れば即座にカレンダーへ反映されます。これにより、ダブルブッキングを構造的に防ぐことができます。

        Jicooの予約受付画面とカレンダー同期設定

        実務的には、予約の受付からカレンダーへの登録、Web会議URLの発行、事前リマインドまでをすべて自動化することで、担当者の心理的負担は劇的に下がります。顧客と向き合い、本来のサービス提供というコア業務に集中できる環境を作ること。それこそが、ツール導入によって得られる人間中心の価値だと考えます。

        まとめ

        GoogleフォームとGASを使えば、コストをかけずに定員管理付きの予約システムを自作することは可能です。しかし、ダブルブッキングのリスクやメンテナンスの属人化といった課題が常につきまといます。

        まずは現在の予約件数と、トラブル対応にかかっている見えない工数をチームで棚卸ししてみてください。もし「休日に予約状況を気にしてしまう」状態であれば、それはシステム移行の明確なサインです。

        より安全で確実な運用を目指すなら、まずは無料から試せる日程調整ツールの導入を検討し、自動化による業務改善の第一歩を踏み出してみてはいかがでしょうか。さらに詳しい業務効率化のヒントについては、ブログの関連記事もぜひ参考にしてください。

        Jicoo(ジクー)について

        予約システムを導入すると収益、業務効率化に多くのメリットがあります。どの予約システムが良いか選択にお困りの方は、普段使っているGoogleカレンダーやOutlookなどのカレンダーサービスをベースにした予約管理システムの導入がおすすめです。

        チームで使える予約管理システム「Jicoo」とは?

        Jicoo(ジクー)は無料で使えて予約管理、事前決済(集金)、顧客管理まで対応。PC・スマホどちらでも見やすく使いやすい予約システムです。
        カレンダーと接続して予約ページ作成
        カレンダーと接続して予約ページ作成
        GoogleカレンダーやOutlookなど利用中のカレンダーサービスと接続するだけで予約ページを作成。
        空き状況をリアルタイムに表示
        空き状況をリアルタイムに表示
        カレンダーの予定を確認し、予約可能な日程を自動で表示します。メールやチャット等で作成した予約ページのURLを共有して、日時を予約してもらいましょう。
        Web会議のURLも自動で発行
        Web会議のURLも自動で発行
        ゲストが都合の良い日時を選択すると予約完了。あなたのカレンダーに予定が自動で入りWeb会議のURLも自動で発行されます。
        法人・チーム利用のお問い合わせ
        シェア