Issue: Retell AI + Cal.com v2 Integration “Bad Request” Loop
The Goal: Automate a phone call booking flow where the AI identifies a slot via check_availability and books it via book_appointment.
Dynamic Variables: Using {{user_name}} and {{user_number}} which automatically maps to the built-in {{to_number}} variable when an outbound ph number is made.
Cal. com Event: All questions disabled except Name and Phone.
Location: Set to “Phone Call.”
API Version: Using the 2026-02-25 header.
The Problem: Both the check_availability and book_appointment modules are consistently failing with a 400 Bad Request. The Error Message: “Attendee email or phone number properties wrong. They must have at least one contact method (email or phone number).”
What I’ve Verified: The phone number is being captured correctly from {{to_number}}.
The Cal .com booking page only requires two parameters (Name/Phone), which matches the Retell module inputs. I’ve tried mapping variables manually and using defaults, but the API keeps insisting the contact method is missing or malformed.
I have been troubleshooting for 3 days and have exhausted the standard “check your API key” and “check your Event ID” advice.
If anyone has successfully connected Cal. com v2 to Retell recently, what is the “magic sauce” for the JSON body or the field mapping? Is the API expecting the phone number in a specific object (e.g., inside attendee vs responses) Any help to stop this 400-error loop would be massive. Cheers! Photos attached of the cal.com set up.

