A confirmation email gets buried. A wallet pass sits on the home screen — and surfaces near the appointment time — so people actually show up. Issued the moment they book, no code.
A few ways teams put Calendly and Passmint to work together.
One Zap links the two — live in a few minutes, no code involved.
In Zapier, add Passmint as a connected app and paste your API key when prompted. Zapier verifies it against your account immediately, so you'll know the connection works before building the rest of the Zap. Use a pmk_test… key while you're setting things up.
Create a new Zap and choose Calendly as the trigger app. Pick the trigger that fires when a new invitee books — then connect your Calendly account and send a test so Zapier pulls a sample booking and learns its fields (invitee email and name, event type, start time, location/meeting URL).
TODO(verify): Confirm Calendly's exact trigger label for a new booking (it's the 'invitee created' style trigger) and the exact field keys in its sample payload — particularly how it exposes the invitee's email and name, the event start time, and the location/join URL (these differ for in-person vs. Zoom/Google Meet event types).
Add an action step, choose Passmint, and select Create Pass. Pick your appointment template from the dropdown — Zapier loads your templates automatically. Map Holder Email from the invitee's email and Holder Name from the invitee's name so the pass can be delivered and tracked per person.
In Field Values, map the booking onto the pass. The key on the left must exactly match a field name in your Passmint template; the value on the right is the Calendly field. Typical mapping: appointment_time ← event start time, host ← the Calendly host/owner, location ← the location, and join_url ← the meeting link for online events. Fields you don't map are simply left off the pass.
TODO(verify): On a real template, confirm the Field Values keys (appointment_time, host, location, join_url) exist as field names — mismatched keys are silently ignored. Also confirm which Calendly field actually carries the meeting link for your online event types, and that the start time arrives in a format your template displays cleanly (you may want a Zapier Formatter step to localise it to the invitee's timezone).
Add a second Zap (or a path) on Calendly's reschedule trigger. Add a Passmint Find Pass step keyed on the invitee's email to locate their existing pass, then an Update Pass step that writes the new start time (and location, if it changed) into the same Field Values keys. Because Update Pass pushes to installed wallets, the time on the card in their phone changes on its own — no new pass, no second email.
TODO(verify): Confirm Calendly exposes a distinct reschedule trigger (vs. a generic update) and that its payload includes the invitee's email and the new start time. If a reschedule arrives as a cancel-plus-rebook on some plans, you may instead rely on the cancel + create flow below.
Run the Zap against a real test booking and confirm a pass is created in Passmint and opens correctly on a phone, showing the right time and meeting link. Then reschedule the test booking and watch the pass update. Once it looks right, switch your API key to pmk_live…, turn the Zaps on, and book for real.
The details teams check before switching the Zap on.
Free for your first passes. No Apple or Google certificates to manage, no code to write.