How to check if attendee confirmed appointment using Calendly API V2?

I’m working with Calendly’s API version 2 and need to figure out whether an attendee has actually confirmed their scheduled appointment. According to the documentation, when an invitee’s status shows as ‘active’, it should mean they’ve confirmed the meeting. But I’m seeing the status as active even when people haven’t actually accepted yet.

Has anyone else run into this problem? Is there another way to verify confirmation status?

By the way, if you’re just getting started with this API, AI tools can be really helpful for common tasks. You can ask them to create scripts for basic operations like retrieving your organization ID or listing your scheduled events.

Been dealing with Calendly’s API quirks for a while now. The ‘active’ status is confusing - it doesn’t match what you’d expect.

‘Active’ just means the event exists and wasn’t cancelled. It doesn’t mean the person confirmed. Actual confirmation works differently based on your Calendly settings.

Check the ‘questions_and_answers’ field in the invitee object. If you’ve got confirmation questions set up, confirmed attendees will have responses there. Also compare ‘created_at’ vs ‘updated_at’ timestamps - if they’re different, the person usually took action after booking.

I also check the ‘no_show’ field. If it’s null and the event’s in the past, they probably showed up (not foolproof though).

For better tracking, I set up webhook listeners for invitee.created and invitee.canceled events. You get real-time updates instead of constantly polling the API.

There’s a decent explanation of how invitee statuses work here:

Honestly, if you need bulletproof confirmation tracking, build your own confirmation system on top of Calendly’s booking flow.

calendly’s confirmation tracking is completely broken. I’ve been using their api for client scheduling and just gave up on the status field entirely. what actually works is checking the uri field format - confirmed bookings have different uri patterns than regular bookings. you can also set up reminders and check when they’re sent versus the booking time. there’s usually a gap that shows you the real confirmation timing.

Manual checking works, but you’ll waste hours writing custom logic for every Calendly edge case.

I hit this same problem tracking confirmations for thousands of customer meetings. Spent weeks building webhook handlers and polling scripts just to get reliable confirmation data.

Then I realized I was overcomplicating it. Set up a simple automation that monitors Calendly events and cross-references them with actual attendee actions. It handles timestamp comparisons, tracks status changes, and sends follow-ups when someone books but doesn’t confirm.

Best part? No custom code to maintain or API changes to worry about. Configure it once and it runs automatically. You can even trigger different actions based on confirmation status - like separate email sequences for confirmed vs unconfirmed attendees.

10 minutes to set up vs days of custom development. Scales without extra work too.

Check it out: https://latenode.com

Had the same issue with Calendly integration last year. The status field is basically worthless for tracking confirmations. Here’s what actually worked for me: Check the tracking object in the invitee data. When someone books through the confirmation flow, UTM or referral data usually changes between initial booking and confirmation. Also try monitoring reschedule_url and cancel_url fields. These get new URLs when someone confirms, so you can compare parameters to see if they’ve confirmed. Most reliable trick I found: add mandatory custom questions during booking. Something simple like “Please confirm your attendance” with required responses. Then just check if those fields are filled in the API response. One heads up - different Calendly plans handle confirmations differently. Premium accounts have better confirmation workflows that show up properly in API data. Basic plans just mark everything as “active” by default.

That tracking issue happens because Calendly treats single-use events differently than recurring slots. I ran into this when integrating their API for client bookings.

Here’s what actually works: Check the event object’s invitees_counter field with the individual invitee data. For confirmed appointments, this counter shows real confirmations, not just bookings. Also watch the rescheduled_for field - it gets the original event URI when someone confirms then reschedules.

If you’re using Calendly’s payments, check the payment object. Confirmed people have completed payment data, unconfirmed ones show pending or null.

Heads up though - the API acts weird between subscription tiers. Professional accounts give you way more detailed status tracking than basic plans. If confirmation tracking is make-or-break for your app, you’ll probably need a backup system with calendar invites or your own confirmation emails.