cal.com
cal.com copied to clipboard
feat: Headless router - queue recording booking response
What does this PR do?
In order to help preload slots without recording a routing form response, this PR adds a new param to not write the response when cal.queueFormResponse query param is present which will be passed during pre-rendering by embed.
Embed would then use this queued response by sending useQueuedResponse request
Followup that uses this queuing system
Visual Demo (For contributors especially)
https://www.loom.com/share/d6e485ab1d6c418089ad3258a5b948a5
Mandatory Tasks (DO NOT REMOVE)
- [x] I have self-reviewed the code (A decent size PR without self-review might be rejected).
- [ ] I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. If N/A, write N/A here and check the checkbox.
- [ ] I confirm automated tests are in place that prove my fix is effective or that my feature works.
How should this be tested?
- Create a routing form with routing
- Hit the /router endpoint with the
queueFormResponseparam - The routing form response table should not have a new record
- Create a booking from the link from the /router endpoint
- Once the booking is created, the routing form response should appear in the response table
The latest updates on your projects. Learn more about Vercel for Git ↗︎
2 Skipped Deployments
| Name | Status | Preview | Comments | Updated (UTC) |
|---|---|---|---|---|
| cal | ⬜️ Ignored (Inspect) | Visit Preview | Jun 17, 2025 2:33pm | |
| cal-eu | ⬜️ Ignored (Inspect) | Visit Preview | Jun 17, 2025 2:33pm |
Graphite Automations
"Add consumer team as reviewer" took an action on this PR • (06/13/25)
1 reviewer was added to this PR based on Keith Williams's automation.
"Add foundation team as reviewer" took an action on this PR • (06/17/25)
1 reviewer was added to this PR based on Keith Williams's automation.
@zomars The use-queued-response isn't used anywhere except by embed which is in follow-up
Reviewed low-level foundational changes. Ok from my side.