The open-source Calendly alternative.

Related tags

Calendar calendso
Overview

Logo

Calendso

The open-source Calendly alternative.
Learn more »

Slack · Website · Issues

About The Project

Calendso Screenshot

Let's face it: 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 Calendso 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. Calendso is to Calendly what GitLab is to GitHub.

Built With

Getting Started

To get a local copy up and running, please follow these simple steps.

Prerequisites

Here is what you need to be able to run Calendso.

  • Node.js
  • PostgreSQL
  • Yarn (recommended)

You will also need Google API credentials. You can get this from the Google API Console. More details on this can be found below under the Obtaining the Google API Credentials section.

Development Setup

  1. Clone the repo
    git clone https://github.com/calendso/calendso.git
  2. Install packages with yarn
    yarn install
  3. Copy .env.example to .env
  4. Configure environment variables in the .env file. Replace , , , with their applicable values
    DATABASE_URL='postgresql://:@:'
    GOOGLE_API_CREDENTIALS='secret'
    
  5. Set up the database using the Prisma schema (found in prisma/schema.prisma)
    npx prisma db push --preview-feature
  6. Run (in development mode)
    yarn dev
  7. Open Prisma Studio to look at or modify the database content:
    npx prisma studio
    
  8. Click on the User model to add a new user record.
  9. Fill out the fields (remembering to encrypt your password with BCrypt) and click Save 1 Record to create your first user.
  10. Open a browser to http://localhost:3000 and login with your just created, first user.

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

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.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Make your changes
  4. Commit your changes (git commit -m 'Add some AmazingFeature')
  5. Push to the branch (git push origin feature/AmazingFeature)
  6. Open a pull request

Obtaining the Google API Credentials

  1. Open Google API Console. If you don't have a project in your Google Cloud subscription, you'll need to create one before proceeding further. Under Dashboard pane, select Enable APIS and Services.
  2. In the search box, type calendar and select the Google Calendar API search result.
  3. Enable the selected API.
  4. Next, select OAuth consent screen from the side pane. Select the app app type (Internal or External) and enter the basic app details on the first page.
  5. In the second page on Scopes, select Add or Remove Scopes. Search for Calendar.event and select the scope with scope value .../auth/calendar.events and select Update.
  6. Next, under Test Users, add the Google account(s) you'll using. Make sure the details are correct on the last page of the wizard and your consent screen will be configured.
  7. Now select Credentials from the side pane and then select Create Credentials. Select the OAuth Client ID option.
  8. Select Web Application as the Application Type.
  9. Under Authorized redirect URI's, select Add URI and then add the URI /api/integrations/googlecalendar/callback replacing CALENDSO URL with the URI at which your application runs.
  10. The key will be created and you will be redirected back to the Credentials page. Select the newly generated client ID under OAuth 2.0 Client IDs.
  11. Select Download JSON. Copy the contents of this file and paste the entire JSON string in the .env file as the value for GOOGLE_API_CREDENTIALS key.

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgements

Special thanks to these amazing projects which help power Calendso:

Comments
  • Missing apps

    Missing apps

    Hey,

    I dont know if this may be related to the other issue I reported, but it doesnt show me any apps. image

    E.g. the caldav app is missing. Also in the database there is no entry for it.

    Thanks.

    opened by timowevel1 43
  • Opt-in booking confirmation page & email are inconsistent

    Opt-in booking confirmation page & email are inconsistent

    What does this PR do?

    Fixes #2816

    More intuitive and clear Opt-in bookings confirmation page titles, as well as the icon

    Opera Instantâneo_2022-06-27_104110_localhost

    Opera Instantâneo_2022-06-27_104032_localhost

    Type of change

    • [x] New feature (non-breaking change which adds functionality)
    🎨 needs design 
    opened by gitstart 34
  • Add Web Share in mobile

    Add Web Share in mobile

    What does this PR do?

    In this PR we added the mobile functionality to be able to share the link of an event through social networks.

    Fixes #1768

    Type of change

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [X] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [ ] This change requires a documentation update

    How should this be tested?

    • The functionality is tested on mobile, it should be noted that Web Share is not compatible with all browsers and versions.

    Checklist:

    • [X] My code follows the style guidelines of this project
    • [X] I have performed a self-review of my own code and corrected any misspellings
    • [ ] I have commented my code, particularly in hard-to-understand areas
    • [ ] I have made corresponding changes to the documentation
    • [X] My changes generate no new warnings
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] New and existing unit tests pass locally with my changes
    ♻️ autoupdate 
    opened by Jenietoc 34
  • RFC: Embedded Bookings

    RFC: Embedded Bookings

    WIP:

    https://github.com/calcom/cal.com/pull/2227

    Right now two options are there

    • Standard Iframe Embed
    • Responsive Full-Screen Iframe Embed

    Known Issues

    • ~~Doesn't inherit the site theme~~
    • ~~height problems with iframes (iframes commonly don't know the height of their content)~~
    • performance (the iframe loads the entire Next.js app)
    • ~~Issues in accessing Cookies/WebStorage in a third-party context.The current stance of various browsers. E.g. see that in Chrome Incognito, the booking page goes blank.~~
    • ~~lack of more advanced embeds such as a bubble in the bottom right like intercom that opens cal as a dialogue~~

    What iframe does good

    • Automatic Styles Encapsulation
    • Restrictions over what we want to offer in the free plan e.g. do we want to restrict full theming in the free plan?
    • Reuse of same non embed booking page

    What do we want?

    • ~~Exists as a package in monorepo~~
    • Installable as
      • ~~React Component. Other framework-specific packages can be owned by our awesome community.~~
      • ~~Script Embed