Hi!
Thanks for sharing the details—you're doing all the right things in terms of authentication and setup, so I totally understand how confusing this can be.
The reason you're getting a 404 error when sending a POST request to https://api.calendly.com/scheduled_events/ is because Calendly's API does not currently support creating scheduled events via the API. That endpoint only supports GET requests to retrieve existing events. Unfortunately, there's no way to programmatically create a meeting through the API at this time.
Instead, scheduled events can only be created through the Calendly scheduling interface (like booking links, embedded widgets, or the mobile app).
If you're looking to automate scheduling, one workaround is to direct users to a prefilled booking link or embed a specific event type on your site to streamline the experience.
I know this limitation can be frustrating depending on your use case, and I’ve passed along similar feedback to our product team. They are actively evaluating this endpoint.
I hope this helps clarify things. If you need further assistance, you can also reach out to Calendly Support via live chat (for paid plans) or email us at support@calendly.com.
-Javay
Developer Support, Calendly
hi everyone,
I'm posting an update on my attempt to use the V2 API to programmatically schedule an event, as I've encountered the same persistent 404 Resource Not Found error mentioned by others in this thread.
I have spent significant time debugging this, and the error seems to be in the payload structure, not the endpoint URL. My findings contradict the initial advice that POST /scheduled_events is unsupported; it appears to be the correct path for a specific payload.
My tests indicate that the solution lies in combining the correct endpoint with the correct payload structure.
Summary of Debugging & Final Result
| Test Result | Success Status | Code (Python) |
| API Availability Check | Success | GET /event_type_available_times works perfectly. |
| Outbound Event Creation | Fails with 404 Not Found | Every attempt to POST an event fails. |
The Final Problem
The issue is that the V2 API is exceptionally strict about the event_type URI format in the POST body.
My current failing code uses the structure required by older V2 documentation, but it's still rejected:
Python
# The payload is failing at this structure:
booking_url = "https://api.calendly.com/scheduled_events/invitees" # <-- Is this the wrong endpoint?
# OR
booking_url = "https://api.calendly.com/scheduled_events" # <-- Is this the correct endpoint?
payload = {
# Is the event_type field supposed to contain the full URI or just the path?
"event_type": "https://api.calendly.com/event_types/{uuid}",
# ...
}
Question for the Community
I am getting conflicting information on the required format. Can anyone who has successfully created an event using a V2 Personal Access Token provide the definitive structure?
-
Which Endpoint Works? Does a successful booking use POST /scheduled_events or POST /scheduled_events/invitees?
-
What is the Event Type Format? Is the event_type field in the JSON body:
-
A. The full URI: "https://api.calendly.com/event_types/{uuid}"
-
B. The path only: "/event_types/{uuid}" (the result of my final failed test)
-
C. The UUID only: "{uuid}"
I suspect the key is using Endpoint A with Format B or C in the payload. Any working example would be hugely appreciated!
Hey @foragentis,
I created a tool called Calendly Components to worked around this issue (https://components.calforce.pro/). This app exposes an API that allows you to schedule Calendly events using a personal access token (or rather an access token in this case). The component API is a wrapper around Calendly’s scheduling API.
A tutorial video can be found here -
Hi @gb82102 and @foragentis - this is now available! The API documentation for this endpoint can be found here: https://developer.calendly.com/api-docs/p3ghrxrwbl8kqe-create-event-invitee.
Hi there,
thanks so much for sharing! It worked beautifully:)