In this video· click a step to jump to it
Test recording
calcom — app walkthrough
73,723 ms · 0 pixels changed · matches baseline
We built this regression test for app.cal.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against app.cal.com. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const shot = function(i, s){ return screenshotPath.replace('.png', '-' + i + '-' + s + '.png'); };
page.setDefaultTimeout(6000);
await page.route(function(u){ return /sentry|segment\.com|googletagmanager|google-analytics|hotjar|posthog|connect\.facebook|intercom|cdn-cgi\/scripts/.test(u.toString()); }, function(r){ r.abort().catch(function(){}); }).catch(function(){});
let n = 1;
const wait = function(ms){ return page.waitForTimeout(ms||500); };
const killModal = async function(){
// click "Don't update" (timezone modal) or any dialog dismiss without mutating settings
await page.evaluate(function(){
var bs = Array.prototype.slice.call(document.querySelectorAll('button, [role=button]'));
var dont = bs.find(function(b){ return /don.?t update|dismiss|not now|no thanks|cancel/i.test((b.innerText||'').trim()); });
if (dont) { try{ dont.click(); }catch(e){} return; }Checks run
Notes from the demo run
AI-generatedCal.com is open-source scheduling — connect your calendars, set availability, share a booking link, avoid email tennis. After an email-verify and a short getting-started wizard, the app is a polished, dense product surface: Event Types (three are pre-created — 15/30-min and a hidden "secret" link), an event-type editor, Availability, Bookings, an Apps store, Workflows, Routing forms, Teams, Insights and a full Settings tree. For an OSS product the authenticated UX is remarkably finished.
- Pre-seeded event types remove the blank slateA brand-new account already has 15-min, 30-min and a hidden "secret" event type — the visitor can preview a live booking page in the first session without configuring anything, a strong first-run choice.
- Booking-link preview is one click from every eventEach event type carries a Preview link to the public cal.com/<user>/<slug> page, so the core value (a shareable booking link) is always one click away inside the editor.
- Enterprise-grade surface, OSS productApps store, Workflows, Routing forms, Insights and a deep Settings tree all render cleanly — the breadth reassures a buyer that self-hosting doesn't mean a stripped-down product.
- Cloudflare Turnstile + email-verify double-gates signupEmail signup is protected by a Turnstile widget AND a follow-up verification link; both are reasonable, but together they add two waits before an evaluator reaches the app — worth measuring the drop-off.
- Getting-started asks for calendar connect earlyThe wizard nudges a Google/Microsoft calendar connection before the app is explored; an "I'll connect later" path exists but is less prominent than the connect buttons.
- Timezone-mismatch modal fires on every fresh sessionBecause our runner's browser timezone (UTC) differed from the account timezone, a "Want to update your timezone?" modal popped on nearly every page; harmless to click past, but on a shared/travelling device it interrupts the flow repeatedly.
Share this run
Proof your app is not AI slop
This test was built for app.cal.com — claim it free
One click copies the test and baseline screenshots into your own Lastest workspace. Re-run on every deploy and catch regressions before your users do — free, no card required.