The open source Calendly alternative. You are in charge of your own data, workflow and appearance.
Calendly and other scheduling tools are awesome. It made our lives massively easier. We're using it for business meetings, seminars, yoga classes and even calls with our families. However, most tools are very limited in terms of control and customisations.
That's where Cal.com comes in. Self-hosted or hosted by us. White-label by design. API-driven and ready to be deployed on your own domain. Full control of your events and data.
Cal officially launched as v.1.0 on 15th of September, however a lot of new features are coming. Watch releases of this repository to be notified for future updates:
To get a local copy up and running, please follow these simple steps.
Here is what you need to be able to run Cal.
- Requires Docker to be installed
- Will start a local Postgres instance with a few test users - the credentials will be logged in the console
git clone email@example.com:calendso/calendso.git cd calendso yarn yarn dx
sh git clone https://github.com/calendso/calendso.git
sh yarn install
Configure environment variables in the .env file. Replace
<db-port> with their applicable values
Create a free account with Heroku.
Create a new app.
In your new app, go to
Overview and next to
Installed add-ons, click
Configure Add-ons. We need this to set up our database.
Once you clicked on
Configure Add-ons, click on
Find more add-ons and search for
postgres. One of the options will be
Once the pop-up appears, click
Submit Order Form
Hobby Dev - Free.
Once you completed the above steps, click on your newly created
Heroku Postgres and go to its
Settings, copy your URI to your Cal.com .env file and replace the
postgresql://<user>:<pass>@<db-host>:<db-port> with it.
To view your DB, once you add new data in Prisma, you can use Heroku Data Explorer.
sh npx prisma migrate deploy
sh yarn dev
npx prisma studio
Usermodel to add a new user record.
Save 1 Recordto create your first user.
# In first terminal yarn dx # In second terminal yarn test-playwright
Apply database migrations by running one of the following commands:
In a development environment, run:
npx prisma migrate dev
(this can clear your development database in some cases)
In a production environment, run:
npx prisma migrate deploy
.env.example and compare it to your current
.env file. In case there are any fields not present
in your current
.env, add them there.
For the current version, especially check if the variable
BASE_URL is present and properly set in your environment, for example:
yarn devFor a production build, run for example:
yarn build yarn start
The Docker configuration for Cal is an effort powered by people within the community. Cal.com, Inc. does not provide official support for Docker, but we will accept fixes and documentation. Use at your own risk.
The Docker configuration can be found in our docker repository.
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
git checkout -b feature/AmazingFeature)
git commit -m 'Add some AmazingFeature')
git push origin feature/AmazingFeature)
.../auth/calendar.readonlyand select Update.
<Cal.com URL>/api/integrations/googlecalendar/callbackreplacing Cal.com URL with the URI at which your application runs.
<Cal.com URL>/api/integrations/office365calendar/callbackreplacing Cal.com URL with the URI at which your application runs.
<Cal.com URL>/api/integrations/zoomvideo/callbackreplacing Cal.com URL with the URI at which your application runs.
DAILY_API_KEYfield in your .env file.
Distributed under the AGPLv3 License. See
LICENSE for more information.
Special thanks to these amazing projects which help power Cal.com: