Passmint
TemplatesDocsPricingBlog
Log inGet started
Passmint

Apple and Google Wallet passes from one API. Built for people who ship.

Product
  • Pass Designer
  • Developers
  • Distribution
  • Analytics
  • Templates
  • Pricing
Developers
  • Documentation
  • API reference
  • Node SDK
  • Webhooks
Company
  • Changelog
  • About
  • Contact
  • Support
  • Security
  • Terms
  • Privacy
Social
  • GitHub
  • X

© 2026 Passmint. Built for indie makers.

Apple Wallet & Google Wallet, one API.

Scheduling & booking

Put every Cal.com booking in your invitee's wallet

When someone books a meeting in Cal.com, send them a live Apple Wallet or Google Wallet pass with the time, link, and host — issued automatically, no code.

Start freeRead the docs →
Apple & Google WalletNo-code via ZapierFree to start
Cal.com
New Booking
via Zapier
Passmint
Create Pass
Booking pass

What you can do

A few ways teams put Cal.com and Passmint to work together.

Add a Cal.com 'booking rescheduled' trigger with a Find Pass step (by invitee email) followed by Update Pass. When the time moves, the new date and link are pushed straight to the pass already in their wallet — no re-issue, no resend.
On Cal.com's cancellation trigger, add Find Pass → Void Pass. The booking pass is marked invalid in the invitee's wallet the moment they cancel, so nobody shows up to a meeting that's off.

Set it up

One Zap links the two — live in a few minutes, no code involved.

  • A Passmint account and an API key (pmk_live… or pmk_test…), from Developers → API Keys.
  • A Passmint template for a booking pass whose field names (e.g. appointment_time, location, host) match the mappings below.
  • A Zapier account (the free plan is enough to build and test this).
  • A Cal.com account with at least one event type you take bookings on.

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, choose Cal.com as the trigger app, and pick its new-booking trigger. Send a test so Zapier reads a sample booking and learns the fields it returns — invitee email and name, start time, and location.

TODO(verify): Confirm the exact Cal.com new-booking trigger label and the field names it returns (invitee email/name, start time, location/meeting URL, host). These vary by version and must be checked against a live booking.

Add an action step, choose Passmint, and select Create Pass. Pick your booking template from the dropdown — Zapier loads your templates automatically. Map Holder Email and Holder Name from the booking's invitee email and name.

In Field Values, map the booking's start time, location or meeting link, and host onto your template's fields. Each key on the left must exactly match a field name in your Passmint template (e.g. appointment_time, location, host). Run the Zap with your test booking, open the resulting pass on a phone to confirm it looks right, then switch to a pmk_live… key and turn it on.

TODO(verify): Confirm, on a real template, that the Field Values keys you reference exist as field names in that template, and that the Cal.com fields you map them from (start time, location, host) carry the values you expect.

Questions

The details teams check before switching the Zap on.

Whatever you map. Invitee email and name go to Holder Email and Holder Name; the start time, location or meeting link, and host go into Field Values, where each key must match a field name in your Passmint template.
Only if you build the update path. The basic Zap issues a pass on a new booking. To push reschedules, add Cal.com's reschedule trigger with a Find Pass → Update Pass step, and Passmint updates the installed pass automatically.
No. Cal.com is open-source and exposes webhooks, but this flow runs entirely through Zapier's Cal.com trigger — no server, no webhook handler, no deploy on your side.
Zapier is perfect for getting this live today. When you're issuing passes at volume or want them created the instant a booking lands without per-task costs, call the Passmint API directly — POST /v1/passes, or the @passmint/node SDK. Same passes, same live updates, full control.

Related integrations

Calendly

Give every Calendly booking a wallet pass that updates if plans change.

Acuity Scheduling

Give every Acuity appointment a wallet pass for the client.

SimplyBook.me

Turn SimplyBook.me bookings into wallet passes for clients.

Issue your first pass from Cal.com today

Free for your first passes. No Apple or Google certificates to manage, no code to write.

Start freeExplore the API →