Cal.comをAIエージェントに5分で接続する

Patryk Lasek
公開日 読了時間:約7分
Cal.comをAIエージェントに5分で接続する記事のサムネイル

想像してみてください。見込み顧客があなたのWebサイトにいて、あなたの製品に関心を持っています。デモを予約したいと考えています。従来の方法では、相手がメールを送り、あなたがカレンダーリンクを返信し、時間を決めるために何度もやり取りする必要があります。時間がかかり、相手の関心を失うリスクがあります。

ここで、より良い方法を考えます。訪問者はAIエージェントに「ミーティングを予約できますか」と尋ねるだけです。エージェントは即座にカレンダーを確認し、空き枠を提示し、その場でチャット内に予約を作成します。

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呼び出しで実現されます。会話フローの概要は次のとおりです。

  1. 依頼: 訪問者がミーティングの予約を依頼します。AIエージェントは、希望日とタイムゾーンを適切に尋ねます。
  2. 空き状況の確認: エージェントはCal.comを呼び出し、事前設定されたイベントタイプに基づいて空き時間枠を探します。
  3. 候補の提示: AIは利用可能な時間をユーザーに提示します。ユーザーが1つ選ぶと、名前とメールアドレスを尋ねます。
  4. ミーティングの予約: エージェントはCal.com APIを呼び出してミーティングを予約し、選択された枠とユーザー情報を送信して予定を確定します。
  5. 確認: その後はCal.comが処理し、あなたと新しいリードの両方にカレンダー招待を自動送信します。

会話は次のようになります。

AIが空き時間を提示し、ユーザー情報を尋ねる会話例

必要なもの(前提条件)

始める前に、次のものを用意してください。

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

Cal.com APIキー

補足: Cal.comの公開イベントタイプはAPIキーなしでもアクセスできますが、APIキーの使用を強く推奨します。レート制限を受けにくくなり、将来のAPI変更にも対応しやすい連携になります。

ステップ1: 空き状況を確認するAI Actionを作成する

まず、AIエージェントに空き時間枠の探し方を教えます。

Quickchatダッシュボードで、Actions & MCPs → Custom Actionsに移動し、Add Actionをクリックします。

1.1 ユーザー入力を定義する

カレンダーを確認する前に、ユーザーにいくつかの重要な情報を尋ねる必要があります。エージェントが収集するフィールドとして、次を定義します。

FieldDescriptionExample
start検索する日付範囲の開始日時(ISO 8601)2025-09-18T00:00Z
end検索する日付範囲の終了日時(ISO 8601)2025-09-25T23:59Z
timeZoneIANA形式のユーザーのタイムゾーン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:

HeaderValueRequired
cal-api-version2024-09-04✔︎
AuthorizationBearer <your_api_key>推奨

API呼び出し

cal-api-versionヘッダーは必須です。これがない場合、リクエストは失敗します。

Quickchatのインターフェースでは、URL内のプレースホルダー({{start}}、{{end}}、{{timeZone}})が、エージェントがユーザーから収集した情報で自動的に置き換えられます。

保存すると、エージェントは利用可能な時間枠を正常に取得し、表示できるようになります。

ステップ2: ミーティングを予約するAI Actionを作成する

空き状況を確認できたら、最後のステップである予約の作成に進みます。2つ目のアクションを作成します。

2.1 ユーザー入力を定義する

このアクションでは、エージェントが次の情報を収集する必要があります。

FieldDescriptionDefault ValueRequired
startUTC形式での選択された時間枠: 2025-09-21T07:00:00Z-✔︎
name参加者の氏名-任意
email参加者のメールアドレス-✔︎
timeZoneIANA形式のユーザーのタイムゾーン: 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:
HeaderValueRequired
Content-Typeapplication/json✔︎
cal-api-version2024-08-13✔︎
AuthorizationBearer <your_api_key>推奨

このエンドポイントではcal-api-versionが異なる点に注意してください。正しいバージョン文字列については、必ずCal.comのドキュメントを確認してください。

API呼び出し - Headers

  • Body: Quickchatのアクションエディターで、本文にJSONを選択し、次の構造を貼り付けます。

    {
      "start": "{{start}}",
      "eventTypeSlug": "call",
      "username": "patryk-lasek",
      "attendee": {
        "name": "{{name}}",
        "email": "{{email}}",
        "timeZone": "{{timeZone}}"
      }
    }

    eventTypeSlugとusernameを自分の情報に置き換えることを忘れないでください。attendee情報は、上記のようにネストされたJSONオブジェクトである必要があります。

    API呼び出し - Body

これで完了です。このアクションを設定して保存すると、AIエージェントはあなたの代わりにミーティングをスムーズに予約するために必要なすべてを備えます。


エンドポイントをテストする

すべてが正しく動作していることを確認するには、両方のAI Actionsを開き、API Endpointセクションまでスクロールして、“Test Response”をクリックしてテストできます。

Test Response

ステップ3: 新しいスケジューリングアシスタントをテストする

テストの前に、AI Actionsページが下の設定と一致していることを確認してください。

AI Actions

次は実際に試します。QuickchatダッシュボードのAI Previewに移動し、新しい会話を開始します。次のように尋ねてみてください。

「来週のデモを予約したいです。」

エージェントが次のように動作することを確認します。

  1. 希望日とタイムゾーンを尋ねます。
  2. Cal.comカレンダーから利用可能な枠を取得して表示します。
  3. 時間を選択した後、名前とメールアドレスの入力を促します。
  4. 予約が完了したことを確認します。

よくある問題のトラブルシューティング

エラーが発生していますか。よくある落とし穴と修正方法は次のとおりです。

  • 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に記録するようなカスタム自動化も追加できます。可能性は多くあります。