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

# iCal連携 ヘルプ

## 概要

iCal連携タブでは、AirbnbやBooking.comなどのOTAの予約カレンダーをUnlockOSと接続し、ゲストの予約を自動でインポートできます。iCalフィードはそれぞれ施設内の特定の **部屋** に紐付けて登録します。登録直後に初回自動同期が実行され、以降は定期的に自動同期が行われます。インポートされた予約は予約一覧とカレンダーに表示されます。

このタブでできること：

- iCalフィードURLを登録して部屋に紐付ける（登録直後に初回同期が自動実行されます）
- 登録済みフィードの一覧と同期ステータスの確認
- 手動で即時同期を実行する
- URLを編集してカレンダーURLを安全に差し替える（ダブルブッキングなし）
- マッチングモードをゲスト本人確認またはホスト管理に切り替える
- フィード追加後のチェックインURLはチェックインタブで確認・コピーする
- メール転送アドレスを使って予約確認メールから予約をインポートする

---

## アクセス方法

予約管理ダッシュボード → **iCal連携** タブ

またはURLパラメータで直接アクセス: `?tab=ical`

---

## 詳細機能

## 機能1: iCalフィードの追加

新しいiCalフィードを登録する手順：

1. OTA（Airbnb、Booking.comなど）のiCalエクスポートURLをコピーします。
2. **iCal URL** フィールドに貼り付けます。
3. ドロップダウンから、このフィードに対応する **部屋** を選択します（部屋名で検索してフィルタリングできます）。
4. **フィードを追加** ボタンをクリックします。

追加が完了すると、**登録と同時に初回同期が自動的に実行されます**。同期完了後、インポートされた予約が予約一覧に反映されます。緑色の成功バナーが表示されたら **チェックインタブへ** ボタンをクリックして、チェックインタブに移動しゲスト向けチェックインURLを確認・コピーできます。

> iCal URLと部屋の選択はどちらも必須です。どちらかが未入力の場合、「フィードを追加」ボタンは無効状態になります。

> 大容量のカレンダー（長期間の予約履歴を含む Googleカレンダーなど）も安全に同期できます。初回同期では過去約 1 週間〜今後約 3 ヶ月のウィンドウ内のイベントのみを処理するため、膨大な履歴がある場合でも応答時間が安定しています。

---

## 機能2: 登録済みフィード一覧

登録済みのフィードはテーブル（モバイルではカード形式）で表示されます。各行の内容：

| カラム | 説明 |
|--------|------|
| フィードURL | 登録したiCal URL（長い場合は省略表示。ホバーで全文確認可） |
| 部屋 | このフィードが紐付けられた部屋 |
| 最終同期 | 直近の同期が完了した日時 |
| 件数 | 直近の同期でインポートされた予約件数 |
| ステータス | 同期結果: **同期済み**・**エラー**・**未同期** |
| マッチング | このフィードの現在のマッチングモード（チェックインタブで変更可） |
| 操作 | 同期ボタン・URLを編集ボタン・削除ボタン |

### 同期ステータスの見方

| ステータス | 意味 |
|-----------|------|
| 同期済み | 直近の同期が正常に完了した |
| エラー | 直近の同期でエラーが発生した（バッジにホバーするとエラー内容を確認できます） |
| 未同期 | まだ一度も同期が実行されていない |

---

## 機能3: 手動同期

フィードを今すぐ同期するには、フィード行右端の **円形矢印**（同期）ボタンをクリックします。同期中はアイコンが回転します。完了後、最終同期の日時と件数が更新されます。

---

## 機能4: フィードの削除

フィード行の **削除（×）ボタン** をクリックすると確認モーダルが表示されます。「削除する」をクリックして確定します。削除後：

- そのフィードの自動同期は停止します。
- このフィードから同期された **「pending」または「confirmed」ステータスの予約はキャンセルされます**。チェックイン済み・完了済み・すでにキャンセル済みの予約はそのまま残ります。

> カレンダーURLを変更したい場合（OTAのURLが変わった場合など）は、削除ではなく **URLを編集** を使ってください。URLを編集すると既存の予約は重複なく更新され、キャンセルも発生しません（機能5「フィードURLの編集」を参照）。

---

## 機能5: フィードURLの編集（ダブルブッキング防止）

OTAのカレンダーURLが変わった場合など、フィードURLを安全に差し替えられます。

フィード行の **URLを編集**（鉛筆アイコン）ボタンをクリックすると、URLを編集するモーダルが開きます。新しいURLを入力して **保存** をクリックします。

この操作では：

- フィードの ID が変わらないため、既存の予約は「フィードID × イベントUID」の組み合わせで照合され、**新規インポートではなくその場で更新**されます。
- 重複予約やダブルブッキングは発生しません。
- URL更新と同時に即時再同期が実行され、新しいカレンダーの内容が反映されます。

> URLを削除して再登録した場合、新しいフィード ID が発行されるため既存の予約と紐付かず、同じ予約が二重に登録されます。URLの変更は必ず「URLを編集」で行ってください。

---

## 機能6: OTAイベントのタイトル・メモの取り込み

iCalフィードを同期すると、OTAカレンダーのイベント情報が予約に取り込まれます。

| iCalフィールド | 予約への反映先 |
|--------------|--------------|
| SUMMARY（イベントタイトル） | ゲスト名（「Busy」等の汎用テキストを除く）として取り込まれます |
| DESCRIPTION（説明文・備考） | 予約詳細の **備考** 欄に表示されます |
| LOCATION（場所） | 備考欄に「📍 場所名」として追記されます |

取り込まれた備考は予約詳細（予約一覧から予約を開いた際の詳細画面）の **備考** 項目で確認できます。改行を含むメモも正しく複数行で表示されます。

<!-- TODO: 画像追加 — 予約詳細の備考欄に OTA メモが表示されているスクリーンショット -->

> ホストが予約を手動編集すると（内部的に「ホスト編集済み」として扱われます）、以降の自動同期ではホストの編集内容が**保護**されます。ゲスト名・備考は上書きされず、チェックイン／チェックアウトの日付のみが iCal フィードの最新内容で更新されます。ホストが編集していない予約は、同期のたびにゲスト名・備考が iCal の最新内容で上書きされます。

---

## 機能7: チェックインURLのコピー

チェックインURLは **チェックインタブ**（予約管理ダッシュボードの「チェックイン」タブ）で確認・コピーできます。各フィードに対応するURLカードが表示され、コピーボタンをクリックするとクリップボードにコピーされます。

チェックインURLの形式：

```
https://checkin.unlockos.io/{スラッグ}?configId=...&mode=reservation-search
```

このURLをOTAのアライバルガイド、メール、または施設に設置するQRコードなどでゲストに共有してください。

---

## 機能8: マッチングモード

各フィードのマッチングモードは **チェックインタブ** で変更できます。iCal連携タブのフィード一覧では現在のモードを確認できます（クリックするとチェックインタブに移動します）。

| モード | ラベル | 説明 |
|--------|-------|------|
| ゲスト本人確認 | スクリーンショット | ゲストがOTAの予約確認スクリーンショットをアップロード、またはメール転送して本人確認を行い、アクセスキーを受け取る |
| ホスト管理 | コード/名前 | ホストが予約詳細に確認コードとゲスト名を入力しておく。ゲストはそのコードまたは名前をチェックイン画面で入力してアクセスキーを受け取る |

モバイル表示では、**ホスト管理** モード有効時に「予約詳細に確認コードとゲスト名を入力してください」というお知らせバナーが表示されます。

---

## 機能9: メール転送

iCal URLの代わりに、OTAから届く予約確認メールを施設専用のメールアドレスに転送することでも予約をインポートできます。UnlockOSがメールを解析して予約を自動登録します。

1. タブ下部の **メール転送** セクションに転送先アドレスが表示されています。
2. **コピー** ボタンをクリックしてアドレスをコピーします。
3. メールクライアントで転送設定を行うか、OTAの予約確認メールのCC/BCCにこのアドレスを追加してください。

アドレスの形式：

```
ical+{施設ID}@inbound.unlockos.com
```

---

## よくある質問

### Q: どのOTAプラットフォームに対応していますか？

標準的なiCal（.ics）エクスポートURLを提供しているプラットフォームであれば対応しています。Airbnb、Booking.com、VRBOをはじめ、主要なOTAの大部分が対象です。

### Q: 自動同期はどのくらいの頻度で実行されますか？

フィードを登録すると **すぐに初回自動同期が実行**されます。その後はUnlockOSが管理する定期スケジュール（約 30 分ごと）で自動同期が継続されます。今すぐ同期したい場合は、フィードカードの同期ボタンをクリックしてください。

### Q: フィードを削除すると、既存の予約はどうなりますか？

削除操作では、そのフィードから取り込まれた「pending」と「confirmed」ステータスの予約がキャンセルされます。チェックイン済みや完了済みの予約は影響を受けません。URLの変更が目的であれば、削除ではなく **URLを編集** を使うことをお勧めします。

### Q: カレンダーのURLが変わりました。どうすればよいですか？

削除して再登録するのではなく、フィード行の **URLを編集**（鉛筆アイコン）ボタンを使って新しいURLに更新してください。同じフィード ID が保持されるため、既存の予約は重複なく更新されます。

### Q: 「フィードを追加」ボタンがグレーで押せません

iCal URLと部屋の選択がどちらも必要です。URLの入力と部屋のドロップダウン選択の両方が完了しているか確認してください。

### Q: 部屋のドロップダウンに部屋が表示されません

施設設定でアクティブな部屋が登録されていない場合、ドロップダウンには何も表示されません。サービスタイプが「room」の部屋のみが対象です。施設設定で部屋を追加・有効化してください。

### Q: 同期ステータスが「エラー」になっています

エラーバッジにホバーすると具体的なエラー内容を確認できます。よくある原因：
- iCal URLの有効期限が切れたか変更された（OTAのダッシュボードから新しいURLをコピーしてください）
- OTA側でリクエストが一時的にブロックされた（数分後に手動同期を再試行してください）
- URLが有効なiCalフィードでない

### Q: Airbnbの予約が表示されません

1. 同期ボタンをクリックして即時同期を実行します。
2. 同期後にステータスが「同期済み」になっているか確認します。
3. 予約一覧タブで表示している日付範囲に対象の予約日が含まれているか確認します。
4. Airbnbで予約が作成されたばかりの場合は、数分待ってから再度同期してください。

### Q: 2つのマッチングモードの違いは何ですか？

- **スクリーンショット（ゲスト本人確認）**: ゲストがOTAの予約確認メールのスクリーンショットをアップロード、または確認メールを転送することで本人確認を行い、アクセスキーを受け取ります。ホスト側の手動操作は不要です。
- **コード/名前（ホスト管理）**: あなたがUnlockOSの予約詳細に確認コードとゲスト名を入力します。ゲストはチェックイン画面でそのコードまたは名前を入力してアクセスキーを受け取ります。鍵の発行を手動でコントロールしたい場合に適しています。

### Q: Googleカレンダー読み取り連携と同じ部屋でiCal連携を使えますか？

いいえ。同じ部屋のカレンダーをiCal連携とGoogleカレンダー読み取りバインディングの両方で登録すると、同じ予約が二重にインポートされ偽の二重予約が発生します。部屋ごとに取り込みチャネルを 1 つだけ選んでください。詳細は [Googleカレンダー連携](google-calendar-integration.md) を参照してください。

---

## 連携予約の鍵について

- 連携で取り込んだ各予約には、**その予約に割り当てられた部屋の鍵**（部屋自身のスマートロック）が
  発行されます。チェックイン設定で指定したユニットの鍵ではありません。複数部屋の施設でも、各ゲストは
  自分の部屋の鍵を受け取ります。
- 鍵は**事前に発行**され、KEYVOX がチェックインの**約72時間前から**ロックへ配信するため、ゲスト到着時
  には有効になっています。
- 連携予約はキオスクで**無料**です（決済は予約プラットフォーム側）。割り当てたチェックイン設定に料金
  プランを選んでも、これらのゲストには課金されません。
- フィードが**スマートロック未割り当ての部屋**を指している場合、チェックインは拒否されます（フォール
  バックの鍵は発行されません）。設定不備が見えるようにするためです。

## 関連ページ

- [予約管理ダッシュボード](booking.md)
- [予約作成・編集](reservation.md)
- [チェックイン設定](checkin-config-form.md)
- [ゲストチェックインアプリ](guest-checkin.md)
- [外部連携（サイトコントローラー連携）](integration.md)
- [Googleカレンダー連携](google-calendar-integration.md)
