Cal.com Connector Node Doesn't Work after V2 API

Describe the error

There is an error with the Cal.com BOOKING_CREATED trigger node. In the node setting, it claims to be on the Cal.com v2 API, but when executed, it returns an error saying it is not.

What is the error message (if any)?

Problem running workflow

Your request is invalid or could not be processed by the service 

Show Details

Cal.com Trigger: API v1 has been decommissioned. Please migrate to API v2: 

According to Cal.com’s docs on migrating from V1 → V2

Authentication changes
In v1, you authenticated using an API key passed as a query parameter:

curl https://api.cal.com/v1/bookings?apiKey=cal_test_xxxxxx

In v2, you authenticate using an API key in the Authorization header:

curl https://api.cal.com/v2/bookings -H 
“Authorization: Bearer cal_test_xxxxxx” -H “cal-api-version: 2024-08-13”

I’m doubtful that this changed in the n8n backend, otherwise, this should work properly.

Information on your n8n setup

  • n8n version: N8N Cloud

Previous Topics

A similar question was asked in this post, but it was not resolved. The user was just told to use a webhook trigger, which is not an option in my setup.

welcome to the n8n community @xer0

For now, I’d work around this by avoiding the Cal.com Trigger node and using a generic n8n Webhook node instead.

Create a Webhook node in n8n with method POST, publish/activate the workflow, then copy the Production URL and register it manually in Cal.com under Settings → Developer → Webhooks. Select the events you need, such as Booking Created and Meeting Ended.

This bypasses the Cal.com trigger node completely. The credentials may be fine, but the node appears to still be hitting a deprecated v1 flow somewhere, which is why Cal.com returns the “API v1 has been decommissioned” error.

Also, make sure not to use a localhost URL for the webhook unless you are tunneling it publicly. Cal.com needs to reach a public URL, so for n8n Cloud use the Production URL from the Webhook node.