---
title: "Calid Webhook"
method: POST
path: "/calid/webhook"
tags: ["Webhooks - Cal.id"]
---

# Calid Webhook

`POST /calid/webhook`

## Request

- Base URL: `https://api.puppeteerai.com`
- URL: `https://api.puppeteerai.com/calid/webhook`
- Auth: none declared. Required headers: `X-Cal-Signature-256`

Receives a Cal.id (OneHash) BOOKING_CREATED webhook and schedules an
outbound call to the booker. In-hours webhooks (8:00-20:00 in the attendee's
timezone, any day) dial immediately; off-hours ones defer to 11:00 on the
next day, rolling to Monday when that would fall on a weekend.

Tenant is resolved via the explicit `project_id` query param; the request is
verified against the project's dedicated `calid_webhook_secret` (HMAC-SHA256
over the raw body, matching Cal.id's X-Cal-Signature-256 — set the same value
as the Cal.id webhook Secret, via /calid-integration/update). The org's agent
+ caller number are resolved by `create_scheduled_call`.

## Query parameters

- `project_id` string, required

## Headers

- `X-Cal-Signature-256` string, required

## Request body

- CalidWebhookBody
  - `triggerEvent` string, nullable
  - `payload` CalidBooking
    - `uid` string, nullable
    - `title` string, nullable
    - `startTime` string, nullable
    - `endTime` string, nullable
    - `attendees` CalidAttendee[]
      - `name` string, nullable
      - `email` string, nullable
      - `timeZone` string, nullable
      - `phoneNumber` string, nullable
    - `responses` object

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/getpuppeteer/apis/puppeteer-core-api.md) - [All operations](https://skmtc.dev/getpuppeteer/apis/puppeteer-core-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getpuppeteer/apis/puppeteer-core-api/revisions/94b4e928b42f?raw)
