Openslot
Scheduled Sep 9, 2026Booking links and lead routing you host yourself.
Replaces
- Calendly · Calendly LLC — $16 per seat per month (Teams), about $76,800/yr at 400 seats
- Chili Piper · Chili Piper, Inc. — $1,250 per org per month (Routing & Scheduling (15 seats included)), about $15,000/yr at 400 seats
Rented, per year
$76,800
Calendly list price at 400 seats.
Owned, per year
$4,920
AWS infrastructure only. Azure is $5,460.
Build
6 weeks
2 engineers. To parity on the ten core features above, including migration of existing Calendly event types and links with 301 redirects from old booking URLs so live campaigns keep working.
Difficulty
3/5
Well-understood shape. Low delivery risk.
Reference organisation: 400 hosts, 900 connected calendars, ~28,000 bookings/month, single region, prod + non-prod. 3-year Compute Savings Plan on Fargate, 3-year reservation on Container Apps and PostgreSQL Flexible Server. Aurora Serverless v2 minimum 0.5 ACU. Excludes SMS carrier charges for reminders, vendor support plans and egress above 1 TB/month. Figures are infrastructure only and exclude the build.
What it is
Openslot is scheduling and routing: booking pages backed by real calendar availability, round-robin and weighted distribution across teams, qualification forms that route an inbound lead to the right owner, and instant hand-off from a web form to a booked meeting. It is for revenue and recruiting organisations past about 150 seats, where a booking link has quietly become a per-seat licence for everyone who talks to a customer. Openslot runs on your own domain, against your own Google Workspace or Microsoft 365 tenancy, with the meeting data staying in systems you already own.
Why this one stops making sense
- Calendly Teams is $16 per seat per month. At 400 client-facing staff that is $76,800 a year for a page that reads a calendar and writes an event.
- Chili Piper starts at $1,250 a month for 15 seats and $45 per seat after that. A 120-seat sales organisation is about $71,700 a year before the Experiences tier.
- Booking links sit on the vendor's domain in front of your prospects. Your highest-intent traffic gets redirected off your own brand and your own analytics.
- Every meeting booked is a first-party record of buying intent, and it is stranded in a scheduling tool rather than joined to your CRM and warehouse.
- Routing rules are business logic — territory, segment, account ownership — maintained by whoever last had admin, with no review and no history.
What ships
- Booking pages on your own domain with per-person, team and collective event types
- Two-way sync with Google Calendar and Microsoft 365 including free/busy across multiple calendars
- Round-robin, weighted and priority-based assignment with fairness tracking
- Qualification forms that route on any field: territory, employee count, segment, account owner
- Instant hand-off from a submitted form to a booked slot without a second page load
- Buffers, minimum notice, daily caps, rolling windows and per-person working hours
- Automatic timezone handling with DST-correct rendering for the invitee
- Reminders and follow-ups over email and SMS with configurable cadence
- Reassignment and reschedule flows that survive the original owner leaving
- CRM write-back to Salesforce or HubSpot, plus a raw event stream to your warehouse
Data model
Stack
- frontend
- Next.js 15 App Router + Tailwind, with the public booking page server-rendered and shipped as static HTML plus 18 KB of JavaScript
- backend
- NestJS on Node 22 — REST, plus a calendar sync worker and a routing evaluator
- database
- PostgreSQL 16 with a tstzrange exclusion constraint on bookings so double-booking is impossible at the storage layer
- cache
- Redis 7 for free/busy caching, routing decisions and per-host rate limits
- queue
- BullMQ for calendar webhook processing, reminder delivery and CRM write-back with retry
- auth
- OIDC against the customer IdP for hosts; invitees never authenticate
- search
- PostgreSQL tsvector across bookings and invitee records
- ai
- Optional intent classification on free-text form fields to improve routing, through an LLM gateway
Parity, honestly
What we match, and what we do not.
The rows marked No are the important ones. If one of them is the reason you bought Calendly, keep buying it — and we will tell you that on the first call rather than the fifth month.
| Capability | Calendly | Ours | Note |
|---|---|---|---|
| Personal and team booking pages | Yes | Yes | — |
| Google Calendar and Microsoft 365 two-way sync | Yes | Yes | Via the customer's own OAuth application, so token scopes are yours to audit. |
| Round-robin with fairness and availability weighting | Yes | Yes | — |
| Form-to-meeting routing on qualification fields | Yes | Yes | This is Chili Piper's core value and Openslot matches it. |
| Booking pages on your own domain | Partial | Yes | Calendly charges for a custom domain at the Enterprise tier. Openslot has no other option. |
| Collective and group event types | Yes | Yes | — |
| Salesforce and HubSpot write-back | Yes | Yes | Two connectors built properly rather than twelve built shallowly. |
| Payment collection at booking (Stripe, PayPal) | Yes | Partial | Stripe only, and only if you need it. PayPal and regional processors are out of scope. |
| Browser extensions and an Outlook / Gmail add-in | Yes | No | Publishing and maintaining listings in the Chrome Web Store, Microsoft AppSource and Google Workspace Marketplace is an ongoing review-and-recertification burden, not a build. If one-click insert from the inbox is how your team actually works, that is a real gap. |
| Vendor-run SOC 2 Type II report for your security review | Yes | No | Openslot inherits your own compliance posture. If a prospect's procurement team demands a vendor attestation for the tool that touches their calendar, keep buying one. |
| Zoom, Teams and Google Meet conferencing links | Yes | Yes | — |
| Per-seat licensing for anyone who needs a link | Yes | No | Openslot has no seat count. Recruiters, support and success get links at no marginal cost. |
Reference architecture
Built twice, on purpose.
Every application in Techtons ships with a production architecture for AWS and one for Azure, using the same diagram grammar so you can read them side by side. Your cloud, your account, your bill.
Amazon Web Services
- Compute
- ECS Fargate services (api, sync, worker) behind an ALB, with the public booking page served from CloudFront
- Data
- Aurora Serverless v2 PostgreSQL, ElastiCache Redis
- Storage and edge
- S3 for the static booking-page bundle and export files, CloudFront for delivery
- Identity
- Cognito federated to the customer IdP for hosts only
- Observability
- OpenTelemetry to CloudWatch and X-Ray, with booking-funnel drop-off as a custom metric
- Infrastructure as code
- Terraform, one module per environment, remote state in S3 with a DynamoDB lock
Services
The decision worth arguing about
The non-obvious decision is how calendar subscriptions get renewed. Google Calendar push channels expire after seven days and Microsoft Graph subscriptions after three, and if one lapses the host's availability silently goes stale — the worst failure this product has, because it books a meeting on top of an existing one and nobody notices until two people join different calls. The obvious implementation is a cron sweep every hour that renews anything expiring soon. Openslot instead creates a one-shot EventBridge Scheduler entry per channel, fired at expiry minus six hours, so renewal is an event rather than a poll and a sweep that fails cannot take down every host at once. The trade is a hard quota: EventBridge Scheduler allows one million schedules per account, which sounds infinite until you realise a 5,000-host org with four calendars each burns 20,000 of them on a rolling basis and shares that account with everything else the customer runs. Above roughly 8,000 calendar connections we fall back to a sharded sweep, and the Terraform makes that a variable rather than a rewrite.
Microsoft Azure
- Compute
- Azure Container Apps (api, sync, worker), booking page served from Front Door with Blob Storage origin
- Data
- Azure Database for PostgreSQL Flexible Server, Azure Cache for Redis
- Storage and edge
- Blob Storage for the static booking bundle and exports, Front Door Standard for edge and WAF
- Identity
- Microsoft Entra ID for hosts; the Graph calendar connection uses the same tenancy
- Observability
- Azure Monitor with Application Insights
- Infrastructure as code
- Bicep in an azd-compatible layout
Services
The decision worth arguing about
Azure is the better host when the customer is a Microsoft 365 shop, and not for the reason people expect. The win is not Entra single sign-on; it is that Graph change notifications can be delivered to Event Grid rather than to an HTTPS endpoint you operate, which removes the entire class of failure where a scale-to-zero container misses a validation handshake and Microsoft deletes the subscription. The cost is subtler than it looks. Event Grid delivery means the sync worker no longer sees the raw Graph payload's clientState, so subscription authenticity has to be re-established by calling Graph back for the changed event — one extra round trip per notification, about 120ms, on a path that fires every time anyone in the org moves a meeting. At 400 hosts that is roughly 90,000 extra Graph calls a day, comfortably inside the throttling limits but close enough that the worker carries a token-bucket limiter rather than trusting it.
Sources
Every price on this page, with the page we read it from and the date we read it.
| Product | Plan | List price | Checked | Source |
|---|---|---|---|---|
| Calendly | Teams | $16 / seat/month | 2026-09-05 | calendly.com/pricing Monthly rate; annual billing is discounted about 20%. Calendly Enterprise starts at $15,000 a year with a 50-seat minimum. |
| Chili Piper | Routing & Scheduling (15 seats included) | $1,250 / org/month | 2026-09-05 | www.chilipiper.com/pricing $1,250/month covers 15 seats; each additional seat is $45 per month. The Experiences tier starts at $3,500/month for 30 seats. |
Should you still be paying for Calendly?
Two weeks, fixed price. We audit what you actually use, map it against Openslot, cost the replacement on your own AWS or Azure account, and give you a delivery plan. If the honest answer is to keep the licence, that is what the report will say.