Working gift-voucher workaround using Stripe and Calendly’s API
I came across this gift-voucher feature request, but it’s closed for replies, so I’m sharing my workaround here.
I ran into exactly this problem while building a website for a singing teacher. Someone needs to be able to buy a lesson as a gift without choosing the appointment date, then let the recipient book later.
I’ve now built a working workaround using Stripe and Calendly’s API:
- The purchaser chooses a lesson length on the teacher’s website and pays through Stripe Checkout.
- Once payment is confirmed, the system generates a unique voucher code and emails them a printable PDF to give to the recipient.
- The recipient enters the code on the teacher’s website.
- The system validates it and uses Calendly’s API to generate a single-use booking link for the matching lesson length, with no further payment required.
- The recipient can then follow the link to book through Calendly, and receives an emailed copy as a backup.
- Re-entering the code returns the same link, and the voucher is marked used once Calendly confirms the booking.
The booking links use dedicated hidden event types with payment disabled, so Calendly still handles availability and scheduling.
It took quite a bit of tweaking and testing, particularly around preventing duplicate issuance and handling retries, but the complete purchase-to-booking flow is now working. A native feature would definitely make this much easier!
Sharing because I couldn’t find a complete walkthrough when I started, and wanted others looking for this to know there is a way to make it work.
