* feat: Change hashedLink field to array Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Implement core single-use links logic Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Get private link from list of hashedLinks on event list page Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix defalut single-use links form field value Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix some type errors while compiling Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Use onChange callback instead of setting form values directly Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Add e2e tests for single-use links Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Refactor single-use-links admin interface Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix settings toggle bugs Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * chore: Remove redundant inline comments Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Remove debug statements Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * chore: Remove single-use links e2e tests Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Remove private-link feature and override with single-use-links Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix type errors Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Remove redundant migrations Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Add managedEvents restriction Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix single-use-links for org Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix recommended UI changes Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix duration not respected for private links Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix team event page title Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Add logic to copy each single-use-links from event listing page Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Add single-use links support for managed event types Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix some type errors Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix type errors Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Disable adding new single-use links when field is locked Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Address feedbacks Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Hide add new link button for locked single-use link field Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * chore: Use empty string for single-use link fallback value condition Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix org single-use links in listing page Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Auto toggle unlock button for managed event's single-use links option Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * Revert "feat: Auto toggle unlock button for managed event's single-use links option" This reverts commit 5a2ed6f0bf428d52de153335499f02f42ccdf18f. * chore: Disable parent toggle for single-use-links Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Remove tooltip and give info message below field Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * add tooltip * tooltip message * fix: Fix typo Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix typescript type errors Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix few unit tests Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Remove redundant query Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * merge conflict fix * More merge conflict fix and refactor * fix tests, code refactor * fix: type check * fix: duration config and keep links when updating event type * fix: e2e * refactor: Replace single-use-links with multiple-private-links Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> --------- Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> Co-authored-by: Amit91848 <samit91848@gmail.com>
Enterprise Edition
Welcome to the Enterprise Edition ("/ee") of Cal.com.
The /ee subfolder is the place for all the Enterprise Edition features from our hosted plan and enterprise-grade features for Enterprise such as SSO, SAML, OIDC, SCIM, SIEM and much more or Platform plan to build a marketplace.
❗ WARNING: This repository is copyrighted (unlike our main repo). You are not allowed to use this code to host your own version of app.cal.com without obtaining a proper license first❗
Setting up Stripe
- Create a stripe account or use an existing one. For testing, you should use all stripe dashboard functions with the Test-Mode toggle in the top right activated.
- Open Stripe ApiKeys save the token starting with
pk_...toNEXT_PUBLIC_STRIPE_PUBLIC_KEYandsk_...toSTRIPE_PRIVATE_KEYin the .env file. - Open Stripe Connect Settings and activate OAuth for Standard Accounts
- Add
<CALENDSO URL>/api/integrations/stripepayment/callbackas redirect URL. - Copy your client*id (
ca*...) toSTRIPE_CLIENT_IDin the .env file. - Open Stripe Webhooks and add
<CALENDSO URL>/api/integrations/stripepayment/webhookas webhook for connected applications. - Select all
payment_intentevents for the webhook. - Copy the webhook secret (
whsec_...) toSTRIPE_WEBHOOK_SECRETin the .env file.
Setting up SAML login
- Set SAML_DATABASE_URL to a postgres database. Please use a different database than the main Cal instance since the migrations are separate for this database. For example
postgresql://postgres:@localhost:5450/cal-saml - Set SAML_ADMINS to a comma separated list of admin emails from where the SAML metadata can be uploaded and configured.
- Create a SAML application with your Identity Provider (IdP) using the instructions here - SAML Setup
- Remember to configure access to the IdP SAML app for all your users (who need access to Cal).
- You will need the XML metadata from your IdP later, so keep it accessible.
- Log in to one of the admin accounts configured in SAML_ADMINS and then navigate to Settings -> Security.
- You should see a SAML configuration section, copy and paste the XML metadata from step 5 and click on Save.
- Your provisioned users can now log into Cal using SAML.