想像してみてください。見込み顧客があなたのWebサイトにいて、あなたの製品に関心を持っています。デモを予約したいと考えています。従来の方法では、相手がメールを送り、あなたがカレンダーリンクを返信し、時間を決めるために何度もやり取りする必要があります。時間がかかり、相手の関心を失うリスクがあります。
ここで、より良い方法を考えます。訪問者はAIエージェントに「ミーティングを予約できますか」と尋ねるだけです。エージェントは即座にカレンダーを確認し、空き枠を提示し、その場でチャット内に予約を作成します。

これが、Cal.comをQuickchat AI Agentに接続する効果です。このガイドでは、このシンプルな連携手順を説明します。数分でAIにスケジューリングを任せられるようになり、新しいリードは会話から離れることなく、あなたのカレンダーに予定を入れられます。
Cal.comではなくCalendlyを使用している場合は、より短い方法があります。Calendlyはホスト型MCPサーバーを公開しているため、手作業でAPI Actionsを作成する代わりに、ワンクリックで接続できます。CalendlyでAIスケジューリングアシスタントを構築するでは、その手順に加えて、接続後にエージェントが実行できる操作を制限する方法を説明しています。
Cal.comをAIエージェントに接続する理由
Cal.comは柔軟なスケジューリングに強いツールであり、そのAPIは自動化を可能にする鍵です。QuickchatのAI Actionsと組み合わせることで、Webサイトのチャットをスマートなスケジューリングアシスタントに変換できます。
主な利点は次のとおりです。
- シームレスなユーザー体験を作成できます。 訪問者はチャットウィンドウ内で直接通話を予約できます。タブ、リンク、メールを行き来する必要はありません。高速で現代的、かつ分かりやすい体験です。
- より多くのリードを獲得できます。 予約プロセスの摩擦を取り除くことで、リードが離脱する可能性を下げられます。即時確認は、即時のコミットにつながります。
- 手作業をなくせます。 AIが空き状況の確認から招待の送信まで、スケジューリングフロー全体を処理します。カレンダーは自動的に埋まり、より重要な業務に集中できます。
仕組み
この仕組みは、AIエージェントがCal.comに対して行う2つのAPI呼び出しで実現されます。会話フローの概要は次のとおりです。
- 依頼: 訪問者がミーティングの予約を依頼します。AIエージェントは、希望日とタイムゾーンを適切に尋ねます。
- 空き状況の確認: エージェントはCal.comを呼び出し、事前設定されたイベントタイプに基づいて空き時間枠を探します。
- 候補の提示: AIは利用可能な時間をユーザーに提示します。ユーザーが1つ選ぶと、名前とメールアドレスを尋ねます。
- ミーティングの予約: エージェントはCal.com APIを呼び出してミーティングを予約し、選択された枠とユーザー情報を送信して予定を確定します。
- 確認: その後はCal.comが処理し、あなたと新しいリードの両方にカレンダー招待を自動送信します。
会話は次のようになります。

必要なもの(前提条件)
始める前に、次のものを用意してください。
- Cal.comアカウント: 始めたばかりであれば無料プランで十分です。少なくとも1つのイベントタイプ(例: 30分のデモ通話)を設定しておく必要があります。Cal.comアカウントはこちらから登録できます。
- Quickchat AI Agent: カスタムAI Actionsを作成できるアクセス権が必要です。アカウントがない場合は、こちらから登録できます。
- Cal.com APIキー: Cal.comダッシュボードで、Settings → API keysに移動します。Addをクリックし、キーに名前を付け、有効期限を設定して、トークンをコピーします。これは認証に必要です。

補足: Cal.comの公開イベントタイプはAPIキーなしでもアクセスできますが、APIキーの使用を強く推奨します。レート制限を受けにくくなり、将来のAPI変更にも対応しやすい連携になります。
ステップ1: 空き状況を確認するAI Actionを作成する
まず、AIエージェントに空き時間枠の探し方を教えます。
Quickchatダッシュボードで、Actions & MCPs → Custom Actionsに移動し、Add Actionをクリックします。
1.1 ユーザー入力を定義する
カレンダーを確認する前に、ユーザーにいくつかの重要な情報を尋ねる必要があります。エージェントが収集するフィールドとして、次を定義します。
| Field | Description | Example |
|---|---|---|
start | 検索する日付範囲の開始日時(ISO 8601) | 2025-09-18T00:00Z |
end | 検索する日付範囲の終了日時(ISO 8601) | 2025-09-25T23:59Z |
timeZone | IANA形式のユーザーのタイムゾーン | Europe/Warsaw |

1.2 API呼び出しを設定する
次に、Cal.comへのリクエストを設定します。
-
Method:
GET -
API endpoint URL:
https://api.cal.com/v2/slots?eventTypeSlug=call&username=patryk-lasek&start={{start}}&end={{end}}&timeZone={{timeZone}}重要:
callを自分のイベントタイプのURLスラッグに置き換え、patryk-lasekを自分のCal.comユーザー名に置き換えてください。 -
Headers:
| Header | Value | Required |
|---|---|---|
cal-api-version | 2024-09-04 | ✔︎ |
Authorization | Bearer <your_api_key> | 推奨 |

cal-api-versionヘッダーは必須です。これがない場合、リクエストは失敗します。
Quickchatのインターフェースでは、URL内のプレースホルダー({{start}}、{{end}}、{{timeZone}})が、エージェントがユーザーから収集した情報で自動的に置き換えられます。
保存すると、エージェントは利用可能な時間枠を正常に取得し、表示できるようになります。
ステップ2: ミーティングを予約するAI Actionを作成する
空き状況を確認できたら、最後のステップである予約の作成に進みます。2つ目のアクションを作成します。
2.1 ユーザー入力を定義する
このアクションでは、エージェントが次の情報を収集する必要があります。
| Field | Description | Default Value | Required |
|---|---|---|---|
start | UTC形式での選択された時間枠: 2025-09-21T07:00:00Z | - | ✔︎ |
name | 参加者の氏名 | - | 任意 |
email | 参加者のメールアドレス | - | ✔︎ |
timeZone | IANA形式のユーザーのタイムゾーン: Europe/Warsaw | - | ✔︎ |

タイムゾーンに関する注意: Cal.comの予約エンドポイントでは、start時刻をUTCで指定する必要があります。AIエージェントはこの変換を処理する必要があります。たとえば、ワルシャワ(UTC+2)のユーザーが午前11:00を選んだ場合、APIに送信する値は09:00:00Zである必要があります。
2.2 API呼び出しを設定する
- Method:
POST - API endpoint URL:
https://api.cal.com/v2/bookings - Headers:
| Header | Value | Required |
|---|---|---|
Content-Type | application/json | ✔︎ |
cal-api-version | 2024-08-13 | ✔︎ |
Authorization | Bearer <your_api_key> | 推奨 |
このエンドポイントではcal-api-versionが異なる点に注意してください。正しいバージョン文字列については、必ずCal.comのドキュメントを確認してください。

-
Body: Quickchatのアクションエディターで、本文に
JSONを選択し、次の構造を貼り付けます。{ "start": "{{start}}", "eventTypeSlug": "call", "username": "patryk-lasek", "attendee": { "name": "{{name}}", "email": "{{email}}", "timeZone": "{{timeZone}}" } }eventTypeSlugとusernameを自分の情報に置き換えることを忘れないでください。attendee情報は、上記のようにネストされたJSONオブジェクトである必要があります。
これで完了です。このアクションを設定して保存すると、AIエージェントはあなたの代わりにミーティングをスムーズに予約するために必要なすべてを備えます。
エンドポイントをテストする
すべてが正しく動作していることを確認するには、両方のAI Actionsを開き、API Endpointセクションまでスクロールして、“Test Response”をクリックしてテストできます。

ステップ3: 新しいスケジューリングアシスタントをテストする
テストの前に、AI Actionsページが下の設定と一致していることを確認してください。

次は実際に試します。QuickchatダッシュボードのAI Previewに移動し、新しい会話を開始します。次のように尋ねてみてください。
「来週のデモを予約したいです。」
エージェントが次のように動作することを確認します。
- 希望日とタイムゾーンを尋ねます。
- Cal.comカレンダーから利用可能な枠を取得して表示します。
- 時間を選択した後、名前とメールアドレスの入力を促します。
- 予約が完了したことを確認します。
よくある問題のトラブルシューティング
エラーが発生していますか。よくある落とし穴と修正方法は次のとおりです。
403 Forbiddenまたは404 Not Foundエラーが発生しますか。 予約アクションでPOSTメソッドを使用していることを再確認してください。Cal.comは/bookingsエンドポイントに送信されたGETリクエストを拒否します。- 参加者フィールドに関する
400 Bad Requestエラーが表示されますか。 ほとんどの場合、JSON本文の形式が正しくありません。name、email、timeZoneがトップレベルではなく、attendeeオブジェクトの内側にネストされていることを確認してください。 - ヘッダー不足が原因でリクエストが失敗しますか。
すべてのCal.com v2エンドポイントには
cal-api-versionヘッダーが必要です。/slotsには2024-09-04、/bookingsには2024-08-13を使用してください。 - ミーティングが間違った時刻で予約されますか。
予約リクエスト内の
start時刻がUTCで送信されていることを確認してください。
まとめ
おめでとうございます。2つのAI Actionsだけで、Quickchatエージェントをスケジューリング対応のエージェントに変換できました。これにより、予約プロセス全体を処理し、Webサイト訪問者に摩擦の少ない体験を提供し、手動スケジューリングの面倒な往復作業から解放されます。
これは出発点にすぎません。Cal.comのAPIの柔軟性とQuickchatのAI Actionsを使えば、SMSリマインダー、フォローアップメール、さらに各予約を連絡先および取引としてHubSpotに記録するようなカスタム自動化も追加できます。可能性は多くあります。