<!-- https://unlockos.io/ja/manual/booking -->

# 予約管理ダッシュボード ヘルプ

## 概要

予約管理ダッシュボードは、施設管理者がゲストの予約を確認・管理し、カレンダーで空き状況を把握し、予約受付に使用するURLの設定を行うための管理画面です。

![予約管理ダッシュボード](https://unlockos.io/help/images/booking/main.ja.webp)

ダッシュボードには6つのタブがあります：

- **カレンダー** — 予約状況カレンダー（月・週・タイムライン表示）。セルをクリックして予約作成、ブロックをクリックして予約詳細を確認できます（デフォルト表示）
- **予約一覧** — ゲストの予約をステータス・日付でフィルタリングして確認する
- **要対応** — iCal連携などで生じた予約衝突（在庫の二重取り）を一覧表示し解決する。未解決件数がある場合はタブに赤い件数バッジが表示されます
- **プラン設定** — 予約受付URL（予約設定）の作成・編集・削除・URL共有
- **チェックイン** — iCal連携や外部連携に紐付いたゲスト向けチェックインURLを確認・コピーする
- **iCal連携** — AirbnbなどのOTAとのiCalフィード連携を設定する

---

## アクセス方法

メインナビゲーションから **予約管理** を選択します。デフォルトではカレンダータブが表示されます。

URLにクエリパラメータを付加することで各タブに直接アクセスすることもできます：

| タブ | URLパラメータ |
|------|-------------|
| カレンダー | （デフォルト、パラメータ不要） |
| 予約一覧 | `?tab=reservations` |
| 要対応 | `?tab=unassigned` |
| プラン設定 | `?tab=configs` |
| チェックイン | `?tab=checkin` |
| iCal連携 | `?tab=ical` |

---

## 詳細機能

## 機能1: 予約一覧タブ

予約一覧タブでは、この施設に届いたゲスト予約が **チェックイン日の新しい順** に表示されます。デフォルトでは過去7日前から90日後までの予約が対象です。

### ステータスフィルター

リスト上部のフィルターボタンで予約をステータス別に絞り込めます：

| フィルター | 表示内容 |
|-----------|---------|
| 全て | ステータスに関わらずすべての予約 |
| 予約申込 | 受付済みだがまだ確定していない予約 |
| 確定済 | 確定された予約 |
| チェックイン中 | 現在チェックイン中のゲスト |
| キャンセル | キャンセルされた予約 |

なお、ステータス一覧では「チェックアウト済」も表示されます（予約カードのバッジで確認できます）。

フィルターを選択すると即座にリストが絞り込まれます。「全て」表示時は、件数が1件以上のステータスに件数バッジが表示されます。

### 検索・日付フィルターバー

ステータスフィルターの下に、テキスト検索・日付絞り込み・リセットのコントロールが並んでいます。

#### テキスト検索

検索ボックスに **ゲスト名**・**メールアドレス**・**予約番号** の一部を入力すると、400ミリ秒のデバウンスを経てリストが自動的に絞り込まれます。大文字・小文字を区別しません。

#### 日付範囲フィルター（DateRangePicker）

カレンダーアイコンをクリックすると日付ピッカーが開きます。チェックイン期間の **開始日** と **終了日** を選択して表示期間を絞り込めます。

| 設定 | 動作 |
|------|------|
| 開始日のみ設定 | 設定日以降に開始する予約を表示 |
| 終了日のみ設定 | 設定日以前に開始する予約を表示 |
| 両方設定 | 指定期間内に開始する予約を表示 |
| デフォルト | 7日前〜90日後 |

#### リセットボタン

**リセット** ボタンをクリックすると、日付フィルターをデフォルト（7日前〜90日後）に戻し、テキスト検索もクリアし、ステータスフィルターも「全て」にリセットされます。

### 予約カードの表示項目

各カードには以下の情報が表示されます：

| 項目 | 説明 |
|------|------|
| ゲスト名 / メール | 予約したゲストの氏名またはメールアドレス |
| ステータスバッジ | 現在のステータス（予約申込 / 確定済 / チェックイン中 / キャンセル） |
| 金額 | 予約の合計金額と通貨 |
| 未払バッジ | 決済が完了していない場合に表示 |
| ソースバッジ | 予約の流入元（直接予約 / Airbnb等のOTA / iCalインポート）を色で識別 |
| チェックイン | チェックイン日時 |
| チェックアウト | チェックアウト日時 |
| 予約番号 | 内部の予約ID |
| メール | ゲストのメールアドレス |
| 備考 | 予約に付属するメモ |

予約カードをクリックすると、画面右側に **予約詳細ドロワー** がスライドインして表示されます。

### ソースカラーコーディング

予約の流入元は色で区別されます：

| 色 | ソース | 説明 |
|----|--------|------|
| 青 | 直接予約 | ダッシュボードから手動作成、またはURLを通じた直接予約 |
| スカイブルー | iCal / Airbnb | iCalフィードからインポートされた予約（Airbnb等） |
| コーラル | OTA | その他のOTA（旅行代理店）からの予約 |

---

## 機能1.5: 予約衝突の警告表示

iCal連携などで在庫の二重取りが発生すると、ダッシュボードの **3 か所** に警告が表示されます。

| 表示場所 | 内容 |
|---------|------|
| **要対応タブのバッジ** | タブ名の右に赤い件数バッジが表示されます。 |
| **カレンダーの警告バナー** | カレンダー上部に赤いバナーが表示されます。クリックすると要対応タブに移動します。衝突に関係する予約バー（後着・勝者いずれも）に ⚠️ マーカーが付きます。 |
| **予約一覧の警告バナーと⚠️マーカー** | 予約一覧の上部に赤いバナーが表示されます。衝突に関係する予約カードは赤い枠線と ⚠️ マーカーで強調されます。 |

要対応タブをクリックすると、衝突した予約の一覧が表示されます。行をクリックすると予約詳細ドロワーが開き、「編集（部屋変更）」または「キャンセル」で解決できます。詳細は[要対応: 予約の重複](unassigned-reservations.md)をご参照ください。

---

## 機能2: カレンダータブ

カレンダータブでは、予約状況をビジュアルで確認できます。空セルをクリックして **その場で予約を作成** でき、既存の予約ブロックをクリックして **詳細を確認** することもできます。

### 表示モードの切り替え

カレンダーヘッダーのコントロールから3段階の表示モードを切り替えられます：

| モード | 説明 | 予約ブロックの表示 |
|--------|------|-----------------|
| 月表示 | 月全体の稼働状況を俯瞰 | 日ごとの予約件数・[+]ボタン |
| 週表示 | 7日間 × 部屋行を一覧 | 部屋ごとの予約バー |
| タイムライン表示 | 時間軸で部屋稼働を確認 | 時間単位の予約バー |

カレンダーヘッダーのナビゲーション矢印で表示期間を切り替えられます。

### カレンダーから予約を作成する

カレンダーの空きエリアをクリックすると、画面右側に **予約作成ドロワー** がスライドインします。クリックした位置に応じて、日付・部屋・時刻が自動入力されます。

| 表示モード | 操作 | 自動入力される情報 |
|-----------|------|-----------------|
| 月表示 | 日付セルの **[+]** ボタンをクリック | チェックイン日 |
| 週表示 | 空きセルをクリック | チェックイン日 + 部屋 |
| タイムライン表示 | 空きエリアをクリック | チェックイン日 + 部屋 + 時刻 |

### 時間貸し・タイムスロット予約のカレンダー表示

時間貸し（hourly）およびタイムスロット（timeSlot）タイプの予約は、**週表示** と **タイムライン表示** で正しく表示されます。

| 表示モード | 時間貸し・タイムスロット予約の表示 |
|-----------|-------------------------------|
| 月表示 | 「空き」グラジエントに含まれない（短時間予約は1日全体をブロックしないため） |
| 週表示 | 予約バーとして部屋行に表示される |
| タイムライン表示 | 時間軸上の予約バーとして正確な時刻に表示される |

> **月表示について:** 月表示では時間貸し予約は稼働率グラジエントに反映されません。これは意図的な仕様です。時間貸し予約の詳細を確認するには週表示またはタイムライン表示に切り替えてください。

### 無料の時間貸し予約の自動確定

合計金額が0円（無料）の時間貸し・タイムスロット予約は、**予約受付と同時に自動で確定** されます。

- 管理者による手動確認は不要です。
- 空き部屋が自動的に割り当てられます。
- 週表示・タイムライン表示で即座にカレンダーに反映されます。

### 既存予約の詳細を確認する

カレンダー上に表示されている予約ブロックをクリックすると、画面右側に **予約詳細ドロワー** がスライドインします。

---

## 機能3: 予約ドロワー

予約ドロワーは、カレンダーのセルをクリックしたとき、または予約一覧の予約カードをクリックしたときに、画面右側からスライドインするパネルです（幅420px）。3つのモードがあります。

### 作成モード

新規予約フォームが表示されます。クリックした位置から日付・部屋・時刻が自動入力されます。

#### 入力項目

| 項目 | 説明 | 必須 |
|------|------|------|
| チェックイン日時 | 宿泊の開始日時 | はい |
| チェックアウト日時 | 宿泊の終了日時 | はい |
| 滞在タイプ | **宿泊** または **時間貸し** を切り替え | はい |
| 部屋タイプ | 部屋タイプを選択 | はい |
| プラン | 選択した部屋タイプに対応するプランを選択 | はい |
| ゲスト名 | 予約者の名前 | いいえ |
| ゲストメール | 予約者のメールアドレス | いいえ |
| メモ | 管理者向けの備考 | いいえ |

#### 予約作成後のアクション

予約を作成すると、続けて2種類のリンクカードが表示されます：

| リンク | 説明 |
|--------|------|
| 未決済の予約リンク | ゲストが決済とチェックインを行うためのスラッグベースのURL |
| 支払い済みの予約リンク | すでに決済済みのゲスト向けに鍵のみを受け渡すURL |

各カードには「リンクをコピー」ボタンと「メールで送る」ボタン（ゲストメール入力時のみ）が表示されます。

### 詳細モード

予約の情報を読み取り専用で表示します。

| 表示項目 | 説明 |
|---------|------|
| ゲスト情報 | 氏名・メールアドレス |
| 日程 | チェックイン〜チェックアウト日時 |
| 金額・支払い状況 | 合計金額と未払い/支払い済みの状態 |
| アクセスコード | ゲスト向けの鍵コード（発行済みの場合） |
| ソースバッジ | 予約の流入元 |
| 編集ボタン | 編集モードに切り替えるボタン |

### 編集モード

詳細モードから **編集** ボタンをクリックすると切り替わります。既存の予約情報が入力済みのフォームが表示され、変更して保存できます。

---

## 機能4: プラン設定タブ

予約設定では、ゲストが予約URLを利用する際に適用されるルールを定義します。各設定は独立した予約「商品」として機能するため、部屋タイプの組み合わせ・料金体系・キャンセルポリシーが異なる場合に複数の設定を作成できます。

### 設定カードの表示項目

各設定カードには以下の情報が表示されます：

| 項目 | 説明 |
|------|------|
| 設定名 | この予約設定の表示名 |
| 有効 / 無効バッジ | 現在予約を受け付けているかどうか |
| 通貨 | 支払いに使用する通貨 |
| 最小予約時間 | チェックイン何時間前まで予約可能か（予約リードタイム） |
| 最大予約日数 | 何日先まで予約可能か |
| ポリシー段数 | キャンセルポリシーの段階数（段の意味は[キャンセルポリシーの設定](#キャンセルポリシーの設定)を参照） |
| プラン | 部屋タイプ×プランマッピングで紐付いたプランの件数 |

### 予約可能ウィンドウの設定（予約リードタイム・最長予約日数）

予約設定フォームでは、ゲストが予約できる時間帯の範囲を制限できます。これらの設定は **サーバー側で厳密に強制** され、この予約設定に紐づく全プランの**既定値**になります。

| 設定項目 | フォーム上の名称 | 動作 |
|---------|----------------|------|
| 予約リードタイム（h） | `min_advance_hours` | チェックイン開始時刻の何時間前まで予約を受け付けるか。例：4時間に設定すると、現在時刻から4時間以内に開始する予約は受け付けられません |
| 最長予約日数 | `max_advance_days` | 本日から何日先まで予約を受け付けるか。デフォルトは90日 |
| 1予約あたり最大利用時間（分） | `max_booking_duration_minutes` | 時間貸し・タイムスロット予約 1 件あたりの最大連続利用時間（分）。空欄で無制限。**宿泊予約は対象外**。延長機能も合計時間がこの上限を超えないようサーバーで強制されます。**チェックイン後の実滞在時間は制限しません**（あくまで予約時の制約です） |

> **プランごとに上書きできます。** 上の3項目（予約リードタイム・最長予約日数・1予約あたり最大利用時間）は、個別のプランがその値を上書きしていない場合に適用される既定値です。「このプランだけ早めに締め切りたい」「このプランだけ長く先まで予約を受けたい」場合は、プラン編集画面の[「予約販売条件（プラン単位の上書き）」](plan-form.md#予約販売条件プラン単位の上書き)から個別に設定してください。

**ゲスト側の表示:**
- 予約リードタイム以内のセルはグレーのストライプで表示され、タップできません
- 最長予約日数を超えた日付はグレーアウトされ、カレンダーで選択できません
- 最大利用時間を超える終了時刻のセルは選択できません（延長フローでも上限超過は拒否されます）
- 範囲外のセルで予約を試みると、エラーメッセージが表示されます
- 表示されるのは選択中のプランに適用される値です（プランが上書きしていれば上書き後の値、していなければこの予約設定の既定値）

> これらの制限はゲストの予約画面（週間グリッド）にリアルタイムで反映されます。設定変更後は即座に有効になります。

### 電話番号のSMS確認（予約時のネイティブ電話欄）

予約設定の編集画面には「**電話番号のSMS確認を必須にする**」というチェックボックスがあります。これはBooking画面でゲストが直接入力する電話欄（プランに紐付いたフォームの携帯番号欄とは別）を対象に、SMSで送る6桁のコードによる確認を必須にする設定です。

- 施設がSMSの送信元（アプリ連携 → SMS/音声通知連携）を設定していない間、このチェックボックスは操作できません
- 有効にすると、確認が済むまでゲストは予約を完了できなくなります。SMSが届かないゲストには施設の連絡先が案内されます
- 送信には実費がかかります（詳しくは[SMS電話番号確認のヘルプ](sms-verification.md)を参照）
- この設定は予約設定（1つの予約受付URL）ごとの単位です。複数の予約設定を運用している場合は、確認を求めたい設定ごとに個別に有効化してください

### お名前の入力欄（予約時のネイティブ氏名欄）

予約設定の編集画面には「**お名前の入力欄**」というドロップダウンがあります。これはBooking画面の「ご予約者情報」カードにあるネイティブの氏名欄（プランに紐付いたフォームの氏名欄とは別）を、1欄にするか姓・名に分けるかを選ぶ設定です。

| 値 | 表示内容 |
|----|---------|
| 1欄（お名前） | 「お名前」欄を1つだけ表示（デフォルト） |
| 姓・名で分ける | 「姓」「名」の2欄を表示 |
| 姓・名 ＋ ふりがな | 「姓」「名」に加えて、ふりがな欄（セイ／メイ）も表示 |

- この設定は予約設定（1つの予約受付URL）ごとの単位です。複数の予約設定を運用している場合は、電話番号のSMS確認と同様、設定ごとに個別に選択してください
- DBカラムは `reservation_configs.name_layout`、デフォルトは `single` です。未設定・既存の予約設定はこれまで通り「1欄（お名前）」のまま動作し、挙動は変わりません
- 「姓・名 ＋ ふりがな」を選んでいても、ふりがな欄はBooking画面が英語表示のときは表示されません（「姓・名で分ける」と同じ表示になります）。ふりがなは常に任意入力です
- 姓・名に分けて入力しても、予約データの氏名（`reservations.guest_name`）は結合されて1本の文字列として保存されます。通知テンプレートの `{{guest_name}}`、KEYVOXに渡す氏名、宿泊者名簿、チェックイン時の氏名照合はすべて変わりません

ゲスト側にどう表示されるかは[予約内容の確認とお支払い](guest-confirm.md)をご参照ください。

### キャンセルポリシーの設定

編集フォームの一番下にある **キャンセルポリシー** で、キャンセルのタイミングごとの手数料（%）を設定します。「チェックイン前(h)」と「手数料(%)」の数値を組み合わせた行を「段（ティア）」と呼び、**＋ ティアを追加** ボタンで複数の段を積み重ねられます。この設定は、この予約設定（1つの予約受付URL）に紐づく全プランの**既定値**です。個別のプランがこの項目を上書きしていない限り共通で適用されます。プランごとに変えたい場合は[プラン編集画面の「予約販売条件（プラン単位の上書き）」](plan-form.md#予約販売条件プラン単位の上書き)から上書きしてください。

> **「チェックイン前(h)」は下限です（上限ではありません）。** 各段は「チェックイン◯時間**以上前**なら手数料△%」を意味し、「◯時間**前まで**」（＝それより後は別の扱い、という意味）ではありません。さらに、**どの段の条件にも当てはまらないキャンセル（最小の段より後 — チェックイン時刻を過ぎた後を含む）は、最小の段がそのまま吸収します。**

この2点の組み合わせにより、**段が1つしかない設定は、いつキャンセルしても同じ料率が適用されます。** 編集画面のプレビューは、この判定を**料率が変わる区間**として表示します。

| 設定 | プレビューの表示 |
|------|------------------|
| `チェックイン前 24h → 手数料 100%` の1段だけ | いつキャンセルしても **100%** |
| `チェックイン前 24h → 手数料 0%` と `チェックイン前 0h → 手数料 100%` の2段 | チェックイン24時間以上前 **0%**<br>チェックイン24時間前を切ってから（チェックイン後も含む） **100%** |

1段目の設定は「24時間以内は100%」のつもりで作られがちですが、実際には**いつキャンセルしても100%**になります。「24時間を切ったら100%、それより前は無料」にしたい場合は、2段目のように**必ず2段**（0%の段＋チェックイン前0時間で100%の段）で登録してください。

**保存前に、編集画面のプレビューで実際の判定結果を確認できます。** キャンセルポリシーの入力欄の下に「**この設定で実際に適用されるキャンセル料**」として、料率が変わる区間（「チェックイン◯時間以上前」「チェックイン◯〜△時間前」「チェックイン◯時間前を切ってから」）ごとに、実際に何%を請求するかが表示されます。**境界がどちら側に属するか**（ちょうど24時間前は無料側）が文面に出るので、「24時間前」という1点だけを見て読み違えることがありません。

さらに、次の3つは警告として表示されます。**どれも「入力したのに効いていない」状態**で、一覧を見ただけでは気づけないものです。

- **無料（0%）になる窓が1つも無い設定** — 「この設定では、どれだけ早くキャンセルしても◯%のキャンセル料がかかります。無料の期間を作るには、手数料0%の段を追加してください。」
- **一番下の段の「チェックイン前(h)」に0以外を入れた設定** — 最小の段はそれより後のすべて（チェックイン後を含む）を吸収するので、その数値は判定に使われません。`24h→0%` と `5h→100%` の2段は、`24h→0%` と `0h→100%` の2段と**完全に同じ動き**になります（ただし同じ時間の段が2つある場合は別で、上の段の境界として効いているため警告は出ません）
- **同じ「チェックイン前(h)」の段が複数ある設定** — 実際に適用されるのは一番上の1つだけで、残りは一切適用されません。**＋ ティアを追加** は常に24時間を既定値で積むので、続けて押すとこの状態になりやすいです

段を追加・変更するたびにこのプレビューが更新されるので、公開前に必ず確認してください。

> **回数券を販売している施設は特に注意してください。** このキャンセルポリシーは、返金額だけでなく[回数券](ticket-books.md)の残高が戻るかどうかも決めます。手数料0%（全額返金）の段でキャンセルした場合だけ回数券の残高が戻り、手数料が1%でも発生する段ではキャンセルすると回数券は失効します。つまり「無料の窓が無い」設定は、そのプランに紐づく回数券が**予約後は一切戻らない**ことも意味します。詳しくは[回数券のFAQ「回数券で予約した後にキャンセルすると、枚数は戻りますか？」](ticket-books.md#q-回数券で予約した後にキャンセルすると枚数は戻りますか)を参照してください。

### 新規設定の作成

設定タブ右上の **新規作成** ボタンをクリックして、予約設定フォームを開きます。

各項目の詳細（部屋タイプ×プランマッピングの設定方法を含む）は[予約設定フォームのヘルプ](reservation.md)をご参照ください。

### 対応プラン種別（予約可能プラン vs 施設内課金専用）

プラン一覧で作成できるプラン種別は6種類ありますが、**予約URLからゲストが予約できるのは4種類（予約可能プラン）のみ** です。残り2種類は施設内での課金専用のため、この画面の「部屋タイプ × プラン」マッピングには表示されません。

| 区分 | プラン種別 | この画面に表示 | 用途 |
|------|-----------|---------------|------|
| **予約可能プラン** | 宿泊予約 | はい | ゲストがチェックイン/アウト日時を選んで予約 |
| **予約可能プラン** | 時間課金 | はい | ゲストが時間単位で予約 |
| **予約可能プラン** | 時間帯別予約 | はい | 固定の時間枠（例：10-13時）でゲストが予約 |
| **予約可能プラン** | 固定＋超過 | はい | 「最初の3時間は定額、以降は延長料金」のような段階課金プランで予約（#3041） |
| **施設内課金専用** | 一日固定 | いいえ | 施設内で当日利用するゲスト向けの日額固定課金 |
| **施設内課金専用** | ワンタイム | いいえ | 単発の鍵発行用課金 |

> ヒント: ゲスト向けの予約受付ページを作る場合は、プラン一覧で **「宿泊予約」「時間課金」「時間帯別予約」「固定＋超過」** のいずれかを作成し、この画面で部屋タイプに紐付けてください。

### 部屋タイプ × プランの並び順

「部屋タイプ × プラン」で選択したプランは、**↑↓ ボタン**またはドラッグで並べ替えられます。並べ替えられるのは**選択済みのプランどうしの中だけ**です — 選択済みのプランは自動的に先頭にまとまり、未選択のプランはその下に続きます。ここで決めた順序が、そのままゲスト向け予約アプリのプランカードの表示順になります（#3068）。

### 設定の編集

設定カードの **鉛筆（編集）アイコン** をクリックすると、編集フォームが開きます。

### 予約URLのコピー

各設定には固有のゲスト向け予約URLが生成されます。URLをコピーする手順：

1. 設定カードの **リンク（URLコピー）アイコン** をクリックします
2. URLが自動的にクリップボードにコピーされます
3. 「コピーしました」という確認メッセージが短時間表示されます

URLの形式（施設スラッグが設定済みの場合）：

```
https://booking.unlockos.io/{スラッグ}?config=<設定ID>
```

施設スラッグが未設定の場合は旧来の形式が使用されます：

```
https://booking.unlockos.io?facilityId=<施設ID>&configId=<設定ID>
```

このURLをゲストにメール・Webサイト・メッセージなどで共有することで、その設定に基づいた予約受付が可能になります。スラッグはBasic Settings（基本設定）の「App URL」で設定できます。

### 設定の削除

設定カードの **削除アイコン** をクリックして削除します：

1. 確認ダイアログが表示されます
2. **削除** をクリックして確定します — この操作は取り消せません

> 注意：設定を削除しても、その設定で作成済みの予約は削除されません。設定のみが削除され、以後そのURLでの新規予約は受け付けられなくなります。

---

## 機能5: チェックインタブ

> **注**: 旧「機能5 ゲストフォームタブ」(`?tab=guestForm`) は 2026-05-19 に削除されました。フォーム編集はメインメニューの **[フォーム管理 (`/forms`)](forms.md)** に移行してください。施設所在国（ホスト国）の挙動も新フォーム管理画面に同等機能があります。

チェックインタブでは、iCal連携または外部連携（ねっぱん！など）に紐付いたゲスト向けチェックインURLを一覧で確認・コピーできます。プラン設定タブとiCal連携タブの間に配置されています。

### 表示内容

iCalフィードまたはサイトコントローラー連携が登録されていると、各エントリーにURLカードが表示されます：

| 項目 | 説明 |
|------|------|
| 設定名 | このURLに紐付けられたチェックイン設定の名前 |
| ソースバッジ | 予約ソースの種別（`iCal` または `neppan` など）の色付きバッジ |
| 部屋名 | iCalフィードに紐付けられた部屋名（該当する場合） |
| チェックインURL | ゲストと共有するためのURL（モノスペースで表示） |
| コピーボタン | URLをクリップボードにコピーするボタン |

### 連携がない場合

iCalフィードもサイトコントローラー連携も登録されていない場合、「予約ソースが接続されていません」という警告メッセージが表示されます。**iCal連携** または **接続設定 → 外部連携** でいずれかの連携を設定してください。

このタブの詳細については[iCal連携](ical-config.md)および[外部連携](integration.md)をご参照ください。

---

## 機能6: iCal連携タブ

iCal連携タブでは、AirbnbなどのOTA（旅行代理店プラットフォーム）のiCalフィードを登録し、外部からの予約を自動的にインポートできます。登録したフィードは定期的に同期され、予約一覧とカレンダーに反映されます。

### iCalフィードの登録

1. **iCal URL** 欄に、OTAからコピーしたiCalのURLを貼り付けます
2. **部屋** ドロップダウンから、この連携に対応する部屋を選択します（検索でフィルタリング可能）
3. **ゲストフォーム** トグルで、チェックイン時にゲストがフォームを入力するかどうかを設定します（デフォルト: ON）
4. **フィードを追加** ボタンをクリックします
5. 登録完了後、「チェックインタブへ」ボタンが表示されます — クリックするとチェックインURLを確認できます

このタブの詳細なドキュメントは[iCal連携](ical-config.md)をご参照ください。

### フィードカードの表示項目

登録済みのiCalフィードは各フィードカードに以下の情報が表示されます：

| 項目 | 説明 |
|------|------|
| フィード名 / URL | 登録したiCalフィードの識別名またはURL |
| 最終同期日時 | 最後に同期が実行された日時 |
| 同期件数 | 最後の同期でインポートされた予約件数 |
| 同期ステータス | 成功 / エラーのステータス |
| マッチングモード | ゲスト本人確認 / ホスト管理のどちらのチェックイン方式か |
| ゲストフォーム | このフィードでゲストフォームを要求するかどうか（ON/OFF） |

### ゲストフォームの ON/OFF

各フィードの **ゲストフォーム** 列のボタンをクリックすることで、フィードごとにゲストフォームの入力を要求するかどうかを切り替えられます。ONの場合、ゲストはセルフチェックイン時にパスポート情報などのフォームを入力する必要があります。

### マッチングモードの切り替え

各フィードには2種類のマッチングモードがあります：

| モード | 説明 |
|-------|------|
| ゲスト本人確認 | ゲストが予約番号などを入力して自己認証するフロー |
| ホスト管理 | ホスト（管理者）が予約と鍵発行を管理するフロー |

フィードカードのトグルをクリックしてモードを切り替えられます。

### 手動同期

フィードカードの **同期** ボタンをクリックすると、そのフィードの予約を即時に取得・更新します。

### フィードの削除

フィードカードの **削除** ボタンをクリックすると確認モーダルが表示されます。「削除する」をクリックして確定するとフィードが削除されます。削除後はそのフィードからの自動同期が停止します。すでにインポート済みの予約は残ります。


---

## 予約受付フローの設定手順（ステップバイステップ）

施設のオンライン予約受付を設定するには、以下の順序で3つの手順が必要です。

### ステップ1: プランを作成する

**プラン管理** に移動し、部屋タイプに対応した料金プランを作成します。予約URL経由でゲストに販売するには、**予約可能プラン4種類のいずれか**（宿泊予約 / 時間課金 / 時間帯別予約 / 固定＋超過）でプランを作成してください。

> 「一日固定」「ワンタイム」は施設内課金専用のため予約URLには紐付けられません。詳しくは上記「[対応プラン種別](#対応プラン種別予約可能プラン-vs-施設内課金専用)」を参照してください。

### ステップ2: 予約設定を作成する

**プラン設定** タブで **新規作成** をクリックし、以下の手順を行います：

1. 設定名を入力します
2. **部屋タイプ × プラン** セクションで、ゲストに提供する部屋タイプとプランの組み合わせを選択します
3. 通貨・予約可能期間・キャンセルポリシーを設定します
4. 設定を保存します
5. 生成された予約URLをコピーしてゲストに共有します

> 重要：ゲスト向け予約ページに表示されるのは、少なくとも1つの予約設定に「部屋タイプ × プラン」マッピングとして追加された部屋タイプのみです。このステップを完了することで、ゲストが部屋タイプを選択して予約できるようになります。

---

## よくある質問

### Q: プラン一覧で作成した「一日固定」「ワンタイム」プランが予約管理 > プラン設定の新規作成画面に出てきません

仕様です。予約URLからゲストが予約できるのは **「宿泊予約」「時間課金」「時間帯別予約」「固定＋超過」** の4種類（予約可能プラン）のみで、これらだけが「部屋タイプ × プラン」マッピングに表示されます。「一日固定」「ワンタイム」は施設内で直接利用するゲスト向けの課金専用プランで、予約URL のフロー（ゲストが日時を選んで予約する）には対応していません。詳しくは「[対応プラン種別](#対応プラン種別予約可能プラン-vs-施設内課金専用)」を参照してください。

### Q: 「要対応」タブに赤いバッジが表示されています

iCal連携などで予約の衝突（在庫の二重取り）が発生しています。「要対応」タブをクリックして一覧を確認し、衝突した予約を解決してください。詳細は[要対応: 予約の重複](unassigned-reservations.md)をご参照ください。

### Q: 時間貸し予約がカレンダーに表示されません

週表示またはタイムライン表示に切り替えてください。月表示では時間貸し・タイムスロット予約は稼働率グラジエントに表示されません（短時間の予約は1日全体をブロックしないためです）。

### Q: 無料の時間貸し予約を手動で確定する必要がありますか？

いいえ。合計金額が0円（無料）の時間貸し・タイムスロット予約は予約受付と同時に自動確定・部屋割り当てが行われます。

### Q: 姓・名で分けると、通知メールやKEYVOXに渡る名前は変わりますか？

変わりません。姓・名（＋ふりがな）に分けて入力しても、予約データの氏名は1本の文字列に合成されて保存されます。姓・名の両方が日本語（かな・漢字、英字を含まない）で入力された場合はスペースなしで結合（例：「山田」+「太郎」→「山田太郎」）、それ以外（英字を含む場合）は「名 姓」の順にスペースを入れて結合されます（例：「Taro」+「Yamada」→「Taro Yamada」）。通知テンプレート・KEYVOXに渡す氏名・宿泊者名簿・チェックイン時の氏名照合は、すべてこの1本化された氏名を参照します。

### Q: 「予約申込」と「確定済」の違いは何ですか？

「予約申込」は予約を受け付けたが、まだ処理が完了していない状態です。「確定済」は予約が承認され、アクセスコードが発行された状態です。

### Q: カレンダーから予約を作成するにはどうすればいいですか？

カレンダータブを開き、空きセル（月表示なら[+]ボタン、週表示・タイムライン表示なら空きエリア）をクリックしてください。画面右側に予約作成ドロワーが表示されます。

### Q: Airbnbからインポートされた予約はどこで確認できますか？

予約一覧タブとカレンダータブの両方で確認できます。iCal/Airbnbからの予約はスカイブルーのソースバッジで表示されます。

### Q: 予約設定は複数作成できますか？

はい、必要な数だけ作成できます。部屋タイプ・料金体系・キャンセルポリシーが異なる場合に、それぞれ別の予約URLで受け付けることができます。

### Q: 設定を削除すると既存の予約はどうなりますか？

既存の予約には影響しません。削除後は、そのURLでの新規予約のみ受け付けられなくなります。

### Q: コピーした予約URLをどこで使えばよいですか？

ゲストはWebブラウザでURLを開くと、空き状況を確認して予約できます。メール・自社Webサイト・QRコードなどで共有してください。

### Q: 作成した部屋タイプがゲスト向け予約ページに表示されません

部屋タイプがゲスト向け予約ページに表示されるのは、少なくとも1つの有効な予約設定の「部屋タイプ × プラン」マッピングに追加されている場合のみです。以下を確認してください：

1. **プラン設定** タブで対象の設定を編集し、**部屋タイプ × プラン** セクションにその部屋タイプとプランが設定されていることを確認します。
2. いずれの設定にも紐付いていない部屋タイプは、有効であってもゲストには表示されません。

### Q: 検索しても予約が見つかりません

テキスト検索はゲスト名・メールアドレス・予約番号に対して行われます。日付フィルターの設定期間外の予約は表示されないため、リセットボタンを押してデフォルト条件に戻してから再度検索してください。

### Q: 古い予約が表示されません

デフォルトの日付フィルターは「7日前〜90日後」です。それより古い予約を見るには、DateRangePickerで開始日を遡って指定してください。

### Q: iCal連携でAirbnbの予約を自動取り込みするにはどうすればいいですか？

**iCal連携** タブを開き、AirbnbのiCalエクスポートURLを貼り付け、対応する部屋を選択して「フィードを追加」をクリックしてください。登録後に表示されるチェックインURLをAirbnbの到着ガイドに設定すると、ゲストが自動でチェックインできるようになります。

### Q: iCalフィードの同期はどのくらいの頻度で行われますか？

フィードは自動で定期同期されます。すぐに反映させたい場合は、フィードカードの **同期** ボタンをクリックして手動同期を実行してください。

### Q: 予約リードタイムを設定しましたが、ゲストが直前まで予約できてしまいます

予約リードタイム（`min_advance_hours`）が設定されていない（空欄）の場合、制限は適用されません。また、この設定は予約設定フォーム（プラン設定タブ > 設定の編集）で設定する、この予約設定に紐づく全プランの**既定値**です。該当のプランが個別にこの項目を上書きしている場合は、上書きされた値が優先されます。プラン側の上書きがないか、[プラン編集画面の「予約販売条件（プラン単位の上書き）」](plan-form.md#予約販売条件プラン単位の上書き)を確認してください。

### Q: ゲストから「グリッドのセルが選択できない」という問い合わせが来ました

主な原因は次のとおりです：（1）予約リードタイム以内のセル（現在時刻から X 時間以内）、（2）最長予約日数を超えた日程、（3）予約設定の最大利用時間を超える終了時刻、（4）営業時間外、（5）他の予約で埋まっているセル。エラーメッセージが表示されている場合は、その内容を確認してください。

### Q: 「予約開始の○時間前までに予約が必要です」というエラーが表示されます

予約設定の「予約リードタイム」に設定した時間以内に開始する予約は受け付けられません。より先の日時の予約を選択してください。

### Q: 「本日から○日先までしか予約できません」というエラーが表示されます

予約設定の「最長予約日数」を超えた日程は予約できません。施設に設定変更を依頼してください。

---

## 関連ページ

- [予約カレンダーの使い方（月・週・タイムライン表示、モバイル最適化）](reservation-calendar.md)
- [要対応: 予約の重複（衝突解決）](unassigned-reservations.md)
- [予約設定フォーム（作成・編集）](reservation.md)
- [フォーム管理](forms.md)
- [ゲスト予約アプリ（予約の確認・管理）](reservation-guest.md)
- [チェックイン（鍵の受取方法）](guest-checkin.md)
- [プラン一覧（料金プランの管理）](plan-list.md)
- [iCal連携（Airbnb / OTA 連携）](ical-config.md)
- [外部連携（サイトコントローラー連携）](integration.md)
- [共有型予約（コワーキング席予約）](shared-capacity-booking.md)
- [回数券](ticket-books.md)
- [SMS電話番号確認](sms-verification.md)

---

最終更新: 2026-09-27 - 予約リードタイム・最長予約日数・キャンセルポリシーがプラン単位で上書きできることを追記 (#4189)
