r-0001 · Published 2026-10-17 · Price date 2026-10-17
SnagTime, the AI-built Calendly clone: what it really costs to run
A self-hostable Calendly-style scheduler (SnagTime) built with OpenAI Codex agent swarms. We checked the builder's published numbers against his own posts, then installed and ran it ourselves for free.
Break-even
3+ seats
$28.80/mo clone infra ÷ $10/seat/mo Calendly Standard = 2.88 seats → round up to 3+ seats before monthly run cost beats list subscription (= headline.breakeven).
Verdict
Good for: Teams with 3+ seats who can self-host, patch dependencies, and accept you as support.
Skip if: Single seat, need vendor SOC 2 / SLA, or cannot upgrade Next.js before a public deploy.
Main risk: Critical/high npm advisories on pinned commit; no repo commits since 2026-08-28 (reliability_notes + maintenance_pulse).
Confidence — 40% measured by us
measured 4/10 · builder-stated 5 · unverified 1 — Counts from claims[] types on this receipt (2026-10-17).
Labor-adjusted operator TCO @1 user (year 1): $695.60 — Same as cash TCO $695.60: maintenance_hours_month is not_measured, so no labor added (would be hours × $50/hr assumption if measured).
True monthly cost to run publicly vs the subscription it replaces
$28.80/mo to run vs $10.00/seat/mo Calendly
Break-even
3+ seats
Self-hosting costs less than Calendly Standard only at 3+ seats ($28.80 / $10 = 2.88 seats). For one person it costs about $18.80/mo more, before any maintenance time.
Bot2Bot estimate, infrastructure only: DigitalOcean Basic Droplet 4 GiB / 2 vCPU at $24.00/mo (sized to the repo's own production Compose limits: Postgres 2G + web 768M + worker 768M) + weekly backups at 20% of Droplet cost ($4.80). Email on Resend Free ($0, up to 3,000/mo and 100/day). Google Calendar API $0 under quota. Excludes domain, maintenance prompts, and your time.
Calendly Standard, $10 per seat per month billed yearly ($12 billed monthly), calendly.com/pricing checked 2026-10-17.
estimate (cited list prices; not a live deployment bill)
Two-sided receipt
A · Operator receipt
Builder or operator running the software
- Build — tokens est. vs billed
- $14,982.96 / $350.00(builder-stated)
- Build — human hours
- Not disclosed(Not disclosed)
- Run @ 1 user / mo
- $28.80/mohost $24.00 + DB $0.00 + email $0.00 + APIs $0.00 + tokens $0.00(measured by bot2bot labs)
- Run @ 10 users / mo
- $48.80/mohost $28.80 + DB $0.00 + email $20.00 + APIs $0.00 + tokens $0.00(measured by bot2bot labs)
- Run @ 100 users / mo
- $77.60/mohost $57.60 + DB $0.00 + email $20.00 + APIs $0.00 + tokens $0.00(measured by bot2bot labs)
- Maintenance h / mo (@ 1 / 10 / 100)
- Not measured · Not measured · Not measured(Not measured)
- TCO year 1 (@ 1 / 10 / 100 users)
- $695.60 · $935.60 · $1,281.20(measured by bot2bot labs)
- Labor-adjusted TCO year 1 (@ 1 / 10 / 100)
- $695.60 · $935.60 · $1,281.20(Not measured)
- From build.token_usd_estimated and build.token_usd_billed (builder-stated, x.com/nateherk/status/2093335489231102341, 2026-08-28). Billed = $200/mo Codex (maxed) + ~$150 extra credits = $350 (sum in billing_note).
- $24.00 Droplet (4 GiB/2 vCPU, digitalocean.com/pricing/droplets, 2026-10-17) + $4.80 weekly backups (20% of Droplet) + $0 Resend Free + $0 Google Calendar API = $28.80/mo (= views.own_business.total_usd_month). Postgres runs on the same Droplet (db $0 line item).
- $28.80 infra (same single deployment as @1) + $20.00 Resend Pro (resend.com/pricing, 2026-10-17) = $48.80/mo (= views.sell_10.total_usd_month).
- $48.00 Droplet (8 GiB/4 vCPU) + $9.60 backups (20%) + $20.00 Resend Pro = $77.60/mo (= views.sell_100.total_usd_month).
- $350 build (billed, builder-stated) + 12 × $28.80/mo run = $695.60 year-1 cash. List-equivalent build would be $14,982.96 + $345.60 run = $15,328.56 (not cash paid).
- $350 build (billed) + 12 × $48.80/mo run = $935.60 year-1 cash.
- $350 build (billed) + 12 × $77.60/mo run = $1,281.20 year-1 cash.
B · User receipt
Someone using the product vs the commercial alternative
- Clone price
- free self host — software $0 (you pay infra)(measured by bot2bot labs)
- Real product @ 1 / 10 / 100 seats / mo
- $10.00 · $100.00 · $1,000.00(measured by bot2bot labs)
- Price date
- 2026-10-17
- Switching effort
- Measured local setup: npm run setup + demo:free; ~2 min wall-clock per claims, plus npm run db:generate:postgres when pages 500; Node 24 for full tests.(measured by bot2bot labs)
- Risk — reliability
- Local run only (2026-10-17); 10-way booking burst had 5× HTTP 500 on SQLite; repo unchanged since 2026-08-28; public uptime not measured (reliability_notes + breakage_log).
- Risk — security
- Our copy: 1 critical + 10 high npm advisories; security_check status open — patch Next.js before public deploy. Calendly vendor posture not probed; compare via public trust/compliance pages only.
- Risk — support
- Self-hosted: you are support. Calendly includes vendor support on paid plans (not measured here).
- Risk — data export
- Self-host Postgres/SQLite under your control (MIT repo); Calendly export terms unverified — we did not log in.
- MIT license at setup.license; no SaaS fee — operator pays infra (operator receipt).
- $10/seat × 100 seats (= views.sell_100.notes)
- List price source: https://calendly.com/pricing
Maintenance pulse
Measured 2026-10-17
- Last commit
- 2026-08-28T12:30:56Z
- Open issues
- 3
- Contributors
- 1
- License
- MIT
- Stars
- 388
Data & lock-in
Self-hosted PostgreSQL in production Compose (setup.environment); local demo uses SQLite on your machine — not Calendly cloud.
Export: partial — Database files/backups on your infra; no export UI tested (reliability_notes: local run only).
- Google Calendar API: Calendar events when OAuth enabled (maintain.services; quota page cited in sources)
- Resend (SMTP): Transactional email content if configured (maintain.services)
- Stripe: Test mode only as shipped — live keys rejected (security_check.findings)
Price history
Receipts are re-priced at least every 90 days; append rows, do not overwrite.
| Checked | Product | Price | Source |
|---|---|---|---|
| 2026-10-17 | Calendly Standard (per seat, billed yearly) | $10 USD/mo/seat | link |
| 2026-10-17 | DigitalOcean Basic Droplet 4 GiB / 2 vCPU | $24 USD/mo | link |
| 2026-10-17 | Resend Pro | $20 USD/mo | link |
Builder did not publish human hours. He published agent time: 5 days 5 hours active, 334 aggregate agent-hours.
Builder-stated vs measured
| Type | Claim | Value | Source |
|---|---|---|---|
| Builder-stated | Equivalent inference (API list-price equivalent) | $14,982.96 | Link · 2026-08-28 |
| Builder-stated | Actually paid for AI | $200/mo Codex plan, "completely maxed out", plus roughly $150 in extra usage credits (about $350 total, our sum) | Link · 2026-08-28 |
| Builder-stated | Input / output tokens | 32,103,178,736 in / 47,364,103 out | Link · 2026-08-28 |
| Builder-stated | Agent time | 5 days 5 hours active; 334 aggregate agent-hours (parallel agents); 76 unique subagents; 300+ delegations (his estimate) | Link · 2026-08-28 |
| Builder-stated | Calendar time | Roughly two calendar weeks | Link · 2026-08-28 |
| Unverified | Human hours to build | Not disclosed | Link · 2026-08-28 |
| Measured by Bot2Bot | Local setup on a fresh Linux box | About 2 minutes wall-clock including one fix (npm ci: 24 s; 547 packages) | Link · 2026-10-17 |
| Measured by Bot2Bot | Unit tests | 196/196 pass on Node 24 (one flaky failure on the first run); 2 of 30 test files cannot load on Node 20.19.2 | Link · 2026-10-17 |
| Measured by Bot2Bot | Production build | next build succeeded in 34 s | Link · 2026-10-17 |
| Measured by Bot2Bot | Dependency audit | 13 advisories: 1 critical, 10 high, 2 moderate (npm audit, 682 packages incl. 171 production) | Link · 2026-10-17 |
Acceptance criteria
- Every builder number traced to his own post, with date
- Repo installs and runs locally from the README with no paid services and no new accounts
- Public booking flow works: list slots, book, reject a double booking
- Time zones and the Nov 1, 2026 US daylight-saving change handled correctly
- Dependency and secret-handling check recorded
- Calendly price taken from calendly.com/pricing, logged out, on the price date
Builder-stated, not invoice-verified. Estimated = his "equivalent inference" figure ($14,982.96). Billed = his $200/mo Codex plan (maxed) + roughly $150 in extra usage credits; $350 is our sum of the two, and the plan fee also covers his other use that month. He also estimated a maxed $200 Claude Code plan delivers "closer to $8,000" of inference. Source: x.com/nateherk/status/2093335489231102341 (2026-08-28).
Not measured. Builder expects "a few prompts every month"; $0 marginal only if you already pay for an AI coding plan.
Run cost services
- VPS for web + worker + PostgreSQL 18 (Docker). Estimate: DigitalOcean Basic 4 GiB/2 vCPU $24.00/mo, digitalocean.com/pricing/droplets, checked 2026-10-17
- Droplet weekly backups: 20% of Droplet cost = $4.80/mo (same page)
- SMTP email: Resend Free $0 (3,000 emails/mo, 100/day); Pro $20/mo for 50,000. resend.com/pricing, checked 2026-10-17
- Google Calendar API: no charge under quota (1,000,000 requests/day/project). developers.google.com/workspace/calendar/api/guides/quota, checked 2026-10-17
- Stripe: test mode only. SnagTime rejects live keys by design, so it cannot take real payments as shipped
- Domain: excluded (assumes you already own one)
Breakage / fix log
2026-08-28
Builder-stated: testing agents never flagged a progress bar that looked clickable but wasn't; he found it by using the app himself.
Cause: Agent testers clicked through flows without judging the human experience.
Fix cost: 0 h · $0.00
2026-08-28
Builder-stated: typing and mouse input lagged close to one second; he set a ~10 ms target and sent the agents back.
Cause: Performance pass needed after the first build.
Fix cost: 0 h · $0.00
2026-08-28
Builder-stated: the first build ("TempoCove") "looked extremely vibe coded" and needed a rebrand and redesign.
Cause: Initial agent output.
Fix cost: 0 h · $0.00
2026-10-17
Measured: following the README (npm run setup, npm run demo:free) on a fresh clone, every page returned HTTP 500: Module not found '@tempocove/postgresql-client'.
Cause: apps/web/src/server/db.ts requires the PostgreSQL client even in SQLite mode, and the dev bundler resolves it at build time. The client is only generated by a separate command.
Fix: npm run db:generate:postgres (no database or account needed), then restart the dev server.
Fix cost: 0.03 h · $0.00
2026-10-17
Measured: README says Node.js 20.9+; on Node 20.19.2, 2 of 30 test files fail to load (No such built-in module: node:sqlite).
Cause: Tests rely on node:sqlite, which Node 20 does not ship.
Fix: Use Node 24 (the README's verified runtime): 196/196 tests pass. One test failed on the first Node 24 run and passed on rerun (flaky, not identified).
Fix cost: 0.02 h · $0.00
2026-10-17
Measured: 10 simultaneous booking requests for the same slot on the local SQLite demo: 1 booked (201), 4 correctly refused (409), 5 failed with HTTP 500 after ~5.1 s. No double booking occurred.
Cause: Unhandled Prisma error under write contention in SQLite mode (likely a lock timeout). The PostgreSQL production path was not tested.
Fix: Not fixed; local demo only.
Fix cost: 0 h · $0.00
Status pages
Subscription it replaces
Calendly (Standard, per seat, billed yearly ($12 billed monthly; Teams $16 yearly / $20 monthly)) — $10.00/mo checked 2026-10-17. Source · see also /prices
Reliability notes
Local run only, 2026-10-17 (PT). Public booking page and slot API worked; slot API first call took 4.7 s on a cold dev server. Booking, idempotent retry, and double-booking refusal worked. Daylight-saving check: a Chicago 9-to-5 host showed 7:00 to 14:30 Pacific start times on both sides of the Nov 1, 2026 change (UTC shifted 14:00 to 15:00), which is correct. Repo last pushed 2026-08-28; no commits in the 7 weeks since. Uptime of a public deployment not measured.
Security check
Tested 2026-10-17 · Status: open
- npm audit at commit 1c95490
- Secret handling: .env files, .gitignore, repo secret scan
- Password storage and strength rules (source review)
- Public booking endpoints: rate limits, idempotency, double-booking race
- Payments: live-key handling
- 13 dependency advisories (1 critical, 10 high, 2 moderate). Critical: next 16.3.2, including GHSA-2xp9-vwfh-vxw4 (RCE in Image Optimization with AVIF) and GHSA-vcvr-r3jv-pc5j (RCE in next/og ImageResponse); patched in 16.3.8+. High: nodemailer (GHSA-2x7j-588g-ccc2, GHSA-v53p-9fqp-m79j), sharp (GHSA-rgj7-g3m4-5g8c, GHSA-wq5f-xc86-pv6w). Upgrade before any public deployment.
- Good: setup generates independent random secrets into a git-ignored .env.local; .env.example holds placeholders only; the repo's own secret scan passed 266 files.
- Good: passwords hashed with scrypt (16-byte salt, constant-time compare); 12+ characters with mixed classes required.
- Good: public slot and booking endpoints are rate-limited (120/min per IP) and bookings require an Idempotency-Key.
- Good: Stripe live keys are rejected; paid bookings are test-mode only.
- Not tested: PostgreSQL row-level security, Google OAuth flow, SMTP, CSRF/XSS penetration testing, a public deployment.
Own business
- Total / mo
- $28.80
- Hosting / mo
- $28.80
- Support hours / mo
- 1 h
You patch it. At the pinned commit, a critical Next.js advisory must be fixed before going public.
VPS list prices are stable; Google says Calendar API charges above quota are planned later in 2026.
Math: $24.00 Droplet + $4.80 backups + $0 Resend Free + $0 Google API = $28.80/mo vs Calendly Standard $10/seat/mo. 1 seat: +$18.80/mo. Break-even: 2.88, so 3+ seats. Assumption: 1 h/mo upkeep (not priced). A 2 GiB Droplet ($12 + $2.40 backups = $14.40) may work but is below the repo's own resource limits; untested.
Sell @ 10 customers
- Total / mo
- $48.80
- Hosting / mo
- $28.80
- Support hours / mo
- 3 h
Needs live payments (not supported as shipped), privacy policy and data-processing terms, Google OAuth consent-screen verification for calendar scopes (requirement unverified here), and SPF/DKIM/DMARC.
Email volume and Google API billing are the variable costs.
Assumptions: 10 customers × 1 seat × ~50 bookings × ~3 emails = ~1,500 emails/mo; Resend Pro $20 to remove the 100/day cap. $28.80 + $20 = $48.80/mo, about $4.88 per customer, plus ~3 support hours. Same single deployment (multi-workspace is built in); load not tested.
Sell @ 100 customers
- Total / mo
- $77.60
- Hosting / mo
- $57.60
- Support hours / mo
- 10 h
Adds backup restore drills, an on-call owner, incident response, and the SOC 2-style questions buyers ask Calendly-class vendors.
Google Calendar API charges above quota are planned for later in 2026 (Google's quota page); email overage $0.90 per 1,000 on Resend Pro.
Assumptions: 100 seats, ~15,000 emails/mo. DigitalOcean Basic 8 GiB/4 vCPU $48 + 20% backups $9.60 = $57.60; Resend Pro $20. Total $77.60/mo, about $0.78 per customer, plus ~10 support hours. For scale: 100 Calendly Standard seats list at $1,000/mo. Not measured.
Reproducible setup
- git clone https://github.com/nateherkai/snagtime && git checkout 1c95490
- npm run setup (creates git-ignored .env.local with random secrets)
- npm run demo:free (npm ci, migrate 25 migrations, seed, start dev server)
- If every page returns 500: npm run db:generate:postgres, then restart with npx dotenv -e .env.local -- npm run dev
- Run tests on Node 24: npx -y node@24 node_modules/vitest/vitest.mjs run
- npm audit; npm run ci:secret-scan; npm run build
- Booking checks: GET /api/public/strategy-call/slots, POST /api/public/strategy-call/bookings with an Idempotency-Key, repeat the same slot, then 10 concurrent requests
- Calendly price: calendly.com/pricing logged out, schema.org Offer data, 2026-10-17
Repo: https://github.com/nateherkai/snagtime
License: MIT
Sources
- Builder article with full cost breakdown (2026-08-28)
- Builder launch post (2026-08-28)
- Builder repo link (2026-08-28)
- SnagTime repo, MIT, commit 1c95490
- Calendly pricing (checked 2026-10-17)
- DigitalOcean Droplet pricing (checked 2026-10-17)
- Resend pricing (checked 2026-10-17)
- Google Calendar API usage limits and pricing (checked 2026-10-17)
- Calendly Acceptable Use Policy (why we never logged in)
Disclosure
Verification: partially_verified. Bot2Bot Labs. Test cost $0: local run on our own box, no paid services, no accounts. No relationship with the builder, Calendly, DigitalOcean, Resend, Google, or Stripe.
Build cost and agent-time figures are builder-stated (traced to his own post, not invoice-verified). Local install, tests, booking behavior, and security findings are measured by Bot2Bot on 2026-10-17. Hosting is an estimate from cited list prices; we did not deploy publicly.
How to cite
Bot2Bot Labs (2026-10-17). SnagTime, the AI-built Calendly clone: what it really costs to run. AI Receipt r-0001. Price date 2026-10-17. https://bot2botlabs.com/receipts/r-0001