Cal.com integration

Route booked appointments back into your leads

When a visitor books a meeting through Cal.com, a webhook fires and Solar Capture updates the matching lead automatically. This guide covers creating the webhook in Cal.com, generating a shared secret, and pasting both into the plugin settings.

Webhook — no API key needed Shared secret verification Lead status updated on booking
How it works

Cal.com sends a signed POST request to a Solar Capture REST endpoint each time a booking event fires. The plugin verifies the signature using the shared secret, then looks up the lead by email address and marks it as booked.

1Create event types in Cal.com
2Add a webhook with a shared secret
3Paste the secret into the plugin

Part 1

Set up Cal.com

You need at least one event type in Cal.com before you can create a webhook. If you already have event types set up, skip straight to step 2.

1

Create your event types

In Cal.com, go to Event Types and create the meeting durations you want to offer — for example a 15-minute discovery call and a 30-minute survey call.

  • Set the title, duration, and description that visitors will see on your booking page.
  • Connect your calendar so Cal.com can check availability.
  • You can come back and add more event types later without changing the webhook.
2

Open Developer → Webhooks

In Cal.com, open your account settings and go to Developer → Webhooks. Click New webhook.

Webhooks in Cal.com fire at the account level, so a single webhook covers all your event types.

3

Copy the subscriber URL from the plugin

In WordPress admin, go to Solar leads → Settings → Integrations. Copy the Cal.com webhook endpoint shown there and paste it into the Subscriber URL field in Cal.com.

https://example.co.uk/wp-json/solar-capture/v1/calcom-webhook

The URL above uses a placeholder domain. Copy the real one from your plugin settings — it always matches your WordPress home URL.

4

Create a shared secret

Generate a long, random string and paste it into the Secret field in Cal.com. You will also need to paste this same string into the plugin in the next step.

  • Use a password manager, openssl rand -base64 32, or any random string generator.
  • Keep it private — anyone with this secret can send forged webhooks.
  • Minimum recommended length: 32 characters.
Important: you must set the same secret in both Cal.com and the plugin. If they differ, all webhook calls will be rejected.
5

Select the event triggers

Enable the triggers you want Solar Capture to respond to:

  • BOOKING_CREATED — marks the lead as booked when an appointment is made.
  • BOOKING_RESCHEDULED — updates the booking timestamp if the visitor reschedules.
  • BOOKING_CANCELLED — records the cancellation against the lead.

You can leave other triggers disabled unless you need them.

6

Enable and save the webhook

Toggle Active on and click Save. Cal.com will immediately begin sending events to the subscriber URL.


Part 2

Configure the plugin

Now paste the same shared secret into Solar Capture so the plugin can verify that incoming webhook calls are genuinely from Cal.com.

7

Open the Cal.com settings block

In WordPress admin, go to Solar leads → Settings → Integrations and find the Cal.com block.

8

Paste the webhook secret

Paste the secret you created in Cal.com into the Webhook secret field and click Save settings.

The plugin will now verify the HMAC signature on every incoming Cal.com request. Requests with a missing or incorrect signature are silently dropped.


Done

Test the integration

9

Make a test booking

Open your Cal.com booking page and book a meeting using the same email address as an existing lead. Then open that lead in Solar leads → Leads and confirm the pipeline stage has updated to Booked.

If the stage did not update, check the Cal.com webhook delivery log for a failed request, and confirm the secret in both Cal.com and the plugin settings matches exactly.