We are integrating the Calendly Scheduling API with our agentic system and are facing unexpected behavior while booking meetings.
Request Payload
{
"date": "2025-12-19",
"time": "02:00",
"email": " [removed by moderator] ",
"name": "name"
}
Response Received
-
HTTP Status: 200
-
Response Body:
{
"status": "error",
"message": "I encountered a system error while booking. I will have a specialist call you to confirm.",
"meeting_url": "",
"scheduled_time": ""
}
We are unsure why the API returns HTTP 200 while the response body indicates an error.
Slot Availability Issue
When testing different times:
-
Request with
time = 06:00returns: “The slot is not available, you can book a slot from the 06:30, 07:00, 07:30” -
Retrying with
time = 06:30returns: “The slot is not available, you can book a slot from the 07:00, 07:30, 08:00”
Each retry shifts the suggested availability forward, even though we are selecting from the suggested slots.
Expected Behavior
Our logic is:
-
If the requested slot is unavailable
-
Fetch the next 3 available slots
-
Suggest those slots to the user
However, the availability window appears to change with each request.
Questions
-
Why does Calendly return HTTP 200 with a logical error in the response body?
-
Is this behavior related to timezone handling, minimum scheduling notice, or buffer rules?
-
Should availability be re-fetched on every retry, or cached?
-
Is there a recommended approach to consistently retrieve and lock the next available slots?
Any guidance or best practices would be greatly appreciated.

