Scheduling and booking
Scheduling and booking
Run availability, event types, and booking pages on a self-hosted Cal.com instance. You operate event types, calendar connections, and booking pages; Quake AI provides the Compute instance, network, and block storage the platform runs on.
What this is for#
A person or team that shares booking links for meetings needs availability rules, event types, and calendar sync. Cal.com (a self-hosted alternative to Calendly) gives them that scheduling layer, running on infrastructure you own instead of a multi-tenant SaaS. The outcome is a booking platform reachable at your own domain, deployable from a validated OpenTofu template and its companion tutorial.
Reference architecture#
Download diagram: SVG, PNG, and PDF.
The base is a single validated template: Cal.com scheduling provisions the instance, network, and volume Cal.com runs on.
-
Bookers and team members. External bookers use shared booking links; team members configure availability, event types, and calendar sync.
-
Reverse proxy. The edge reverse proxy template terminates HTTPS on a floating IP and forwards to Cal.com on the private subnet, since Cal.com needs a public URL for OAuth calendar-sync callbacks and booking-page links.
-
Cal.com app. The Cal.com scheduling template clones Cal.com's source and builds the app image locally on a Compute instance, since the published prebuilt image compiles the public app URL into the JavaScript bundle at build time and doesn't support pointing at your own domain at runtime.
-
Bundled datastore. PostgreSQL stores availability, event types, and bookings, backed by a Block Storage volume that also holds the cloned source tree and Next.js build cache.
Services involved#
| Service | Role in this architecture | Docs |
|---|---|---|
| Compute | Builds and hosts the Cal.com app and its bundled PostgreSQL | Compute |
| Network | Private network, security group, and floating IP for public access | Network |
| Block Storage | Volume backing the source tree, build cache, and database data | Block Storage |
Get started#
- Cal.com scheduling template: OpenTofu pattern that provisions the instance, network, and volume, clones the pinned release tag, and generates
NEXTAUTH_SECRET,CALENDSO_ENCRYPTION_KEY, and the database password on first boot. - OpenTofu template library: browse validated IaC starting points for other self-hosted team tools.
Estimate the cost#
Monthly cost estimate
Pricing calculator ↗Sized as a custom package on shared vCPU.
Monthly total for the required template above. Use the configurator below to add optional pieces and see the total update.
What each resource is for
Cal.com scheduling host
s1a.large · 8 shared vCPU, 8 GiB RAM, 0.5 Gbps
Clones Cal.com's source tree and builds the app image locally alongside a bundled PostgreSQL, because the published Docker Hub image bakes its public URL in at build time.
Building the Cal.com Next.js monorepo from source needs real CPU and disk; 8 vCPU and 8 GiB RAM is the floor while building. Size down after the first successful build if you want to save cost.
Compute shown per role at custom-package rates ($29/dedicated vCPU, $7.25/shared vCPU, $1/GiB RAM). The headline above is the billed total: the cheaper of a named plan and the custom package, plus add-ons.
Included in baseline
s1a.large
8 shared vCPU, 8 GiB RAM, 0.5 Gbps
Compute + RAM rate basis
8 vCPU + 8 GiB RAM at $29/dedicated vCPU, $7.25/shared vCPU, $1/GiB RAM (regular). Totals apply the flat −$5/mo package promotion.
Block storage (60 GiB)
60 GiB at $0.08/GiB/mo
Public IP (included)
1 included with the custom package
Package promotional discount
Flat −$5.00/mo on the custom package (same promotion as named plans).
Included at no charge
These line items are zero on Quake AI. Many other providers meter them separately.
Data transfer (inbound and outbound)
Unlimited data transfer on every plan; Quake AI does not meter per-GB egress.
AWS, GCP, and Azure meter outbound transfer per GB. DigitalOcean and Hetzner include an allowance on compute plans, then charge overage.
Learn morePrivate networking
Private networks, subnets, Neutron routers, and security groups are included with the plan.
VPC objects are usually free to create elsewhere, but NAT gateways bill hourly plus per-GB processed. Quake AI uses router SNAT with no separate NAT line item.
Control-plane API requests
OpenStack API calls for provisioning and management are included.
Some managed services on other clouds meter API calls or charge for premium control-plane features.
Configure your estimate
Check the add-ons you plan to deploy to build a monthly total. Nothing is selected to start, so the total below begins at the baseline.
Starting template
The required baseline, always included.
Pricing data last validated: . For current rates, check quake.ai/pricing.
Considerations and limits#
- The app builds from source, not a prebuilt image. The build needs real CPU and disk: the default
s1a.largeflavor (8 vCPU, 8 GiB RAM) and 30 GiB volume cover the initial Next.js build. You can size the flavor down afterward, and back up for any future rebuild. - You operate calendar and integration credentials. Quake AI provisions the instance; calendar OAuth apps, video-conferencing integrations, and booking-page configuration are yours under the shared responsibility model.
- Single-instance bundled datastore. The bundled PostgreSQL suits a single-team deployment. To run it separately, point
DATABASE_URLandDATABASE_DIRECT_URLat a self-managed PostgreSQL instance and rebuild. - Flat egress. Quake AI applies a no-egress-fee policy for outbound transfer.
- Three US regions. All current regions are in the United States.
- Compliance posture. Quake AI holds SOC 2 Type I and Type II attestations and SOC 3. See Compliance and certifications for the platform scope.