Cal.com logo

Cal.com

Open-source scheduling infrastructure you control and customize

Self-hosted Calendly alternative offering full control over your scheduling data, workflow, and branding. API-driven, white-label by design, and deployable on your own domain.

Cal.com banner

Overview

Highlights

Self-hosted or cloud: deploy on your domain or use managed hosting
White-label by design: full control over branding and appearance
API-driven architecture: integrate scheduling into any workflow
Data sovereignty: own your events, availability, and user information

Pros

  • Complete control over scheduling data and user experience
  • API-first design enables deep integration with existing systems
  • Active development with strong community and Hacker News recognition
  • Flexible deployment: self-host or use managed service

Considerations

  • Self-hosting requires Node.js, PostgreSQL, and DevOps expertise
  • AGPLv3 license mandates open-sourcing modifications in public deployments
  • Integration setup may require obtaining third-party API credentials
  • Steeper learning curve compared to SaaS-only scheduling tools

Managed products teams compare with

When teams consider Cal.com, these hosted platforms usually appear on the same shortlist.

Acuity Scheduling logo

Acuity Scheduling

Online appointment booking software with automated scheduling and reminders

Appointlet logo

Appointlet

Online scheduling for teams with calendar sync and unlimited meetings

Calendesk logo

Calendesk

Online booking and appointment scheduling with payments and client notifications

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Development teams needing embeddable scheduling in their products
  • Agencies requiring white-label booking for multiple clients
  • Privacy-conscious organizations wanting on-premise data control
  • Businesses seeking API-driven scheduling automation

Not ideal when

  • Non-technical users without access to hosting infrastructure
  • Teams seeking zero-configuration SaaS with no maintenance
  • Projects requiring proprietary closed-source modifications without licensing
  • Organizations lacking Node.js and PostgreSQL operational experience

How teams use it

SaaS product embedded booking

Integrate native scheduling into your application without redirecting users to third-party tools

Agency white-label scheduling

Deploy branded booking pages for multiple clients under their own domains

Enterprise on-premise deployment

Maintain full data sovereignty while automating internal and external meeting coordination

Service business automation

Customize booking workflows for yoga studios, consultancies, or educational seminars with API integrations

Tech snapshot

TypeScript96%
CSS3%
HTML1%
JavaScript1%
PLpgSQL1%
MDX1%

Tags

turborepoopen-sourcet3-stackpostgresqltrpcnextjszodtailwindcsstypescriptprismanext-auth

Frequently asked questions

Can I use Cal.com without self-hosting?

Yes. Cal.com offers a managed hosting service alongside the self-hosted option, so you can choose based on your technical resources and control requirements.

What license governs Cal.com?

Cal.com is licensed under AGPLv3 for public repositories. If you need to keep modifications private, a commercial license is available.

What are the minimum technical requirements?

Self-hosting requires Node.js 18+, PostgreSQL 13+, and Yarn. Docker and Docker Compose simplify local development with the yarn dx quick-start.

How does Cal.com compare to Calendly?

Cal.com offers similar scheduling features but with full data ownership, API access, white-label customization, and the option to self-host on your infrastructure.

Can I integrate third-party services?

Yes. Cal.com supports various integrations, though you may need to obtain API credentials for each service you wish to connect.

Project at a glance

Active
Stars
39,770
Watchers
39,770
Forks
11,620
Repo age4 years old
Last commit2 days ago
Self-hostingSupported
Primary languageTypeScript

Last synced yesterday