diff --git a/help/apps-and-integrations/adding-first-app.mdx b/help/apps-and-integrations/adding-first-app.mdx new file mode 100644 index 0000000000..64e7a9d41c --- /dev/null +++ b/help/apps-and-integrations/adding-first-app.mdx @@ -0,0 +1,20 @@ +--- +title: "Adding your first app" +--- + +Head over to the **apps** page, where you'll find our app store. We suggest firstly adding a calendar integration, then optionally a video conferencing platform, and then try out the other apps. + + + + + +Find the app you'd like to install, and either click **Install** in the top right of that app's card to add it right away, or click on the app's card to view more details. + +In the details page you can read more about each app, then click **Install** in the top right of the page to add it to your account. + + + + + +If the app requires authentication, for instance to connect your Google Account, a dialog will be opened prompting you to authenticate. Once complete, the app will be successfully installed. \ No newline at end of file diff --git a/help/apps-and-integrations/app-store.mdx b/help/apps-and-integrations/app-store.mdx new file mode 100644 index 0000000000..18224394d0 --- /dev/null +++ b/help/apps-and-integrations/app-store.mdx @@ -0,0 +1,11 @@ +--- +title: "App Store" +--- + +The whole idea behind Cal.com is to make scheduling easy, we want it to be an effortless process, and we want everybody to be able to access it. + +With this in mind, we built an app store. Our apps let you extend cal.com features, and makes integrating other services effortless. This makes it easy to customize your cal.com experience. Apps can be used to do things like add extra calendar connections or host a virtual team-building session. + +The Cal app store also makes it easy to coordinate things like podcast production, twitch streaming, and CMS outreach. With Cal.com, calendar scheduling is simple, effortless and whenever you need it to be fun. + +Currently, we have 45+ apps in our app store which can assist you in your scheduling experience, from Calendar apps to Automation apps. You can use the built-in search bar to look for the app quickly if you'd prefer that. \ No newline at end of file diff --git a/help/apps-and-integrations/apps.mdx b/help/apps-and-integrations/apps.mdx new file mode 100644 index 0000000000..6e1aab8af0 --- /dev/null +++ b/help/apps-and-integrations/apps.mdx @@ -0,0 +1,15 @@ +--- +title: "Apps" +--- + +Apps are extensions within Cal.com that extend the functionality of the software. Most commonly, apps are integrations with various calendar providers, video conferencing software and other platforms. However, apps also provide the ability to add extra features to the software, such as the _Wipe my cal_ app which offers the ability to mass-reschedule your entire day. Check out the Cal.com [app store](https://cal.com/apps) now + + +**Looking to build an app for Cal.com?** Check out our [guide](https://cal.com/docs/how-to-guides/how-to-build-an-app) for more information on building an app for our app store. + + +Clicking **Apps** in the sidebar will take you to the app store, which is the marketplace to find and install apps. They are divided into categories which you can browse through. + +You can click on any app's card to view the detailed view, which gives you a description for the app, as well as additional information about it. If you want to install it, simply hit the **Install** button and it will be added. If the app requires authentication, for instance to connect your Google Account, a dialog will be opened prompting you to authenticate. Once complete, the app will be successfully installed. + +Clicking on **Installed apps** in the sidebar takes you to a page detailing which apps you have installed and any relevant settings for them. Here, you can do things like enabling and disabling certain calendars, adding webhooks, uninstalling apps and more. \ No newline at end of file diff --git a/help/apps-and-integrations/assign-people.mdx b/help/apps-and-integrations/assign-people.mdx new file mode 100644 index 0000000000..d9871b5514 --- /dev/null +++ b/help/apps-and-integrations/assign-people.mdx @@ -0,0 +1,33 @@ +--- +title: Assign people to a call from a CRM or database +--- + +## Option #1 Based on CRM integration + +If you are working with a CRM such as Salesforce, Hubspot, Close.com or similar, you can use our integrations to connect to your apps. + +We're using the Assignee APIs from each service to understand which person is assigned to an email of a new lead. + +By prefilling your booking link with ?email=[name@acme.com](https://cal.com/help/en/articles/) our integration will look up who has spoken to [name@acme.com](https://cal.com/help/en/articles/) before and skip all round-robin logic. + +Here is an example URL: i.cal.com/sales/exploration?email=[name@acme.com](https://cal.com/help/en/articles/) + +This works with Embeds as well, just add the parameter to your CalLink property. + +## Option #2 Based on Emails + +If you are using a different product that we don't integrate with, or you need something more custom you can also achieve this with our Organization plan. + +We've built our Organization system in a way where every email can be turned into a scheduling link with your company subdomain: + +[jane@acme.com](https://cal.com/help/en/articles/) → acme.cal.com/jane (or schedule.acme.com/jane) + +This means if you have a table: +| **User** | **AccountExecutive** | +| --- | --- | +| [peer@cal.com](https://cal.com/help/en/articles/) | [jane@acme.com](https://cal.com/help/en/articles/) | + +You could show [peer@cal.com](https://cal.com/help/en/articles/) an embed inside your application simply by using the value from AccountExecutive to build the link: + +[jane@acme.com](https://cal.com/help/en/articles/) → acme.cal.com/jane either with a string replace function or a simple regex. + diff --git a/help/apps-and-integrations/build-greeter-app.mdx b/help/apps-and-integrations/build-greeter-app.mdx new file mode 100644 index 0000000000..d0ff68ebb7 --- /dev/null +++ b/help/apps-and-integrations/build-greeter-app.mdx @@ -0,0 +1,78 @@ +--- +title: "Build a greeter app" +--- + +## Building a **Greeter** app + +**Step 1:** Create an app with the title "**Greeter".** Run the following command and provide the information it is looking for. + +``` +yarn app-store create +``` + + + + + +**Step 2:** App is created now. Go and install it. + +**Step 3:** The app is installed but it doesn't do anything because we haven't written any code to make it do something. Let's add a button in the main navigation that greets the user + +1. Create a component `greeter/components/GreeterButton.tsx` - You can name it whatever you want. + +2. Import this component in `Shell.tsx` and add it wherever you want to so that the button is available on all pages. + +```js +/** + * GreeterButton.tsx + * It creates a button that can be added anywhere. The button is visible only if the app is installed. + */ +import useApp from "@calcom/lib/hooks/useApp"; +import showToast from "@calcom/lib/notification"; +import { Button } from "@calcom/ui"; + +import useMeQuery from "@lib/hooks/useMeQuery"; + +export default function GreeterButton() { + const { data: user } = useMeQuery(); + const { data: greeterApp } = useApp("greeter"); + // Make sure that greeterApp is installed. We shouldn't show the button when app is not installed + if (!user || !greeterApp) { + return null; + } + return ( + + ); +} +``` + +```; +/** + * Shell.tsx + */ +// ... +import GreeterButton from "@calcom/app-store/greeter/components/GreeterButton"; +// ... + +; +``` + + + + + +A sample line where I used the component in the demo + + + + + + + +That's it. You now have a fully functional Greeter app. This is the simplest possible demonstration of how you can build an app and what it can do. There are simply no restrictions on what an app can achieve. diff --git a/help/apps-and-integrations/how-to-build-an-app.mdx b/help/apps-and-integrations/how-to-build-an-app.mdx new file mode 100644 index 0000000000..531447abb2 --- /dev/null +++ b/help/apps-and-integrations/how-to-build-an-app.mdx @@ -0,0 +1,80 @@ +--- +title: "How to build an app" +--- + +Since Cal.com is open source we encourage developers to create new apps for others to use. This guide is to help you get started. + +You can create an app by simply running the following command. It creates a new directory under [`packages/app-store/`](https://github.com/calcom/cal.com/tree/main/packages/app-store)`` + +``` +yarn create-app +``` + +You just need to provide a few inputs and then you will have your app created within a few seconds. [See, how you can build a very simple app that greets your users.]() + +### Steps in creating an app + +* Create the app using the `create-app` command +* The app can be installed now. But at this moment it isn't doing anything. It is just installed and ready to do what you want it to do. +* There is pretty much no restriction on what an App can do. Some of the examples are: + * Hooking into existing functionalities to enhance them - _In all these cases you need to first check if the app is installed or not. There is_ `_useApp(appSlug)_` _react hook to do that. It gives you the app details if the app is installed._ +* Apps that need to connect with third parties like Google Calendar, Apple Calendar, Google Meet. +* A super powerful app that has its own data and pages - [Routing Forms App](https://github.com/calcom/cal.com/tree/main/packages/app-store/ee/routing_forms) is a great example of this. +* There are so many powerful apps already in the [App Store](https://app.cal.com/apps) for time. You can get an idea of what the apps can do from it. + +### Structure + +All apps can be found under [`packages/app-store`](https://github.com/calcom/cal.com/tree/main/packages/app-store). In this folder is `_baseApp` which shows the general structure of an app. + +``` +├──_example +| ├──config.json -> Autogenerated by cli. You are free to edit it. +| ├──api +| | ├──add.ts -> Autogenerated by cli. You would want to edit it if your app needs to connect with a third party +| +| ├──components +| +| ├──static -> Add all static assets here +| | ├──icon.svg -> This is used as the logo for your App. + +| ├──index.ts +| ├──package.json +| ├──.env.example -> Specify the environmental variables (ex. auth token, API secrets) that your app will need if it's applicable +| ├──README.mdx -> Customize your app description. You can add an image slider as well. +``` + +### Other Commands + +**Deleting an app:** + +``` +yarn app-store delete --slug APP_NAME +``` + +**Editing an app:** + +``` +yarn app-store edit --slug APP_NAME +``` + +### Important Points + +* Make sure to have `yarn app-store:watch` command running when developing an app so that autogenerated files are always up to date. + +* If app-store cli fails at this step, try to run this command manually first. Solve that problem and then re-run cli. The command can fail because there are Prisma migrations that can't be applied automatically. + + + + + +A sample failure in create command + +* When you edit an app following things aren't updated. + + * README.mdx - It would still have the old description. Feel free to edit it manually. + +### Publishing Your App to the Cal.com App Store + +Once your app is working in your environment, you can publish it to Cal.com App Store by opening a PR [here](https://github.com/calcom/cal.com). + +If you need any help feel free to join us on [Discord](https://go.cal.com/discord). \ No newline at end of file diff --git a/help/apps-and-integrations/oauth.mdx b/help/apps-and-integrations/oauth.mdx new file mode 100644 index 0000000000..c7ac5c461a --- /dev/null +++ b/help/apps-and-integrations/oauth.mdx @@ -0,0 +1,72 @@ +--- +title: "How to use OAuth to authorize apps with cal.com accounts" +--- + +As an example, you can view our OAuth flow in action on Zapier. Try to connect your cal.com account [here](https://zapier.com/apps/calcom/integrations). +To enable OAuth in one of your apps, you will need a Client ID, Client Secret, Authorization URL, Access Token Request URL, and Refresh Token Request URL. + + + + + +### OAuth Client Credentials +Only the cal.com team can create new OAuth clients. Please contact us at [support@cal.com](mailto:support@cal.com) with the following details: client name, redirect URI (provided by the app), app logo, and a link to the app. + +The Cal.com team will register the app and provide you with the Client ID and Client Secret. Keep these credentials confidential and secure. + +### Authorization URL +To initiate the OAuth flow, direct users to the following authorization URL: +- `https://app.cal.com/auth/oauth2/authorize` +- URL Parameters: + - *client_id* + - *state*: A securely generated random string to mitigate CSRF attacks + - *redirect_uri*: This is where users will be redirected after authorization + - *scope*: Specify the required scopes. Current scopes include READ_BOOKING and READ_PROFILE. Additional scopes can be added as needed. + +After users click *Allow*, they will be redirected to the redirect_uri with the code (authorization code) and state as URL parameters. + +### Access Token Request +Endpoint: `POST https://app.cal.com/api/auth/oauth/token` + +Request Body: +- *code*: The authorization code received in the redirect URI +- *client_id* +- *client_secret* +- *grant_type*: "authorization_code" +- *redirect_uri* + +Response: +``` +{ + access_token: “exampleAccessToken” + refresh_token: “exampleRefreshToken” +} +``` + +### Refresh Token Request +Endpoint: `POST https://app.cal.com/api/auth/oauth/refreshToken` + +Request Body: +- *grant_type*: "refresh_token" +- *client_id* +- *client_secret* + +Response: +``` +{ + access_token: “exampleAccessToken” +} +``` + +### Testing OAuth Credentials +To verify the correct setup and functionality of OAuth credentials you can use the following endpoint: +`GET https://app.cal.com/api/auth/oauth/me` + +Headers: +- Authorization: Bearer *exampleAccessToken* + + +### Authorize requests with Bearer token +Ensure that Cal.com endpoints accessed by the app support authentication via Bearer Token. +If this is not the case, it will be necessary to update the code accordingly. +Here is an example of an endpoint that supports both apiKey and Bearer token authentication: [/listBookings endpoint](https://github.com/calcom/cal.com/blob/main/packages/app-store/zapier/api/subscriptions/listBookings.ts) \ No newline at end of file diff --git a/help/apps-and-integrations/open-source.mdx b/help/apps-and-integrations/open-source.mdx new file mode 100644 index 0000000000..5cb6894e61 --- /dev/null +++ b/help/apps-and-integrations/open-source.mdx @@ -0,0 +1,35 @@ +--- +title: "How to use open-source scheduling infrastructure with HubSpot" +--- + +To use Cal.com with HubSpot, you only need two things: + +1. You need to have an account on both platforms + +2. You'll need to go to the [HubSpot app page](https://app.cal.com/apps/hubspot) and click the "Install" button ⬇ + + + + + + + +3. After clicking the "Install" button, you will need to select the HubSpot account you want to use Cal.com with⬇ + + + + + + +4. Then, you will need to give the listed permissions to Cal.com clicking the button "Connect app" in order to manage certain aspects of your account, in order to provide you with the functionality you are looking for. By the way, we are making our app official with HubSpot, so you will not be seeing the warning very soon ⬇ + + + + + + +5. Done! You will be redirected to Cal.com Installed Apps showing your newly installed app ready for you to take advantage of ⬇ + + + + diff --git a/help/apps-and-integrations/syncing-third-party.mdx b/help/apps-and-integrations/syncing-third-party.mdx new file mode 100644 index 0000000000..cd247247f3 --- /dev/null +++ b/help/apps-and-integrations/syncing-third-party.mdx @@ -0,0 +1,44 @@ +--- +title: "How to sync third party apps with a self-hosted Cal.com instance" +--- + +1. Add the required variables in your `.env` file + 1. `CALCOM_WEBHOOK_SECRET` + 1. You can generate this by running `openssl rand -base64 32`. This is required when sending 3rd party app credentials from your platform to your instance of Cal.com. + 2. On your self-hosted instance of Cal.com visit settings/admin/apps under an admin account. Here you can enable/disable apps on Cal.com and set the app keys (client id, client secret, etc.). These keys should match the ones on your platform. + 3. `CALCOM_WEBHOOK_HEADER_NAME` + 1. The header name is expected to contain the webhook secret. The default is `calcom-webhook-secret` + 5. `CALCOM_CREDENTIAL_SYNC_ENDPOINT` + 1. The endpoint on your platform that your instance of [Cal.com](http://Cal.com) will make a request to if the 3rd party app credentials are expired. + 5. `CALCOM_APP_CREDENTIAL_ENCRYPTION_KEY` + 1. When sending 3rd party app credentials between your platform and your instance Cal.com, we expect these to be encrypted using AES256. When you encrypt the 3rd party app credentials, ensure the same key is used. +2. When a user adds a 3rd party app on your platform, you should send the credentials that are created to your instance of [Cal.com](http://Cal.com) to `${CALCOM_WEBAPP_URL}/api/webhook/app-credential` . The payload should contain the following + + ```javascript + { + // UserId of the Cal.com user + userId: number; + + // The app slug that is on Cal.com. + // Can be found in the Cal.com database in the App table + appSlug: string; + + // The credentials from the 3rd party app. (ex. Access token, refresh token). + // Ideally it should contain the access token and expiry date + // AES256 encrypted with CALCOM_APP_CREDENTIAL_ENCRYPTION_KEY + keys: string; + } + ``` +3. When [Cal.com](http://Cal.com) needs to refresh the app credentials it will make a request to `CALCOM_CREDENTIAL_SYNC_ENDPOINT`. The request contains the following. + + ```javascript + { + calcomUserId: string; + // App slug on Cal.com + appSlug: string; + } + ``` + + +This only works if you have integrated [Cal.com](http://cal.com/) into your platform. Users **must** consent to give access to your platform, and you are simply using [Cal.com](http://cal.com/)'s code within your platform. + diff --git a/help/auth-and-provision/oidc-with-okta.mdx b/help/auth-and-provision/oidc-with-okta.mdx new file mode 100644 index 0000000000..5248ef9a57 --- /dev/null +++ b/help/auth-and-provision/oidc-with-okta.mdx @@ -0,0 +1,51 @@ +--- +title: "Setting up OIDC with okta" +--- + +1. 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`. If you are using a self-signed certificate for Postgres then use the `sslmode=no-verify` query param in the database URL. For example `postgresql://postgres:@localhost:5450/cal-saml?sslmode=no-verify`. +2. Set SAML_ADMINS to a comma separated list of admin emails who can configure the OIDC. +3. Create an application with your OIDC provider. For example, in Okta, once you create an account, you can click on Applications on the sidebar menu: + + + + +4. Click on `Create App Integration` + + + +5. Select OIDC in the modal form, along with Web App and click Next. + + + +6. Enter the Sign in redirect URL (or auth URL) as + ``` + {BASE_URL}/api/auth/oidc + ``` + And the sign out URL as + ``` + {BASE_URL}/auth/login + ``` + where {BASE_URL} is your app's base URL, and click save. + + + + + Please replace `{BASE_URL}` here with respective URL, such as `localhost:3000` for localhost testing, for example. + +7. Now you should have the Client Secret and Client ID with you. You would also need the Well Known URL which for Okta is generally of the type: + ``` + https://{yourOktaDomain}/.well-known/openid-configuration + ``` + So, if your okta domain is `dev-123456.okta.com`, your well known URL would be + ``` + https://dev-123456.okta.com/.well-known/openid-configuration + ``` +8. Now spin up cal.com on your server and login with the Admin user (the email ID of which was provided in step 2 for SAML_ADMINS environment variable). +9. Visit `{BASE_URL}/settings/security/sso` and you should see something like this: + + + +10. Click on Configure SSO with OIDC, and then enter the Client Secret, Client ID and Well known URL from the Step 7, and click save. + + + diff --git a/help/auth-and-provision/scim-okta.mdx b/help/auth-and-provision/scim-okta.mdx new file mode 100644 index 0000000000..934065e6ed --- /dev/null +++ b/help/auth-and-provision/scim-okta.mdx @@ -0,0 +1,77 @@ +--- +title: "Setting up SCIM with Okta" +--- +1. 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`. If you are using a self-signed certificate for Postgres then use the `sslmode=no-verify` query param in the database URL. For example `postgresql://postgres:@localhost:5450/cal-saml?sslmode=no-verify`. +2. Set SAML_ADMINS to a comma separated list of admin emails who can configure the OIDC. +3. Create an application with your OIDC provider. For example, in Okta, once you create an account, you can click on Applications on the sidebar menu: + + + +4. Click on `Create App Integration` + + + +5. Select SAML or OIDC in the modal form, along with Web App and click Next. + - Note you will have to fill in the appropriate fields for the SAML or OIDC setup to continue. + - [SAML Setup](/docs/introduction/quick-start/self-hosting/sso-setup#setting-up-saml-login) + - [OIDC Setup](/docs/how-to-guides/how-to-setup-oidc-with-okta) + + + +6. Once the application is created, under General -> App Settings, click "Edit" and click the checkbox "Enable SCIM provisioning +" + + + +7. Next go to your instance of Cal.com and navigate to `{BASE_URL}/settings/organization/dsync` and click configure. + + + +8. In the "Configure Directory Sync" from choose a directory sync name and choose "Okta SCIM v2.0" as the "Directory Provider" + + + +9. Take note of the "SCIM Base URL" and "SCIM Bearer Token" + + + +10. Okta go to your application. Navigate to the "Provisioning" tab and click "Integration" under "Settings". + + + + - Under "SCIM connector base URL" enter the "SCIM Base URL" from Cal.com + - Under "Unique identifier field for users" enter "email" + - Under "Supported provisioning actions" enable: + - "Import New Users and Profile Updates" + - "Push New Users" + - "Push Profile Updates" + - "Push Groups" + - Under "Authentication Mode" choose "HTTP Header" + - Under "Authentication" enter the "SCIM Bearer Token" from Cal.com + - When you hit save it will make a test call to the "SCIM Base URL" +11. When you hit save navigate to "To App" settings, still under the "Provisioning" tab +12. Under "Provisioning to App" click "Edit" and enable: + - "Create User" + - "Update User Attributes" + - "Deactivate User" +12. Under "`{Your application name}` Attribute Mapping", remove all fields except for: + - "username" + - "givenName" + - "familyName" + - "email" + - "displayName" +13. Set each of these of these properties to "Map from Okta Profile" and the related field. Under "Apply On" select "Create and Update" + + + +14. You can now assign users and groups to the app. + +## Mapping Okta Groups to Cal.com Teams +When provisioning groups to your organization, Okta groups can be mapped to teams within your organization and users will be auto assigned to these teams. + +On `{BASE_URL}/settings/organization/dsync` there is a table with the teams under your organization. Click on "Add group name" to map the Okta group to the team. **Note: +The group name must be spelt exactly as it is shown on Okta.**. When you push the group to your organization then those users will automatically be added to the team. + + + + diff --git a/help/availabilities/date-overrides.mdx b/help/availabilities/date-overrides.mdx new file mode 100644 index 0000000000..2eb35064ed --- /dev/null +++ b/help/availabilities/date-overrides.mdx @@ -0,0 +1,13 @@ +--- +title: "Date overrides" +--- + +Cal.com allows you to create date overrides so that you can dictate when you wish to be unavailable within your typical schedule. Often times, you become unavailable for various reasons within your regular schedule and you don't have an event created in either Cal.com or any connected calendar, but you are busy to take any meetings. In such cases, you can simply make use of the Date overrides and block your otherwise bookable calendar out as per your requirements, whether it is for a few hours on a particular day, or for entire days at a stretch. + +With availability date overrides, you can now pick any date that you're currently available and set specific hours for availability on that day or mark yourself entirely unavailable. Taking a half day next Thursday and Friday to do some last-minute shopping? Simply set an override on those specific days to block yourself off. + +You can learn more about [Adding date override](https://cal.com/docs/platform/atoms/availability-settings#availability-settings) by simply following the guide. + + +Date overrides interface + diff --git a/help/availabilities/multiple-schedules.mdx b/help/availabilities/multiple-schedules.mdx new file mode 100644 index 0000000000..1d8478d2e6 --- /dev/null +++ b/help/availabilities/multiple-schedules.mdx @@ -0,0 +1,11 @@ +--- +title: "Multiple schedules" +--- + +You can set multiple schedules in the availability section of the application and organize your event types better by customizing your availability, quite simply, by selecting respective schedule as the availability for an individual event type. You can check [Setting up your availability](https://cal.com/docs/platform/atoms/availability-settings#availability-settings) to link your created availability schedule with an event type. + + +Multiple schedules interface + + +This feature is particularly useful if you wish to dedicate different event types over different time-zones as you can set up an availability schedule for every time-zone you wish to schedule around. \ No newline at end of file diff --git a/help/availabilities/multiple-slots.mdx b/help/availabilities/multiple-slots.mdx new file mode 100644 index 0000000000..145cf44583 --- /dev/null +++ b/help/availabilities/multiple-slots.mdx @@ -0,0 +1,9 @@ +--- +title: "Multiple time slots per day" +--- + +Cal.com allows you to break your regular schedule day into multiple slots, allowing you to easily take time out of the calendar for consistent events such as lunch breaks, coffee breaks, or even recreational breaks. + + +Multiple time slots interface + diff --git a/help/bookings/no-show.mdx b/help/bookings/no-show.mdx new file mode 100644 index 0000000000..d14ac74798 --- /dev/null +++ b/help/bookings/no-show.mdx @@ -0,0 +1,32 @@ +--- +title: "Mark guests as no show" +--- + +You can now mark guests as "No Show" for past bookings where one or more attendees did not attend. + +### How to Mark Attendees as No-Show + +1. **Navigate to Past Bookings** + - Go to `bookings/past` + +2. **Select the Attendee** + - Click on the name or email of the attendee you wish to mark as "No-Show" + +3. **Mark as No-Show** + - From the dropdown menu, select "Mark as No Show" + +4. **Unmark if Necessary** + - If you marked an attendee as "No-Show" by mistake, you can easily undo it + - Click on the name or email of the attendee again and select "Unmark as No Show" + +### Handling Attendees grouped in 'n' more + +For meetings with more than two attendees: + +1. **Open the Checklist** + - Click on "& n more" attendees. This will open a checklist + +2. **Mark/Unmark Multiple Attendees** + - Use the checklist to mark or unmark multiple guests as "No Show" simultaneously + +This feature allows you to accurately record attendance and manage your bookings more effectively. \ No newline at end of file diff --git a/help/bookings/paid-bookings.mdx b/help/bookings/paid-bookings.mdx new file mode 100644 index 0000000000..85dafbeb60 --- /dev/null +++ b/help/bookings/paid-bookings.mdx @@ -0,0 +1,13 @@ +--- +title: Paid Bookings +--- + +With Cal.com you can monetize your bookings. We offer the best platform to ensure appointment scheduling and payment collection is an effortless process. + + + + + +From RSVPs to coaching and consultancy sessions, Cal.com makes it easy to get paid before your meeting even starts. Enable our stripe app, and decide which of your bookable events have charges and exactly how much those are. + +To learn more about the set up process of paid bookings, please take a look at **[How to set up an event type to receive payments](https://cal.com/docs/how-to-guides/how-to-set-up-an-event-type-to-receive-payments)** \ No newline at end of file diff --git a/help/bookings/prefill-fields.mdx b/help/bookings/prefill-fields.mdx new file mode 100644 index 0000000000..59017e5cc0 --- /dev/null +++ b/help/bookings/prefill-fields.mdx @@ -0,0 +1,101 @@ +--- +title: Pre-fill fields/questions +--- + +You can pre-fill all the fields/questions on the booking form by using their corresponding **identifiers** that you can see under Advanced -> Booking Questions. + +e.g. for the following field(shown in screenshot), the field would show up as *Agree with your rules* and its identifier is *agreed*. So, we would use + +[![](https://downloads.intercomcdn.com/i/o/1198198797/bfc5b45f2c0ac0a6704f1a40/i1600x899-lK5qA-PWor5w_nda2mw.png?expires=1736325000&signature=000158c0966e05bb5d50ed593b6a94d04c908568625cc3d18d9a68541f449da6&req=dSEuHsh3lYZWXvMW1HO4zR%2BTJg3Fl6l4ywMHZCHu9egE5fWqiRo4u%2BWPHXxD%0AfGr0JKz%2B%2BGcs7dmJJh4%3D%0A)](https://downloads.intercomcdn.com/i/o/1198198797/bfc5b45f2c0ac0a6704f1a40/i1600x899-lK5qA-PWor5w_nda2mw.png?expires=1736325000&signature=000158c0966e05bb5d50ed593b6a94d04c908568625cc3d18d9a68541f449da6&req=dSEuHsh3lYZWXvMW1HO4zR%2BTJg3Fl6l4ywMHZCHu9egE5fWqiRo4u%2BWPHXxD%0AfGr0JKz%2B%2BGcs7dmJJh4%3D%0A) + +*agreed* as query param name to prefill the field. + +This can include the user’s name and email, notes, guests, event location, Reason for reschedule. You can prefill any field added by you as well. + +You can add anywhere in the booking flow before the booking form page or in the booking form page itself. Simply add these in the URL and you're good to go! + +Pre-filling booking fields can save a lot of time and speed up processes with filling out these forms, and assist with a smooth integration with your existing website or app. + +An example URL with a few prefill fields is given below: +```https://cal.com/johndoe/book?type=12345&duration=30&email=johndoe%40example.com¬es=Test+Notes``` +You can integrate the prefill-fields with your booking page URL in a similar way. + +## Pre-filling all fields + +**A sample booking form with various fields prefilled.** + +[![](https://downloads.intercomcdn.com/i/o/1198198793/7bc4b1b4b584d4824880d5da/i1600x899--qO8QnRKDrjU_kyp2hw.png?expires=1736325000&signature=10a3362b2faab0ec78c8e2ffa1bbb1fc5f7b9dab0e15298152e335f3661ea6cd&req=dSEuHsh3lYZWWvMW1HO4za%2ByuRsspnytuNu0%2FFrf6odTakjQnLnHIsBeeJvQ%0ANsCB4u65V8zAB1DolSA%3D%0A)](https://downloads.intercomcdn.com/i/o/1198198793/7bc4b1b4b584d4824880d5da/i1600x899--qO8QnRKDrjU_kyp2hw.png?expires=1736325000&signature=10a3362b2faab0ec78c8e2ffa1bbb1fc5f7b9dab0e15298152e335f3661ea6cd&req=dSEuHsh3lYZWWvMW1HO4za%2ByuRsspnytuNu0%2FFrf6odTakjQnLnHIsBeeJvQ%0ANsCB4u65V8zAB1DolSA%3D%0A) + +**Here is how the fields are setup** + +[![](https://downloads.intercomcdn.com/i/o/1198198798/d0baeba0d2e0e4f3161075ec/i1600x899-0PXSUpvs2z-W_wox48k.png?expires=1736325000&signature=89f6fde016650f907ef3e033088a45ad16657821dd3941e78ed62ee264b9b714&req=dSEuHsh3lYZWUfMW1HO4zb4YAwmw7asrMlnecn80g7UbIo4WLX9UdTxHu0J3%0AQjwXhXtQ6eI%2BWusGR%2BY%3D%0A)](https://downloads.intercomcdn.com/i/o/1198198798/d0baeba0d2e0e4f3161075ec/i1600x899-0PXSUpvs2z-W_wox48k.png?expires=1736325000&signature=89f6fde016650f907ef3e033088a45ad16657821dd3941e78ed62ee264b9b714&req=dSEuHsh3lYZWUfMW1HO4zb4YAwmw7asrMlnecn80g7UbIo4WLX9UdTxHu0J3%0AQjwXhXtQ6eI%2BWusGR%2BY%3D%0A) + +Here is the query used to prefill that form above. + +``` +name=John Doe&email=johndoe@example.com¬es=Test Notes&Text=TEXT&number=123&select=Option 1&Multiselect=Option 1&Multiselect=Option 2&guests=b&phone=+91&agreed=true +``` +## Fields with multiple values + +For questions that accept multiple values, you can pass them multiple times using same identifier. So, e.g. Multiselect has been passed twice and thus it prefills both the values. + +Similarly, you can pass *guests* twice to add one more guest. + +## Prefilling location + +Different type of locations are selected using different values of location. location param value has to be a valid JSON. + +## Pre-filling Attendee Address + +``` +...other-params...&location={"value":"attendeeInPerson","optionValue":"Delhi"} +``` +[![](https://downloads.intercomcdn.com/i/o/1198198795/149eb8a19c7c9b87e9207cda/i1600x899-Ty_oorQmXnjJ_cm5ysq.png?expires=1736325000&signature=b5595771bfc49d36da0b4e67f8440a2c5c874c674c799c6d9023b1593c5fc465&req=dSEuHsh3lYZWXPMW1HO4zXIZpSF682jQ431%2F0%2B57t2z4o8aUSXcM9w0n8f8e%0Aa5feONJm%2FqwDk3Nxf5g%3D%0A)](https://downloads.intercomcdn.com/i/o/1198198795/149eb8a19c7c9b87e9207cda/i1600x899-Ty_oorQmXnjJ_cm5ysq.png?expires=1736325000&signature=b5595771bfc49d36da0b4e67f8440a2c5c874c674c799c6d9023b1593c5fc465&req=dSEuHsh3lYZWXPMW1HO4zXIZpSF682jQ431%2F0%2B57t2z4o8aUSXcM9w0n8f8e%0Aa5feONJm%2FqwDk3Nxf5g%3D%0A) + +## Pre-selecting Organizer Address in Location + +``` +...other-params...&location={"value":"inPerson","optionValue":""} +``` + +[![](https://downloads.intercomcdn.com/i/o/1198198794/4983c503a9ce5201e0c1bba8/i1600x899-AlmOt5E4diMC_nkjeb4.png?expires=1736325000&signature=4d46fb2749e119580fab04853978f7338ae1b49f7b47c27bcc0e1496745ad183&req=dSEuHsh3lYZWXfMW1HO4zfhh%2BpZqpU47epa9VDhCuWvhAe0fXXhWclcsJTld%0AHrJR7dP6os%2FtnThVdsI%3D%0A)](https://downloads.intercomcdn.com/i/o/1198198794/4983c503a9ce5201e0c1bba8/i1600x899-AlmOt5E4diMC_nkjeb4.png?expires=1736325000&signature=4d46fb2749e119580fab04853978f7338ae1b49f7b47c27bcc0e1496745ad183&req=dSEuHsh3lYZWXfMW1HO4zfhh%2BpZqpU47epa9VDhCuWvhAe0fXXhWclcsJTld%0AHrJR7dP6os%2FtnThVdsI%3D%0A) +## Pre-filling Attendee Phone + +``` +...other-params...&location={"value":"phone","optionValue":"%2B919999999999"} +``` + +*Note: %2B is encoded form of +* + +[![](https://downloads.intercomcdn.com/i/o/1198198790/02943b0276723d5effc1ed0b/i1600x899-wVkiblWj8CDH_iwhwrd.png?expires=1736325000&signature=1244214d7c9fcfd16b6edc4b71a4267c3a0bf9c4ad5c91a93ee447cd65c1b3f9&req=dSEuHsh3lYZWWfMW1HO4zQf94cG%2FKVtkygk%2BlF1g7HiXVwSfutAPEbSq%2B3Jv%0A3p3Pf5Mj3PVQ%2F3avvp8%3D%0A)](https://downloads.intercomcdn.com/i/o/1198198790/02943b0276723d5effc1ed0b/i1600x899-wVkiblWj8CDH_iwhwrd.png?expires=1736325000&signature=1244214d7c9fcfd16b6edc4b71a4267c3a0bf9c4ad5c91a93ee447cd65c1b3f9&req=dSEuHsh3lYZWWfMW1HO4zQf94cG%2FKVtkygk%2BlF1g7HiXVwSfutAPEbSq%2B3Jv%0A3p3Pf5Mj3PVQ%2F3avvp8%3D%0A) + +## Pre-selecting Link Meeting + +``` +...other-params...&location={"value":"link","optionValue":""} +``` + +[![](https://downloads.intercomcdn.com/i/o/1198198791/0db8619aabbf65a0fa3709fd/i1600x899-sGCDXGlvVYT4_uwhpa8.png?expires=1736325000&signature=c48817776ddbbe02a9df71b8a9e3f44fcd90c48584ead67834eb2e820f3a1bdc&req=dSEuHsh3lYZWWPMW1HO4zZBGiRHaqpAigQ%2BNxkzSzI7cRhRRKup7Hujf8NW7%0ATAW65srvCSLYe46eo%2BU%3D%0A)](https://downloads.intercomcdn.com/i/o/1198198791/0db8619aabbf65a0fa3709fd/i1600x899-sGCDXGlvVYT4_uwhpa8.png?expires=1736325000&signature=c48817776ddbbe02a9df71b8a9e3f44fcd90c48584ead67834eb2e820f3a1bdc&req=dSEuHsh3lYZWWPMW1HO4zZBGiRHaqpAigQ%2BNxkzSzI7cRhRRKup7Hujf8NW7%0ATAW65srvCSLYe46eo%2BU%3D%0A) +## Pre-selecting a video meeting + +Specify location param like this + +``` +...other-params...&location={"value":"integrations:{VIDEO_APP_IDENTIFIER}","optionValue":""} +``` + +| **App Name** | **`{VIDEO\_APP\_IDENTIFIER}`** | +| --- | --- | +| Zoom | zoom | +| Cal Video | daily | +| Office365 | office365\_video | +| Facetime | facetime\_video | +| Campfire | campfire\_video | +| Around Video | around\_video | +| Ping | ping\_video | +| Riverside | riverside\_video | +| Signal | signal\_video | +| Sirius | sirius\_video | +| Telegram | telegram\_video | +| Whatsapp | whatsapp\_video | +| Whereby | whereby\_video | diff --git a/help/embedding/adding-embed.mdx b/help/embedding/adding-embed.mdx new file mode 100644 index 0000000000..e5d2c9aa7e --- /dev/null +++ b/help/embedding/adding-embed.mdx @@ -0,0 +1,53 @@ +--- +title: Adding embed to your webpage +--- + +You can get the embed snippet, to install on your webpage, from the Embed Snippet Generator, within the app. + + The snippets provided are automatically updated as per the cal.com instance. **So, even when self hosting, you can simply copy and paste the snippets from there . + +There are three ways in which you can embed your cal.com link to your webpage. + +Embed options overview + +## Inline + +Show the embed inline anywhere on the webpage. It let's you show the embed at a particular place in your webpage. + +[CodeSandbox link[React]](https://codesandbox.io/s/inline-demo-react-for-docs-xps99g?file=/src/App.js) +[CodeSandbox link[HTML]](https://codesandbox.io/s/vanillajs-week-view-inline-y9wgxc?file=/index.html) + +Inline embed example + + +## Pop-up via element click + +Show the embed, on click of any element on your webpage, in a popup + +[CodeSandbox link[React]](https://codesandbox.io/s/element-click-popup-h5c5v2?file=/public/index.html) +[CodeSandbox link[HTML]](https://codesandbox.io/s/popup-on-click-of-an-existing-element-framework-agnostic-forked-7pl95c?file=/index.html) + + +Pop-up embed example + + +## Floating button pop-up + +Adds a floating button that can be customized and on clicking that the embed shows up in a popup. + +[CodeSandbox link[React]](https://codesandbox.io/s/floating-button-popup-react-forked-9y5g95?file=/public/index.html) +[CodeSandbox link[HTML]](https://codesandbox.io/s/embed-floating-button-popup-framework-agnostic-mg7339?file=/src/index.js) + + +Floating button embed example + + +## What can you embed? + +- You can embed your cal.com link for an event type e.g. `rick/get-rick-rolled`. You can get the snippet from the event-type page. +- You can embed your profile page e.g. rick. For this, you can just update the snippet to replace your cal.com event type link with your username. e.g. `rick/get-rick-rolled => rick` +- You can embed your Routing Form e.g. `forms/YOUR_FORM_ID`. You can get the snippet for that from the Routing Form page. + + +Routing form embed example + diff --git a/help/embedding/adding-slots.mdx b/help/embedding/adding-slots.mdx new file mode 100644 index 0000000000..ccf639318c --- /dev/null +++ b/help/embedding/adding-slots.mdx @@ -0,0 +1,11 @@ +--- +title: Adding slots to your email +--- + +You can add the slots to your email as well using `Email Embed`. When composing an email, this method of embedding streamlines the process, allowing you to effortlessly share available time slots with recipients. + +This ensures seamless scheduling and improved communication efficiency. + +Email embed interface + +Email embed example diff --git a/help/embedding/embed-events.mdx b/help/embedding/embed-events.mdx new file mode 100644 index 0000000000..ffd5dd514c --- /dev/null +++ b/help/embedding/embed-events.mdx @@ -0,0 +1,38 @@ +--- +title: Embed Events +--- + +## Actions + +You can listen to an action that occurs in embedded cal link as follows. You can think of them as DOM events. We are avoiding the term "events" to not confuse it with Cal Events. + +```js + +``` + +## Following are the list of supported actions. +| Action | Description | Properties | +|--------|-------------|------------| +| eventTypeSelected | When user chooses an event-type from the listing. | eventType:object // Event Type that has been selected | +| bookingSuccessful | When the booking is successfully done. It might not be confirmed. | confirmed: boolean; //Whether confirmation from organizer is pending or not
eventType: "Object for Event Type that has been booked"
date: string; // Date of Event
duration: number; //Duration of booked Event
organizer: object //Organizer details like name, timezone, email | +| linkReady | Tells that the link is ready to be shown now. | None | +| linkFailed | Fired if link fails to load | code: number; // Error Code
msg: string; //Human Readable msg
data: object // More details to debug the error | +| __iframeReady | It is fired when the embedded iframe is ready to communicate with parent snippet. This is mostly for internal use by Embed Snippet | None | +| __windowLoadComplete | Tells that window load for iframe is complete | None | +| __dimensionChanged | Tells that dimensions of the content inside the iframe changed. | iframeWidth:number, iframeHeight:number | + + + Actions that start with `__` are internal. + + +To get more details on how Embed actually works, you can refer to this [Embed Flowchart](https://www.figma.com/file/zZ5oaUpg12Fuu5mGZrPlP5/Embed-Flowchart). \ No newline at end of file diff --git a/help/embedding/embed-instructions.mdx b/help/embedding/embed-instructions.mdx new file mode 100644 index 0000000000..13ee48e471 --- /dev/null +++ b/help/embedding/embed-instructions.mdx @@ -0,0 +1,42 @@ +--- +title: Embed instructions +--- +An instruction is how you configure the embed. These instructions can be added immediately after the embed snippet. +An instruction is technically a function with the same name, that would be called with the given arguments. + +You would not normally need to learn about these instructions in detail, as the **Embed Snippet Generator** automatically updates the snippet with these instructions in the way you configure it but still they could be useful. + +#### Inline + +Appends embed `inline` as the child of the element. + +```js + +``` +- `elementOrSelector` - Give it either a valid CSS selector or an HTMLElement instance directly +- `calLink` - Cal Link that you want to embed e.g. john. Just give the username. No need to give the full URL https://cal.com/john. It makes it easy to configure the calendar host once and use as many links you want with just usernames + +#### UI + +Configure `ui` for embed. Make it look part of your webpage. + +```js + +``` +- `styles` - It supports styling for body and eventTypeListItem. Right now we support just background on these two. + +#### Preload + +To open cal link on some action, make it pop open instantly by using `preload`. + +```js + +``` + +- `calLink` - Cal Link that you want to embed e.g. john. Just give the username. No need to give the full URL https://cal.com/john \ No newline at end of file diff --git a/help/embedding/embed-snippet-generator.mdx b/help/embedding/embed-snippet-generator.mdx new file mode 100644 index 0000000000..2cce6cdf39 --- /dev/null +++ b/help/embedding/embed-snippet-generator.mdx @@ -0,0 +1,37 @@ +--- +title: Getting Embed Code Snippets +--- + +You can get code snippets for **React** or **HTML** and also configure many different aspects of embeds using the **Embed Snippet Generator**. The code snippet is automatically updated with the changes you make in it. + +Here is how you can access it. + +1. Click on three dots of the event type and click on the option `Embed` + Accessing embed option + +2. Configure as you require and then + a. Copy the HTML code snippet + Copy HTML code snippet + + or, + + b. Copy the React code snippet + Copy React code snippet + +### What can you configure + +- Size of embed +- Theme +- Toggle event type details +- Brand color +- Layout +- Floating button text +- Floating button position at the bottom + +Configuration options + +You can also configure all the custom CSS variables supported by cal.com app. [Here is a list of all the supported CSS variables](https://github.com/calcom/cal.com/blob/main/packages/config/tailwind-preset.js#L18). + +Also, [here is the codeSandbox demo](https://codesandbox.io/s/embed-advanced-css-vars-x2sdgy?file=/src/App.tsx) for a configuration where the look and feel of the embed is changed. + +Advanced CSS configuration example \ No newline at end of file diff --git a/help/embedding/prefill-booking-form-embed.mdx b/help/embedding/prefill-booking-form-embed.mdx new file mode 100644 index 0000000000..6c7b9b43ec --- /dev/null +++ b/help/embedding/prefill-booking-form-embed.mdx @@ -0,0 +1,96 @@ +--- +title: Prefill booking form in Embed +--- + +Booking form inside an embed can be prefilled as well. + +## Inline Embed + +```js +// Prefill Name, Email and Attendee Address - React. +// You can specify config property to do prefilling +// React Demo Link - https://codesandbox.io/s/react-prefill-attendee-address-email-sqhf7r + +``` + +```js +// Prefill Name, Email and Attendee Address - Vanilla JS +// You can use 'inline' instruction to do the prefill +// VanillaJS Demo link - https://codesandbox.io/s/prefill-embed-fields-vanilla-js-zft44w?file=/index.html +Cal("inline", { + config: { + name: "Name", + email: "booker@example.org", + location: JSON.stringify({ + value: "attendeeInPerson", + // It can be any string that defines an address where the meeting would occur + optionValue: "New York" + }) + } +}); +``` + +```js +// Prefill Name, Email and Attendee Phonenumber - React + +``` + +```js +// Prefill Name, Email and Attendee Phone - Vanilla JS +// You can use 'inline' instruction to do the prefill +Cal("inline", { + config: { + name: "Name", + email: "booker@example.org", + location: JSON.stringify({ + value: "phone", + // Any valid phonenumber in here + optionValue: "+919999999999" + }) + } +}); +``` + + +## Floating button popup +```js +// Prefill Name, Email and Attendee Phone - Vanilla JS +// You can use 'floatingButton' instruction to do the prefill +// This is common for React and VanillaJS embeds. +// Note that for React, Cal is not Cal component here it is Cal API. +Cal("floatingButton", { + config: { + name: "Name", + email: "booker@example.org", + location: JSON.stringify({ + value: "phone", + // Any valid phonenumber in here + optionValue: "+919999999999" + }) + } +}); +``` + +Other location types and other fields can be prefilled in the similar way. You can find the correct value to give from [here](https://cal.com/docs/core-features/bookings/prefill-fields#fields-with-multiple-values) \ No newline at end of file diff --git a/help/event-types/add-events.mdx b/help/event-types/add-events.mdx new file mode 100644 index 0000000000..d9cf5ce8a6 --- /dev/null +++ b/help/event-types/add-events.mdx @@ -0,0 +1,18 @@ +--- +title: Adding events to your calendar +--- + +Cal.com offers the possibility of automatically adding events to the calendars connected to your account. You can follow the video in case you don't have a calendar connected to your cal.com account yet. + + + + +If you have connected a calendar with your Cal account, you can easily select where the events should be created, in case anyone books you through Cal. + +You can select default calendar to add the booked events to by going to **`/settings/my-account/calendars`** + +[![](https://downloads.intercomcdn.com/i/o/1195325982/a676e2389294a6d23331a50f/i1600x900-c6HXJn-S_2Gc_oqfadd.png?expires=1736325900&signature=e88d558f2c4a3cd6d8d502e71fcbf36724505fb08739be4b09406e67d22d5eff&req=dSEuE8p8mIhXW%2FMW1HO4zTNuus9eBSV1uCoAh4BY%2BosKu2LJGgkb7DA9ZN0P%0AHd27AWIbsfjlNobwZxI%3D%0A)](https://downloads.intercomcdn.com/i/o/1195325982/a676e2389294a6d23331a50f/i1600x900-c6HXJn-S_2Gc_oqfadd.png?expires=1736325900&signature=e88d558f2c4a3cd6d8d502e71fcbf36724505fb08739be4b09406e67d22d5eff&req=dSEuE8p8mIhXW%2FMW1HO4zTNuus9eBSV1uCoAh4BY%2BosKu2LJGgkb7DA9ZN0P%0AHd27AWIbsfjlNobwZxI%3D%0A) + +You can even select different connected calendars for different event types to create events on, in case that's preferable. Thus, offering you complete control of where your booked events are created, helping you organize your events as you please. + +[![](https://downloads.intercomcdn.com/i/o/1195325984/7b534952abfd2d83836b660b/i1600x900-sw0cvLcwYOXe_uwukmo.png?expires=1736325900&signature=ff2234be31d54a0c903ca6a1ff16cf9965453147a27d7c6c6ba771cc2c9ac8fd&req=dSEuE8p8mIhXXfMW1HO4ze%2BzIrRSrlcf5oQTNzvbQ2%2FbwkUGwTqfpSrXs3Zn%0AkOPaTrTOSubGOV9CqvU%3D%0A)](https://downloads.intercomcdn.com/i/o/1195325984/7b534952abfd2d83836b660b/i1600x900-sw0cvLcwYOXe_uwukmo.png?expires=1736325900&signature=ff2234be31d54a0c903ca6a1ff16cf9965453147a27d7c6c6ba771cc2c9ac8fd&req=dSEuE8p8mIhXXfMW1HO4ze%2BzIrRSrlcf5oQTNzvbQ2%2FbwkUGwTqfpSrXs3Zn%0AkOPaTrTOSubGOV9CqvU%3D%0A) \ No newline at end of file diff --git a/help/event-types/adding-first-app.mdx b/help/event-types/adding-first-app.mdx new file mode 100644 index 0000000000..eef717a006 --- /dev/null +++ b/help/event-types/adding-first-app.mdx @@ -0,0 +1,17 @@ +--- +title: Adding your first app +--- + +Head over to the **apps** page, where you'll find our app store. We suggest firstly adding a calendar integration, then optionally a video conferencing platform, and then try out the other apps. + + + +Find the app you'd like to install, and either click **Install** in the top right of that app's card to add it right away, or click on the app's card to view more details. + +In the details page you can read more about each app, then click **Install** in the top right of the page to add it to your account. + +[![](https://downloads.intercomcdn.com/i/o/1198457500/67d59b2f585662232ecb9234/i1599x929-tUttNKwBum0Z_p1vwkt.png?expires=1736325900&signature=4be1dab66e95c9805ce6c52175c068e56e3a788e71972767c6678ac536987ea6&req=dSEuHs17moRfWfMW1HO4zelr4Ap6IxDuOfHKMIiIDJIrnbu7OMKkYODsafGE%0AbYmJUmUo8uV%2Fv6q%2BrLA%3D%0A)](https://downloads.intercomcdn.com/i/o/1198457500/67d59b2f585662232ecb9234/i1599x929-tUttNKwBum0Z_p1vwkt.png?expires=1736325900&signature=4be1dab66e95c9805ce6c52175c068e56e3a788e71972767c6678ac536987ea6&req=dSEuHs17moRfWfMW1HO4zelr4Ap6IxDuOfHKMIiIDJIrnbu7OMKkYODsafGE%0AbYmJUmUo8uV%2Fv6q%2BrLA%3D%0A) + +The app details page for Google calendar + +If the app requires authentication, for instance to connect your Google Account, a dialog will be opened prompting you to authenticate. Once complete, the app will be successfully installed. \ No newline at end of file diff --git a/help/event-types/adding-zoom.mdx b/help/event-types/adding-zoom.mdx new file mode 100644 index 0000000000..407d052bc6 --- /dev/null +++ b/help/event-types/adding-zoom.mdx @@ -0,0 +1,31 @@ +--- +title: Adding Zoom as the Meeting Location for Your Event Type +--- +To add zoom as the meeting location for your event type, you need to follow these steps: + + + + +[![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436790/81ca1d9e2b973fc254f65261/i1600x900-BEH3mBiQAI9x_uh9ogi.png?expires=1736301600&signature=99a661652ee3f121cebc9a8506229e9e5d827d799b7c142a4e7d59f6dc7d08fa&req=dSEuE819m4ZWWfMW1HO4zbzDS5K6BwZYXADO%2Bxr93a89AdJlrw3a2D3z9L9x%0Axeu5%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436790/81ca1d9e2b973fc254f65261/i1600x900-BEH3mBiQAI9x_uh9ogi.png?expires=1736301600&signature=99a661652ee3f121cebc9a8506229e9e5d827d799b7c142a4e7d59f6dc7d08fa&req=dSEuE819m4ZWWfMW1HO4zbzDS5K6BwZYXADO%2Bxr93a89AdJlrw3a2D3z9L9x%0Axeu5%0A) + + +[![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436817/cb69b60ff68a2c632b3f6774/i1600x900-BLQh5zDyQGTt_uebqir.png?expires=1736301600&signature=fcae398d07ffbe99f4363ada7dcc6e8bf5d358d289a9a64a9f83cf5f48234224&req=dSEuE819m4leXvMW1HO4zeDT6ICBbebrplt0n4o4xbKXOBP7SNiFbvM12my6%0AMlRn%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436817/cb69b60ff68a2c632b3f6774/i1600x900-BLQh5zDyQGTt_uebqir.png?expires=1736301600&signature=fcae398d07ffbe99f4363ada7dcc6e8bf5d358d289a9a64a9f83cf5f48234224&req=dSEuE819m4leXvMW1HO4zeDT6ICBbebrplt0n4o4xbKXOBP7SNiFbvM12my6%0AMlRn%0A) + + +[![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436842/9e2b5d04426ca8dbe75e00d0/i1600x900-jVFhWIwoSrqR_pcsvgw.png?expires=1736301600&signature=a486b9345c969f734558ba129dd4b49da113fc3cdba8bde97114dc69622b76c9&req=dSEuE819m4lbW%2FMW1HO4zf0nzqrYbRnYCedeQDUXOIepWjoGZuFAaE0O8MDY%0AHRYf%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436842/9e2b5d04426ca8dbe75e00d0/i1600x900-jVFhWIwoSrqR_pcsvgw.png?expires=1736301600&signature=a486b9345c969f734558ba129dd4b49da113fc3cdba8bde97114dc69622b76c9&req=dSEuE819m4lbW%2FMW1HO4zf0nzqrYbRnYCedeQDUXOIepWjoGZuFAaE0O8MDY%0AHRYf%0A) + + +[![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436865/47f7c4ebb6d72a20dc6d9f0e/i1600x900-0xbwqaAe_V2R_pumupp.png?expires=1736301600&signature=385a59e697d73dc1942f1bde27d602db6c3c31aefda4c8923cfb86e262c1b85c&req=dSEuE819m4lZXPMW1HO4zWq02GAhsUGVoY%2FR3MM3wNXKhoZoUaSoAgZg%2F0Ox%0ABVMQ%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436865/47f7c4ebb6d72a20dc6d9f0e/i1600x900-0xbwqaAe_V2R_pumupp.png?expires=1736301600&signature=385a59e697d73dc1942f1bde27d602db6c3c31aefda4c8923cfb86e262c1b85c&req=dSEuE819m4lZXPMW1HO4zWq02GAhsUGVoY%2FR3MM3wNXKhoZoUaSoAgZg%2F0Ox%0ABVMQ%0A) + + +[![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436885/cbadd504ee38a38d04a4e3b0/i1600x900-4xL_INEpD40Q_vfxmvv.png?expires=1736301600&signature=898b4bcd310930e58ac0194f2e1792ebd11bdfe7f6e191eb0c4a0657fbeb2e55&req=dSEuE819m4lXXPMW1HO4zXXH0lIAkcVHfWyR%2B8JqPmCMSSevEFrU5r4WwyWm%0A9Z1w%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436885/cbadd504ee38a38d04a4e3b0/i1600x900-4xL_INEpD40Q_vfxmvv.png?expires=1736301600&signature=898b4bcd310930e58ac0194f2e1792ebd11bdfe7f6e191eb0c4a0657fbeb2e55&req=dSEuE819m4lXXPMW1HO4zXXH0lIAkcVHfWyR%2B8JqPmCMSSevEFrU5r4WwyWm%0A9Z1w%0A) + + +[![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436885/cbadd504ee38a38d04a4e3b0/i1600x900-4xL_INEpD40Q_vfxmvv.png?expires=1736301600&signature=898b4bcd310930e58ac0194f2e1792ebd11bdfe7f6e191eb0c4a0657fbeb2e55&req=dSEuE819m4lXXPMW1HO4zXXH0lIAkcVHfWyR%2B8JqPmCMSSevEFrU5r4WwyWm%0A9Z1w%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436885/cbadd504ee38a38d04a4e3b0/i1600x900-4xL_INEpD40Q_vfxmvv.png?expires=1736301600&signature=898b4bcd310930e58ac0194f2e1792ebd11bdfe7f6e191eb0c4a0657fbeb2e55&req=dSEuE819m4lXXPMW1HO4zXXH0lIAkcVHfWyR%2B8JqPmCMSSevEFrU5r4WwyWm%0A9Z1w%0A) + + +[![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436924/7a88ec7a77429a24a9a75471/i1600x900-vYzr65Ib7Uv9_jjyzah.png?expires=1736301600&signature=21a18b9ff1b375ca6ec4792d3727b3c2e16e8db18ec29760491692200d6870da&req=dSEuE819m4hdXfMW1HO4zanktiNfj1eIe0J%2Fp9MMDKIRdtA6YQ1HRSUX1hIW%0AkiHT%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195436924/7a88ec7a77429a24a9a75471/i1600x900-vYzr65Ib7Uv9_jjyzah.png?expires=1736301600&signature=21a18b9ff1b375ca6ec4792d3727b3c2e16e8db18ec29760491692200d6870da&req=dSEuE819m4hdXfMW1HO4zanktiNfj1eIe0J%2Fp9MMDKIRdtA6YQ1HRSUX1hIW%0AkiHT%0A) + + +That's it! + diff --git a/help/event-types/booking-frequency.mdx b/help/event-types/booking-frequency.mdx new file mode 100644 index 0000000000..75569f997e --- /dev/null +++ b/help/event-types/booking-frequency.mdx @@ -0,0 +1,8 @@ +--- +title: Booking frequency +--- +We feel that our users must have a feature that will help them limit their booked events on a daily basis and deal better with the stresses of modern life. Every event carries different weight of stress and burnout, and so the events that lead to higher burnout should ideally be controllable in the frequency per day. + +[![](https://downloads.intercomcdn.com/i/o/1195332624/43843b20afd9f1de0e63b10c/i1600x900-18YHphbgt72V_sgiczh.png?expires=1736299800&signature=2f7b71afb859388017f4f6a920810e265ca37eddc7e70d53b5af2ee08ec3097e&req=dSEuE8p9n4ddXfMW1HO4zVf2vWFUOliCIN1RHjbTm4seHq%2Bxvf9sIlyG5cpo%0A0nABO7KL%2BW2tU%2FcYQdo%3D%0A)](https://downloads.intercomcdn.com/i/o/1195332624/43843b20afd9f1de0e63b10c/i1600x900-18YHphbgt72V_sgiczh.png?expires=1736299800&signature=2f7b71afb859388017f4f6a920810e265ca37eddc7e70d53b5af2ee08ec3097e&req=dSEuE8p9n4ddXfMW1HO4zVf2vWFUOliCIN1RHjbTm4seHq%2Bxvf9sIlyG5cpo%0A0nABO7KL%2BW2tU%2FcYQdo%3D%0A) + +If you don't want more than five bookings of any specific event per day so you can focus on other things or control stress and burnout through certain events, you can do just that with this feature. \ No newline at end of file diff --git a/help/event-types/booking-questions.mdx b/help/event-types/booking-questions.mdx new file mode 100644 index 0000000000..0d0b2b8e71 --- /dev/null +++ b/help/event-types/booking-questions.mdx @@ -0,0 +1,28 @@ +--- +title: Booking Questions +--- + +When you create a new event type, a few basic booking questions are already created for your new event type. + +[![](https://downloads.intercomcdn.com/i/o/1195328674/5cf0671a1754c2bcc14d0b0f/i1600x900--EhZhhVDENeT_d5hqpa.png?expires=1736299800&signature=25673b792b5aead285d43bf05aa9ce6b6279635144f252f04069d69f83560df0&req=dSEuE8p8lYdYXfMW1HO4zS7cwFu2lo5k0J6%2B3ZaX8mGAis1BLuI1sEfhFDSZ%0AL5j6u6B7boAdZhNhQBo%3D%0A)](https://downloads.intercomcdn.com/i/o/1195328674/5cf0671a1754c2bcc14d0b0f/i1600x900--EhZhhVDENeT_d5hqpa.png?expires=1736299800&signature=25673b792b5aead285d43bf05aa9ce6b6279635144f252f04069d69f83560df0&req=dSEuE8p8lYdYXfMW1HO4zS7cwFu2lo5k0J6%2B3ZaX8mGAis1BLuI1sEfhFDSZ%0AL5j6u6B7boAdZhNhQBo%3D%0A) + +If you'd like to collect more information about your attendees, you can use our booking questions feature and get the necessary information filled out by your attendees when booking. The booking questions can be either required or optional, depending on your needs. + +Let's say that you require the phone number of each attendee. You must select the correct input type, write up your placeholder and label, and tick the requirement. + +[![](https://downloads.intercomcdn.com/i/o/1195328673/189deb6c226b121876c46d36/i1600x899-jFm4d0m-YSZS_gxjbj9.png?expires=1736299800&signature=a442bc45f8b35fe17b675408dac269849f288c39bda1a166e1ada14607832c45&req=dSEuE8p8lYdYWvMW1HO4zRWpinJEZZIX4EiI22oOYTl%2FHb8z4XcsP9o%2BLxet%0AU07q271Ul8%2F0pwom%2BwI%3D%0A)](https://downloads.intercomcdn.com/i/o/1195328673/189deb6c226b121876c46d36/i1600x899-jFm4d0m-YSZS_gxjbj9.png?expires=1736299800&signature=a442bc45f8b35fe17b675408dac269849f288c39bda1a166e1ada14607832c45&req=dSEuE8p8lYdYWvMW1HO4zRWpinJEZZIX4EiI22oOYTl%2FHb8z4XcsP9o%2BLxet%0AU07q271Ul8%2F0pwom%2BwI%3D%0A) + +A new field will appear on the booking page where attendees enter the booking details. + +[![](https://downloads.intercomcdn.com/i/o/1195328672/a1e140f558e697a4e9c7e5c3/i1600x899-tqxx1R_u8ZX8_pmcadu.png?expires=1736299800&signature=4ba4ce84326b48fe642414cfb2841883d2eadc6f342dca40fdabea047ce5f0d3&req=dSEuE8p8lYdYW%2FMW1HO4zaD8%2FCEXyPDUc9WC%2FX6ewRZlNJ1h%2F0w0ckZONRrc%0AupyqbQfJY3to2UPRmAs%3D%0A)](https://downloads.intercomcdn.com/i/o/1195328672/a1e140f558e697a4e9c7e5c3/i1600x899-tqxx1R_u8ZX8_pmcadu.png?expires=1736299800&signature=4ba4ce84326b48fe642414cfb2841883d2eadc6f342dca40fdabea047ce5f0d3&req=dSEuE8p8lYdYW%2FMW1HO4zaD8%2FCEXyPDUc9WC%2FX6ewRZlNJ1h%2F0w0ckZONRrc%0AupyqbQfJY3to2UPRmAs%3D%0A) + +You can also make use of the booking questions feature to allow prefilling the **[booking fields](https://cal.com/docs/core-features/bookings/prefill-fields)** + +## Booking field identifier + +The **`identifier`** for booking questions is a unique text input that users provide when creating a booking question. This identifier serves as a distinctive key for each specific booking question, establishing a clear and unique reference that can be used throughout the platform wherever that question is addressed or its answers are processed. + +The primary utility of the identifier emerges when individuals schedule meetings. As they fill out booking forms, the responses they provide are tied back to the specific booking questions via these identifiers. This system ensures precision and clarity, as each answer is unmistakably linked to its corresponding question, eliminating any potential confusion especially when similar or related questions are present. + +By utilizing the **`identifier`** for booking questions, users benefit from a more organized, efficient, and error-resistant way of handling booking data, both within the platform and in conjunction with external systems. This streamlined approach not only enhances data management and integrity but also contributes significantly to the overall user experience. + diff --git a/help/event-types/booking-success.mdx b/help/event-types/booking-success.mdx new file mode 100644 index 0000000000..3de028cc15 --- /dev/null +++ b/help/event-types/booking-success.mdx @@ -0,0 +1,9 @@ +--- +title: Booking success URL +--- + +If you want to redirect attendees to a custom URL after each completed booking, this feature will allow you to do just that. + +[![](https://downloads.intercomcdn.com/i/o/1195338040/668e8ccbc180bb13ccd454d3/i1600x900-k5I7jhKC_ej8_pmjpxc.png?expires=1736299800&signature=c822a91e8d9e8017a7a5f468a6bc177ebbd2e3e922ba5ec35d81777c42c49a9b&req=dSEuE8p9lYFbWfMW1HO4zbcHsYmzdsM4EJxOsiY5MAXdC2RQSzt6srJQCupm%0A%2FUQS8oHY6mp9yOPCsF0%3D%0A)](https://downloads.intercomcdn.com/i/o/1195338040/668e8ccbc180bb13ccd454d3/i1600x900-k5I7jhKC_ej8_pmjpxc.png?expires=1736299800&signature=c822a91e8d9e8017a7a5f468a6bc177ebbd2e3e922ba5ec35d81777c42c49a9b&req=dSEuE8p9lYFbWfMW1HO4zbcHsYmzdsM4EJxOsiY5MAXdC2RQSzt6srJQCupm%0A%2FUQS8oHY6mp9yOPCsF0%3D%0A) + +This feature is most commonly used to redirect your attendees to your website or a simple "Thank you" page after they submit their booking. diff --git a/help/event-types/collective-events.mdx b/help/event-types/collective-events.mdx new file mode 100644 index 0000000000..05ca4a8529 --- /dev/null +++ b/help/event-types/collective-events.mdx @@ -0,0 +1,13 @@ +--- +title: Collective Events +--- + +Collective event types are ideal when the booker needs to book a meeting with several team members at one time. With Cal.com Teams, you can easily create a team event type and select collective scheduling as the scheduling type. You can then pick exactly which team members should co-host this event type collectively. + +[![](https://downloads.intercomcdn.com/i/o/1198415245/17cad46157f1e76e621fd9c4/i1600x899-mIkRTG3JZGA-_t2q4de.png?expires=1736325000&signature=23aa1e5df707fe86cbedd8ca76557261ab0ddf5394ffa7a4ccb298c471a9a4ec&req=dSEuHs1%2FmINbXPMW1HO4zc%2BQhQ6N1u12gGNXud8OL2HWw%2FiHm13enr9VaIBj%0AZ%2B6%2FYd9Z13GLMPcKfP0%3D%0A)](https://downloads.intercomcdn.com/i/o/1198415245/17cad46157f1e76e621fd9c4/i1600x899-mIkRTG3JZGA-_t2q4de.png?expires=1736325000&signature=23aa1e5df707fe86cbedd8ca76557261ab0ddf5394ffa7a4ccb298c471a9a4ec&req=dSEuHs1%2FmINbXPMW1HO4zc%2BQhQ6N1u12gGNXud8OL2HWw%2FiHm13enr9VaIBj%0AZ%2B6%2FYd9Z13GLMPcKfP0%3D%0A) + +Cal.com then evaluates availability on the basis of each member's availability by default. However, you also have an option to put forward a common schedule for this specific event type which will be used as the availability and over-ride each member's availability for this event type. + +[![](https://downloads.intercomcdn.com/i/o/1198415242/81e383ef1ad8f3e70cdadb91/i1600x899-C7et3rTz2nGC_zkie4g.png?expires=1736325000&signature=43fc3e00c6ea9d350bc59c65b0f58d7479309f022e861a85d1e67c36c037b6f8&req=dSEuHs1%2FmINbW%2FMW1HO4zRJuiACbPhZnvVY8S0WiTS3gy%2BPssvqX2wPEZE5k%0A7n3wYZmf9TWaJcDdeEE%3D%0A)](https://downloads.intercomcdn.com/i/o/1198415242/81e383ef1ad8f3e70cdadb91/i1600x899-C7et3rTz2nGC_zkie4g.png?expires=1736325000&signature=43fc3e00c6ea9d350bc59c65b0f58d7479309f022e861a85d1e67c36c037b6f8&req=dSEuHs1%2FmINbW%2FMW1HO4zRJuiACbPhZnvVY8S0WiTS3gy%2BPssvqX2wPEZE5k%0A7n3wYZmf9TWaJcDdeEE%3D%0A) + +When you need a group of team members to attend the same meeting, collective events are fantastic. Seeking a convenient time for all of your team members to attend the meeting is a breeze with this method. \ No newline at end of file diff --git a/help/event-types/create-first-event.mdx b/help/event-types/create-first-event.mdx new file mode 100644 index 0000000000..c39e4d5271 --- /dev/null +++ b/help/event-types/create-first-event.mdx @@ -0,0 +1,25 @@ +--- +title: Create your first event type +--- + + + + +A quick walkthrough of how to create event types. + +## The basics + +Head over to the **event types** page, then click the **New event type** button in the top right. + +You'll now be presented with the create event type dialog, which prompts you to enter in the basic information needed to get a working event type set up: + +- Title +- URL (e.g. cal.com/bailey/**example-event**) +- Description +- Length + +[![](https://downloads.intercomcdn.com/i/o/1195433173/459d590315726cde2c3da6a6/i973x933-2xQuLlTcg2xz_cvs7li.png?expires=1736301600&signature=cb4a1bc917705b98367e3e8b391fcde42d13240eeb044c61f2d3805509eec0e5&req=dSEuE819noBYWvMW1HO4zdvMofsCtCGMAPo%2BOL%2BAzF%2B0SWwGv6se8fklfFKd%0ARDLOujK%2Boq3LGcxdQ5Q%3D%0A)](https://downloads.intercomcdn.com/i/o/1195433173/459d590315726cde2c3da6a6/i973x933-2xQuLlTcg2xz_cvs7li.png?expires=1736301600&signature=cb4a1bc917705b98367e3e8b391fcde42d13240eeb044c61f2d3805509eec0e5&req=dSEuE819noBYWvMW1HO4zdvMofsCtCGMAPo%2BOL%2BAzF%2B0SWwGv6se8fklfFKd%0ARDLOujK%2Boq3LGcxdQ5Q%3D%0A) + +New event type dialog + +This is all you need to get an event type up and running, but you can configure additional settings for greater control. Read more about that **[here](https://cal.com/docs/how-to-guides/event-types/creating-your-first-event-type)** \ No newline at end of file diff --git a/help/event-types/create-recurring.mdx b/help/event-types/create-recurring.mdx new file mode 100644 index 0000000000..98a5b6e43b --- /dev/null +++ b/help/event-types/create-recurring.mdx @@ -0,0 +1,22 @@ +--- +title: Create a recurring event +--- + +Suppose you are a manager and would like to offer weekly one-on-one meetings for your team members, with a maximum of 12 sessions per person. You can set up a recurring event to accommodate this by: + + + +[![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195431722/4c2af5a1046f7eb81fd8214a/i1600x900-TOyuB4IVrvj9_ciusy5.png?expires=1736301600&signature=1ef7fc8228d481d21dc30b29be55fdfa8cbacea367d5cfda187cbf384ea0bdba&req=dSEuE819nIZdW%2FMW1HO4zaktYQsofYsrkIv8vi63YefChbwCOro9YA1180EI%0AdDGJ%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195431722/4c2af5a1046f7eb81fd8214a/i1600x900-TOyuB4IVrvj9_ciusy5.png?expires=1736301600&signature=1ef7fc8228d481d21dc30b29be55fdfa8cbacea367d5cfda187cbf384ea0bdba&req=dSEuE819nIZdW%2FMW1HO4zaktYQsofYsrkIv8vi63YefChbwCOro9YA1180EI%0AdDGJ%0A) + + + +[![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195431747/0d20785d293e3d7a9e987f4c/i1600x900-RzNl_eQIOUZ7_qmawjw.png?expires=1736301600&signature=517dbb203b7ab96662861135e1eed820e704638584143b27e56870f8b44acfc7&req=dSEuE819nIZbXvMW1HO4zdMmCQ4J5zwW2Te%2B3EUjp%2Byo9rb%2BtPSXv3eyJ0Xe%0AYBFN%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195431747/0d20785d293e3d7a9e987f4c/i1600x900-RzNl_eQIOUZ7_qmawjw.png?expires=1736301600&signature=517dbb203b7ab96662861135e1eed820e704638584143b27e56870f8b44acfc7&req=dSEuE819nIZbXvMW1HO4zdMmCQ4J5zwW2Te%2B3EUjp%2Byo9rb%2BtPSXv3eyJ0Xe%0AYBFN%0A) + + + +[![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195431762/7c13ad854b946e464c0113f3/i1600x900-nPCQKbW_wsVq_abagc2.png?expires=1736301600&signature=3ebbf9ee246762e58c9732c6af2e0e96538501a7c5bcc94c427fdf89a2b7bac9&req=dSEuE819nIZZW%2FMW1HO4zVwBu8tAtUfAl5nOuLqnywtgheMUSU05aDD4%2BiDt%0APdOo%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195431762/7c13ad854b946e464c0113f3/i1600x900-nPCQKbW_wsVq_abagc2.png?expires=1736301600&signature=3ebbf9ee246762e58c9732c6af2e0e96538501a7c5bcc94c427fdf89a2b7bac9&req=dSEuE819nIZZW%2FMW1HO4zVwBu8tAtUfAl5nOuLqnywtgheMUSU05aDD4%2BiDt%0APdOo%0A) + + + + +By setting up the recurring event this way, your colleagues can easily subscribe and participate in the weekly one-on-one meetings with you, up to the maximum limit of 12 sessions. diff --git a/help/event-types/create-secret.mdx b/help/event-types/create-secret.mdx new file mode 100644 index 0000000000..22f43c2616 --- /dev/null +++ b/help/event-types/create-secret.mdx @@ -0,0 +1,20 @@ +--- +title: Create a secret event type +--- + + + + + +This feature allows you to append virtually unlimited number of Cal.com users by simply adding their usernames with a **`+`** between adjoining usernames, and have a collective group. Try it now with Bailey and Peer, visit **[https://cal.com/bailey+peer](https://cal.com/bailey+peer)** + +This is an opt-in feature where a cal.com user can enable/disable if they wish to participate in this and allow the bookers to add them as part of a dynamic collective group. + + +[![](https://downloads.intercomcdn.com/i/o/1198206973/d6552a57a7e6373ab7087a30/i1600x900-jTlC4G2v-FyV_ujxqws.png?expires=1736325000&signature=9d685e3ba68f1d0fabec8a286c8c790e09228e4e94b0c719b875dcfe9ff97f33&req=dSEuHst%2Bm4hYWvMW1HO4zVATLvPyLIQC%2B%2BKbvufXrzwWG%2B0uYgDqUHz1EKjy%0AhdxRQuo%2Bixvwt0XztFs%3D%0A)](https://downloads.intercomcdn.com/i/o/1198206973/d6552a57a7e6373ab7087a30/i1600x900-jTlC4G2v-FyV_ujxqws.png?expires=1736325000&signature=9d685e3ba68f1d0fabec8a286c8c790e09228e4e94b0c719b875dcfe9ff97f33&req=dSEuHst%2Bm4hYWvMW1HO4zVATLvPyLIQC%2B%2BKbvufXrzwWG%2B0uYgDqUHz1EKjy%0AhdxRQuo%2Bixvwt0XztFs%3D%0A) + + + +Dynamic group links are enabled by default. If you wish to disable this feature in your account, you can head to **[settings/my-account-general](https://cal.com/settings/my-account/general)** and switch the toggle. \ No newline at end of file diff --git a/help/event-types/event-buffer.mdx b/help/event-types/event-buffer.mdx new file mode 100644 index 0000000000..66e25f9e11 --- /dev/null +++ b/help/event-types/event-buffer.mdx @@ -0,0 +1,35 @@ +--- +title: Event buffer +--- + +Event buffers are time spaces that can be appended before and/or after an event. This is helpful in scheduling your availability such that you have time to prepare for a meeting, take breather between two meetings/events or to accommodate travel time in case of events on a physical location. + +You can customize buffer time for each event so that you can accommodate the needs of that specific event type to further optimize your event type setup. + +[![](https://downloads.intercomcdn.com/i/o/1195342457/4effb7e2ddca3abe6255f859/i1600x900-uzADteTYBNdE_dtrrdz.png?expires=1736299800&signature=8385572e45392f75874c3108b091b8aa45544b4bf94c30fa746eac0e977fe7e1&req=dSEuE8p6n4VaXvMW1HO4zYc2go6a4ghGZ5iwZ0kn3FIaHKGTu%2BwFrmbxkS2L%0A4jIA6QLEbqRSBwNBJak%3D%0A)](https://downloads.intercomcdn.com/i/o/1195342457/4effb7e2ddca3abe6255f859/i1600x900-uzADteTYBNdE_dtrrdz.png?expires=1736299800&signature=8385572e45392f75874c3108b091b8aa45544b4bf94c30fa746eac0e977fe7e1&req=dSEuE8p6n4VaXvMW1HO4zYc2go6a4ghGZ5iwZ0kn3FIaHKGTu%2BwFrmbxkS2L%0A4jIA6QLEbqRSBwNBJak%3D%0A) + +The before event buffer time allows the space of time of chosen length **before** the events being booked on Cal based on your availability. The after event buffer time allows the space of time of chosen length **after** the events being booked on Cal based on your availability. Hidden events are flexible; they can be whatever you need them to be. Whether you want to use hidden events to facilitate sponsorship meetings, organize a fundraising drive, or offer one-on-one mentoring sessions, this feature can help you make the most of your meetings while keeping them out of the public eye. + +Event buffers are a great way to maintain a breathing space between multiple events in a day. Buffers are taken into consideration while booking a Cal event, if that Cal event has a buffer time selected. This simply means that buffers cannot overlap Cal events and thus a Cal event with buffer time can only be booked respecting the buffer time (before event, after event or both). + +## An example + +Given the availability from 9am to 5pm (09:00-17:00) and a 60-minute event with a 30-minute buffer before and a 30-minute buffer after, the total calendar time required for an event is indeed 120 minutes. But the buffer is applied around busy times and **not to the start or end of the working day**. + +So, in this scenario (considering you didn't modify the **[Custom time-slot intervals](https://cal.com/docs/core-features/event-types/custom-time-slot-intervals)** in this example): + +1. The first available time slot starts at 9am. The buffer before doesn't push this since there's no preceding busy time. +2. The event itself is for 60 minutes. +3. There's a 30-minute buffer before & 30-minute buffer after the event. But again, if there's no following busy time immediately after, this buffer doesn't push the next available slot. + +Thus, the sequence is: + +- **9:00-10:00am**: First available slot +- a. **10:00-11:00am**: If Slot 1 is booked, this slot will be blocked as buffer (after) to allow the buffer period relative to the 9-10am slot. + +b. **10:00-11:00am**: If Slot 1 is free, this slot will be free + +c. **10:00-11:00am**: If Slot 2 (10:00-11:00) is booked, since booking slot 1 (9:00-10:00) would imply that there will not be an after buffer (as 10-11 is already booked). Hence, slot 1 will not remain bookable anymore. + +You can take a look at our guide to learn **[How to set buffer time](https://cal.com/docs/how-to-guides/how-to-set-buffer-time)**. + diff --git a/help/event-types/event-types.mdx b/help/event-types/event-types.mdx new file mode 100644 index 0000000000..2b8ae9547e --- /dev/null +++ b/help/event-types/event-types.mdx @@ -0,0 +1,29 @@ +--- +title: Event Types +--- + +Event types are your pre-set meetings, events, consultations, etc., which you can share with potential attendees. You can create as many event types as you need with each account, and each event type is customizable in terms of its name, URL, duration, availability, and location of the event. + + + + + +## Underlying Mechanism + +The round robin events when **not** using a common schedule offer slots which are formed using the union of all slots available for each round robin host. Once an available slot is chosen by the scheduler, the underlying mechanism of host assignment kicks in. The mechanism has a couple of options: + +[![](https://downloads.intercomcdn.com/i/o/1198422483/d14818f9c10783dc8476464c/i1600x900-C_UH53xMxD-i_qiunh8.png?expires=1736325000&signature=5df708fc851410990c6fea369b0b62f5b398789242bc5bdc1c22fba60b5635b4&req=dSEuHs18n4VXWvMW1HO4zWqmBkE%2BZ3JWMFTkdeiauZnQSHXvN06q9fSVaKip%0AavyHm5oVKIdbmgRQwr8%3D%0A)](https://downloads.intercomcdn.com/i/o/1198422483/d14818f9c10783dc8476464c/i1600x900-C_UH53xMxD-i_qiunh8.png?expires=1736325000&signature=5df708fc851410990c6fea369b0b62f5b398789242bc5bdc1c22fba60b5635b4&req=dSEuHs18n4VXWvMW1HO4zWqmBkE%2BZ3JWMFTkdeiauZnQSHXvN06q9fSVaKip%0AavyHm5oVKIdbmgRQwr8%3D%0A) + +## Priority Ranking + +Every round-robin host has a priority, by default 'medium'. The priority level assigned to a host directly influences their likelihood of being selected for bookings. A higher priority signals a stronger preference, positioning them as a more desirable option for hosting duties. This system ensures that hosts with higher designated priorities are given precedence in the booking process, optimizing the allocation of resources and streamlining event organization. + +For instance, if John Doe & Jane Doe are both available in the same slot, but John has a priority **`High`** compared to Jane's priority of **`Medium`**, John will be booked. If several users have the same priority it will choose the least recently booked user. + +You have the option to select priority for each host and based on their priority (and availability in the selected slot), the hosts will be booked. + +[![](https://downloads.intercomcdn.com/i/o/1198422484/7032e3d2d3ca3403d38c4f34/i1600x900-sPtSh0GS1Fh8_uxplud.png?expires=1736325000&signature=389e28b33024e295f72dbde7e2778493002c82112e6c53ad81c84158f9aca581&req=dSEuHs18n4VXXfMW1HO4zRlMb6yqKrOjx2NU4OrJKRSE0s%2FlRT5audRg00I%2B%0Aox9K1McHnyM9RL5a3lI%3D%0A)](https://downloads.intercomcdn.com/i/o/1198422484/7032e3d2d3ca3403d38c4f34/i1600x900-sPtSh0GS1Fh8_uxplud.png?expires=1736325000&signature=389e28b33024e295f72dbde7e2778493002c82112e6c53ad81c84158f9aca581&req=dSEuHs18n4VXXfMW1HO4zRlMb6yqKrOjx2NU4OrJKRSE0s%2FlRT5audRg00I%2B%0Aox9K1McHnyM9RL5a3lI%3D%0A) + +## Weights + +Weights are optional and must be enabled to use. They allow you to determine how meetings should be distributed among hosts. When enabled, every host has a default weight of 100%. This means each host should end up with the same number of bookings by default. However, hosts with fewer availabilities can still end up with fewer bookings. Only confirmed bookings count towards past bookings. + +For instance, Jane Doe has a weight of 100% and already has 8 bookings while John Doe has a weight of 200% and already has 12 bookings. Assuming both of them are available, the next bookings would go to John Doe until a total of 16 bookings is reached. + +**Weight Adjustment**: If new hosts are added to a round-robin event type that has weights enabled, their weights will be adjusted accordingly. New hosts will have their bookings adjusted proportionally to their weight, taking into account the bookings that existing hosts already have. This ensures a fair distribution of bookings when new hosts are added. +### Example: +Existing host 1: 100% weight, 5 bookings +Existing host 2: 200% weight, 9 bookings +New host: 50% weight + +Weight Adjustment = (Bookings of existing hosts / Sum of weights of existing hosts) * New host weight + +Weight Adjustment = 14 / 300 * 50 = 2.33 +The new host will have a weight adjustment of 2 bookings. + +## Least Recently Booked +This is the fallback method where the available round robin host who was booked least recently is chosen. If more than one host meets this criteria, one of them is chosen at random. + + +## Fixed hosts +If you wish to bring in Collective behavior into round-robin events, it is possible with Cal.com. You can now select which hosts you wish to always attend the meeting whilst the other selected team members who are booked on a round-robin basis. +![](https://downloads.intercomcdn.com/i/o/1198422485/886260ecd32e570bc1c17980/i1600x899-2GVNR4Q0fjRI_smxuoj.png?expires=1736325000&signature=6e43380ae8c709d632b0ffedb0428dc1cf4ed2d5a70610a9ff7aec707adb6f11&req=dSEuHs18n4VXXPMW1HO4zZ2W4m%2B6ATUGOvymCQKz%2FZsqVx%2BpyZc3vbeHQive%0AKT741HnunGcXiqG25Ow%3D%0A) +**Fixed Hosts** are individuals who are consistently present at every meeting. + +**Round-Robin Hosts** are members of a group who take turns attending meetings. Rather than everyone in this group attending every meeting, only one person from the group will attend each time. + +For tasks like scheduling sales calls or product demos, where you have a pool of people among whom you'd like to distribute meetings, round robin is the perfect choice. \ No newline at end of file diff --git a/help/event-types/secret-events.mdx b/help/event-types/secret-events.mdx new file mode 100644 index 0000000000..b74448408f --- /dev/null +++ b/help/event-types/secret-events.mdx @@ -0,0 +1,9 @@ +--- +title: Secret events +--- + +Cal.com offers you the possibility of creating secret events also known as **hidden** events. A hidden event is a bookable appointment that can only be accessed via a private link. By default, this means that a hidden event won't show up on your Cal.com booking page. Hidden events are just like regular events in that they can occur in-person, over the phone, or via video chat. Hidden events are a handy tool to use as part of your scheduling infrastructure arsenal. Since they don't show up on your main booking page, they are ideal for meetings of a sensitive nature or personal nature. + +[![](https://downloads.intercomcdn.com/i/o/1195411465/b9e2e44bfcfc50e9bcb29161/i1600x900-FLwHauFSTfJy_hoqypx.png?expires=1736299800&signature=8db878eb32cea060f991bbef9528635341c73253cefa11ea5b1fbcd7e053274b&req=dSEuE81%2FnIVZXPMW1HO4zbtNV4zAs9FUWFJsJMapnqeDwj3NXZu%2FH%2FmQbdXy%0AyuWcK1a5CRKSil4Iun0%3D%0A)](https://downloads.intercomcdn.com/i/o/1195411465/b9e2e44bfcfc50e9bcb29161/i1600x900-FLwHauFSTfJy_hoqypx.png?expires=1736299800&signature=8db878eb32cea060f991bbef9528635341c73253cefa11ea5b1fbcd7e053274b&req=dSEuE81%2FnIVZXPMW1HO4zbtNV4zAs9FUWFJsJMapnqeDwj3NXZu%2FH%2FmQbdXy%0AyuWcK1a5CRKSil4Iun0%3D%0A) + +You can use hidden events for everything from auditioning talent to organizing surprise parties or hosting breakaway rooms at virtual conferences. You can easily share the hidden event type by copying the URL and then sharing via email, sms or any other form of communication. \ No newline at end of file diff --git a/help/event-types/setup-location.mdx b/help/event-types/setup-location.mdx new file mode 100644 index 0000000000..f25947a533 --- /dev/null +++ b/help/event-types/setup-location.mdx @@ -0,0 +1,16 @@ +--- +title: Setting up location of team events on cal.com +--- + +When scheduling a Team Event on **[Cal.com](https://cal.com/)**, specifying the location is crucial for ensuring seamless coordination, especially when utilizing video conferencing apps like Zoom, Google Meet, or Microsoft Teams. Here's how it works: + +- **Selecting the Location**: While creating a new Team Event, you'll notice a dropdown menu for selecting the event's location. If your event will be conducted using a video conferencing app, choosing "Organizer's default app" from the dropdown is essential. + +[![brandbird](https://downloads.intercomcdn.com/i/o/1195443719/229c978410d4f4b09411be8d/317731047-19cbf3eb-cd7a-47f8-b03d-956a81a333f9.png?expires=1736324100&signature=8cfe092adebaacc314e4c5ae26b6b39198ef1b4bdb501066937f86472a7807fc&req=dSEuE816noZeUPMW1HO4zS0bvZazP6Tbq4hwX2cSt1CShdZ7CvWUnjPPuYOP%0Am8EwPPmmmB50mLWPLX8%3D%0A)](https://downloads.intercomcdn.com/i/o/1195443719/229c978410d4f4b09411be8d/317731047-19cbf3eb-cd7a-47f8-b03d-956a81a333f9.png?expires=1736324100&signature=8cfe092adebaacc314e4c5ae26b6b39198ef1b4bdb501066937f86472a7807fc&req=dSEuE816noZeUPMW1HO4zS0bvZazP6Tbq4hwX2cSt1CShdZ7CvWUnjPPuYOP%0Am8EwPPmmmB50mLWPLX8%3D%0A) + +- **Utilizing Default Video Conferencing Apps**: Video conferencing apps don’t appear in the Location dropdown menu for Team events. However, by selecting "Organizer's default app," you ensure that the appropriate video conferencing link will be generated for the event. +- **Configuring Default Apps**: To ensure smooth operation, all team members assigned to that event type must have the preferred video conferencing app set as their default in the Installed Apps section. This can be done by navigating to: **[https://app.cal.com/apps/installed/conferencing](https://app.cal.com/apps/installed/conferencing)**. + +[![brandbird (2) (2)](https://downloads.intercomcdn.com/i/o/1195443721/bd5133d609c93832ee9ec8b7/317731109-78c6cb3a-01de-4678-8414-aa645f2200d5.png?expires=1736324100&signature=eee04b73595daacf4e4bc0f56d7861d0c8f0b585f2495cd3a762924e245e0553&req=dSEuE816noZdWPMW1HO4zRy79caKWxNZg1QHr3p5DK%2F9NTv5qFBtJOqlIteX%0A5Kzlyf7gTt1VEHzC19U%3D%0A)](https://downloads.intercomcdn.com/i/o/1195443721/bd5133d609c93832ee9ec8b7/317731109-78c6cb3a-01de-4678-8414-aa645f2200d5.png?expires=1736324100&signature=eee04b73595daacf4e4bc0f56d7861d0c8f0b585f2495cd3a762924e245e0553&req=dSEuE816noZdWPMW1HO4zRy79caKWxNZg1QHr3p5DK%2F9NTv5qFBtJOqlIteX%0A5Kzlyf7gTt1VEHzC19U%3D%0A) + +- **Generating Meeting Links**: Once all team members have set their preferred app as the default, a meeting link will be automatically generated upon booking the Team Event. For instance, if Zoom is selected as the default app for all members, the event booking will generate a Zoom meeting link. diff --git a/help/event-types/single-use.mdx b/help/event-types/single-use.mdx new file mode 100644 index 0000000000..85e18a1c1c --- /dev/null +++ b/help/event-types/single-use.mdx @@ -0,0 +1,11 @@ +--- +title: Single use private links +--- + +As you may already know, the event types have their own URLs which you can share with your potential attendees. But if you want to prevent attendees from seeing your Cal.com username that leads directly to your booking page, you can use this feature to generate a single use private link. + +This private link regenerates after each use, so your attendees won't be able to use this URL to book your time again. + +[![](https://downloads.intercomcdn.com/i/o/1195412260/a62ed7953bf69382295cbd76/i1600x900-BHVM1jwFyc0Q_bd5zvm.png?expires=1736299800&signature=d457f82d504e6ad1ff24efb4d1327dad91c5b6f1f3a1bc97a431aa0b055bda1c&req=dSEuE81%2Fn4NZWfMW1HO4zRSpZby1%2BOUeOcIqWKvxZxFvE7%2Bh2pHlxyC23Xm3%0AHMlBWfyHXRJeCHqzQBg%3D%0A)](https://downloads.intercomcdn.com/i/o/1195412260/a62ed7953bf69382295cbd76/i1600x900-BHVM1jwFyc0Q_bd5zvm.png?expires=1736299800&signature=d457f82d504e6ad1ff24efb4d1327dad91c5b6f1f3a1bc97a431aa0b055bda1c&req=dSEuE81%2Fn4NZWfMW1HO4zRSpZby1%2BOUeOcIqWKvxZxFvE7%2Bh2pHlxyC23Xm3%0AHMlBWfyHXRJeCHqzQBg%3D%0A) + +Besides the privacy that it can provide, this feature can also help you prevent your Cal.com username from being shared around and to better manage the incoming booking requests. diff --git a/help/event-types/split-name.mdx b/help/event-types/split-name.mdx new file mode 100644 index 0000000000..fde06620f0 --- /dev/null +++ b/help/event-types/split-name.mdx @@ -0,0 +1,49 @@ +--- +title: How to split fullname into firstname and lastname in the public booking page +--- + +By default, Cal.com booking page has a fullname text input field for the scheduler to put their name in. This usually works just fine for most people. However, at times, it is preferable to take the firstname and lastname of the scheduler as separate inputs in the booking form. + +Cal.com provides the option to split the fullname input field in the booking form into firstname and lastname. To do that, you can do the following: + + + Head to the event type settings where you wish to split the fullname into firstname and lastname. + + + + + [![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195425758/45f47313a8550e6e2b33b426/i1600x900-WWEmqSwAOD4e_zntxhy.png?expires=1736300700&signature=5faca7a9dccf0d24cbf54cea1c0f06ea54e71d7cb3506a2b7521cf5dd254daae&req=dSEuE818mIZaUfMW1HO4zRpF%2F5DnwTb%2Buk6pbg5F7k82AtvKK9dbf%2FcOYFKU%0AWIVO%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195425758/45f47313a8550e6e2b33b426/i1600x900-WWEmqSwAOD4e_zntxhy.png?expires=1736300700&signature=5faca7a9dccf0d24cbf54cea1c0f06ea54e71d7cb3506a2b7521cf5dd254daae&req=dSEuE818mIZaUfMW1HO4zRpF%2F5DnwTb%2Buk6pbg5F7k82AtvKK9dbf%2FcOYFKU%0AWIVO%0A) + + + In the dialog that opens, click on the toggle that says **`Split "Full name" into "First name" and "last name"`** + [![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195425775/c1a41f7b5fdbb5b98a555efc/i1600x900-je1Ro4IEzLFM_gm67e9.png?expires=1736300700&signature=5d0d4b83085ee6fc9a2c9936827f7fa2c96616be5bcc0dd55227d1cdab728975&req=dSEuE818mIZYXPMW1HO4zUCS0NRKkPxcOVoTwio4u55utG%2FVpYsTtKa3wkL3%0Ayo3l%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195425775/c1a41f7b5fdbb5b98a555efc/i1600x900-je1Ro4IEzLFM_gm67e9.png?expires=1736300700&signature=5d0d4b83085ee6fc9a2c9936827f7fa2c96616be5bcc0dd55227d1cdab728975&req=dSEuE818mIZYXPMW1HO4zUCS0NRKkPxcOVoTwio4u55utG%2FVpYsTtKa3wkL3%0Ayo3l%0A) + + + Fill the label and optional placeholder values, and click on **save**. + + [![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195425822/1bc89e286966e40fa419b9dd/i1600x900-5uEMac44YaIi_fqr7ov.png?expires=1736300700&signature=6246cd8489971ab67bead3b801c8ceea5d60b2633f847c092d1d4155eb592cf0&req=dSEuE818mIldW%2FMW1HO4zQ7YBJn9dmhxahYRRFXRaWeXimh0FediowPu1elr%0AaEJM%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195425822/1bc89e286966e40fa419b9dd/i1600x900-5uEMac44YaIi_fqr7ov.png?expires=1736300700&signature=6246cd8489971ab67bead3b801c8ceea5d60b2633f847c092d1d4155eb592cf0&req=dSEuE818mIldW%2FMW1HO4zQ7YBJn9dmhxahYRRFXRaWeXimh0FediowPu1elr%0AaEJM%0A) + + + Remember to click on the **save** button in the event type settings as well. + + + Head to the public booking page of this event type, you will notice the fullname is now split into firstname and lastname with the labels provided by you in step number 6. + [![](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195425838/2315c39aa24abf12de2db543/i1600x900-lyOWGLVGiBPA_iia5p8.png?expires=1736300700&signature=2ea549b0539cc94beeb7e338e0c5d945d7b38cfbb5d7f15df8115b73a076563f&req=dSEuE818mIlcUfMW1HO4zdSy2asW%2Fn7YI92dfoGSkLXKz8GPUbKTFLnHqOG%2B%0Aj19S%0A)](https://calcom-inc-0470baa6daee.intercom-attachments-1.com/i/o/1195425838/2315c39aa24abf12de2db543/i1600x900-lyOWGLVGiBPA_iia5p8.png?expires=1736300700&signature=2ea549b0539cc94beeb7e338e0c5d945d7b38cfbb5d7f15df8115b73a076563f&req=dSEuE818mIlcUfMW1HO4zdSy2asW%2Fn7YI92dfoGSkLXKz8GPUbKTFLnHqOG%2B%0Aj19S%0A) + + + +You're all set! + +## How this affects the Booking API requests + +Please note that in case of API requests, your usual **responses object**: +```json +"responses": { "name": "John Doe", "email": "john.doe@example.com", "location": { "optionValue": "", "value": "Acme Industries" } } +``` + +will now be updated to allow **name** to be converted into object containing **firstName** and **lastName** as follows: + +```json +"responses": { "name": { "firstName": "John", "lastName": "Doe" }, "email": "john.doe@example.com", "location": { "optionValue": "", "value": "Acme Industries" } } +``` + diff --git a/help/event-types/sponsor.mdx b/help/event-types/sponsor.mdx new file mode 100644 index 0000000000..21f344a428 --- /dev/null +++ b/help/event-types/sponsor.mdx @@ -0,0 +1,32 @@ +--- +title: Can Cal.com sponsor my open source project? +--- + +Cal.com is a commercial open source company and thereby we fully support other open source projects, whether it's commercial or non-commercial. We're friends of many other COSS companies. + +## Sponsorship Criteria +- The project should be non-commercial or a commercial open source company with less than $2M in ARR +- The project should be open source +- Include our "Book us with Cal.com" banner in your footer and link to a Cal.com booking link of your choice +- Include our "Book us with Cal.com" banner in your open source repository's README.md file and link to a Cal.com booking link of your choice +- Add the UTM tag with the format for the banners: ?utm\_source=banner&utm\_campaign=oss + +## HTML Code: +```html +Book us with Cal.com +``` +or +```html +Book us with Cal.com +``` + +## How to apply + +Please note that we have a limited number of openings for OSS sponsorships each month. If you're interested in applying for a sponsorship for your open source software project, please follow these steps: + +- Ensure that you meet all the sponsorship criteria mentioned above. +- Send an email to [peer@cal.com](https://cal.com/help/en/articles/) and explain what you are working on and confirm that you meet all the sponsorship criteria (watch out, Peer may invest a small angel check in your COSS company 👀) +- Explaining why Cal.com's free tier or open core is insufficient for your project +- Include your Cal.com team slug and provide a link to your open source repository in the email. + +Please note that sponsorship requests are reviewed on a monthly basis, so allow some time before reaching out for updates. We reserve the right to reject any project at will without reason. \ No newline at end of file diff --git a/help/event-types/symbolic-issues.mdx b/help/event-types/symbolic-issues.mdx new file mode 100644 index 0000000000..8a8f30127c --- /dev/null +++ b/help/event-types/symbolic-issues.mdx @@ -0,0 +1,56 @@ +--- +title: How to troubleshoot symbolic link issues on Windows +--- +If you're using Cal.com self hosting instance on windows, you might be struggling with Prisma Environment variables not working. One of the reasons why this happens is because by default, symbolic links are disabled on windows OS. + +To test the state of symbolic links configuration in your local repo, please run the following command from your root + +```bash +git config --get core.symlinks +``` + +This should return **`false`**. If that is the case, you can follow one of the two following methods to enable symbolic links + +### Enable symbolic links +Please make sure to open **gitbash** with elevated privileges (Admin) before running the following commands, or they may fail silently and just not work as expected. + +### Create a new clone with symbolic links enabled (Recommended) + +Please use the following steps to clone the repo with symbolic links: + + + + +```bash +git clone -c core.symlinks=true https://github.com/calcom/cal.com.git +``` + + + + +### Enable symbolic links in your existing cloned repo + +This is quite tricky, and not the recommended way of troubleshooting this issue. Please use the following steps to troubleshoot: + + + + +``` +git config core.symlinks true +``` + + + +``` +git config --get core.symlinks +``` + + + + + +``` +git restore packages/prisma/.env +``` + + diff --git a/help/favicon.png b/help/favicon.png new file mode 100644 index 0000000000..5846956222 Binary files /dev/null and b/help/favicon.png differ diff --git a/help/getting-started/complete-your-onboarding.mdx b/help/getting-started/complete-your-onboarding.mdx deleted file mode 100644 index 41573b6929..0000000000 --- a/help/getting-started/complete-your-onboarding.mdx +++ /dev/null @@ -1,30 +0,0 @@ -Once you create a Cal.com account, you are taken to the onboarding flow, where you'll need to go through the process of setting up some basics to get you up and running. - -## Set up your name and Timezone - -Here all you need to do is enter your full name to be displayed on your booking page, and confirm the Timezone that you're in. - -[![](https://downloads.intercomcdn.com/i/o/1195453145/c9b80553eef388dc17159eb2/i1600x900-akHcmOHfAXkX_g7isuj.png?expires=1734714000\&signature=bf60f076c8be0cdb75adb87a3dd5752858dcbe3ff180ab6ebf4d031d65ed5258\&req=dSEuE817noBbXPMW1HO4zTBxsMaGV1gm1DL2Z9%2F%2BQFifN2WjjinbVwafM6T5%0ARaL9zXFNHzrcG3wxWR4%3D%0A)](https://downloads.intercomcdn.com/i/o/1195453145/c9b80553eef388dc17159eb2/i1600x900-akHcmOHfAXkX_g7isuj.png?expires=1734714000\&signature=bf60f076c8be0cdb75adb87a3dd5752858dcbe3ff180ab6ebf4d031d65ed5258\&req=dSEuE817noBbXPMW1HO4zTBxsMaGV1gm1DL2Z9%2F%2BQFifN2WjjinbVwafM6T5%0ARaL9zXFNHzrcG3wxWR4%3D%0A) - - -## Connect a calendar - -You can connect your Cal.com account with any of your calendars to automatically check for busy times and create new events as they are scheduled. If you wish to connect a calendar at a later stage, you can always click on I'll connect my calendar later and it'll skip to the next step. - -[![](https://downloads.intercomcdn.com/i/o/1195453149/f925bef4ffa0c3dfba474b3b/i1600x900-UcoZykKljPsG_pftvub.png?expires=1734714000\&signature=000519db799774393a89877fb30e880d9da94f32a75d36d3e5a80ac049ca0123\&req=dSEuE817noBbUPMW1HO4zeZHSZdXerJcD8lCqNo4dvyWVoOezDI3AXKbsZhS%0ANkOqYBaHc7hK4T2AsIM%3D%0A)](https://downloads.intercomcdn.com/i/o/1195453149/f925bef4ffa0c3dfba474b3b/i1600x900-UcoZykKljPsG_pftvub.png?expires=1734714000\&signature=000519db799774393a89877fb30e880d9da94f32a75d36d3e5a80ac049ca0123\&req=dSEuE817noBbUPMW1HO4zeZHSZdXerJcD8lCqNo4dvyWVoOezDI3AXKbsZhS%0ANkOqYBaHc7hK4T2AsIM%3D%0A) - - -## Set up your availability - -You can set your availability schedule in this step. You can always create or modify your availability at a later stage in the application as well. If you wish you can learn more about [Setting up your availability](https://cal.com/docs/how-to-guides/setting-up-your-availability)or check out the deep dive into the [Availability](https://cal.com/docs/core-features/availability) feature. - -[![](https://downloads.intercomcdn.com/i/o/1195453147/132a2404780a8562fb1cde2d/i1600x900--rsrw7G9JKrW_d8fm8m.png?expires=1734714000\&signature=7a2205317ef97414e3d21152f26f6e29f2d4602b418483d52ae7a153aa3139df\&req=dSEuE817noBbXvMW1HO4zd1E9SbAWKPFuzqf51wG7XJc4LH2AVGqq5hbJfnc%0AsjDrR5aYBQaRWORa7%2F0%3D%0A)](https://downloads.intercomcdn.com/i/o/1195453147/132a2404780a8562fb1cde2d/i1600x900--rsrw7G9JKrW_d8fm8m.png?expires=1734714000\&signature=7a2205317ef97414e3d21152f26f6e29f2d4602b418483d52ae7a153aa3139df\&req=dSEuE817noBbXvMW1HO4zd1E9SbAWKPFuzqf51wG7XJc4LH2AVGqq5hbJfnc%0AsjDrR5aYBQaRWORa7%2F0%3D%0A) - - -## Final profile details - -Finally, you can personalize your Cal.com booking link by providing a brief description about yourself and uploading a photograph so the people know who they're booking with. - -[![](https://downloads.intercomcdn.com/i/o/1195453146/58c4a5fbdd2fcf6cc17f4543/i1600x900-YhAs1gRVQJwU_wf80pn.png?expires=1734714000\&signature=662e46f9d63ef15c9907134266c0dfeebee9c7dd9865deedffd40d589125e2f0\&req=dSEuE817noBbX%2FMW1HO4zWnuexBfXiF8GXk3aYtP0jJBtLE1W50mTVeyKwo4%0ACOBYZPlkK985qOcQOpY%3D%0A)](https://downloads.intercomcdn.com/i/o/1195453146/58c4a5fbdd2fcf6cc17f4543/i1600x900-YhAs1gRVQJwU_wf80pn.png?expires=1734714000\&signature=662e46f9d63ef15c9907134266c0dfeebee9c7dd9865deedffd40d589125e2f0\&req=dSEuE817noBbX%2FMW1HO4zWnuexBfXiF8GXk3aYtP0jJBtLE1W50mTVeyKwo4%0ACOBYZPlkK985qOcQOpY%3D%0A) - -That's it. You're fully onboarded and all set to start your scheduling journey! diff --git a/help/getting-started/customization.mdx b/help/getting-started/customization.mdx deleted file mode 100644 index 03f560f441..0000000000 --- a/help/getting-started/customization.mdx +++ /dev/null @@ -1,19 +0,0 @@ -Cal.com offers customizable appearance baked into the product. You can select from a few options and dictate how your booking pages will look like: - -[![](https://downloads.intercomcdn.com/i/o/1198206315/2164d7a47f3c65ba0bf706cb/i1600x899-HIol7m7sT4zB_lqidld.png?expires=1734714000\&signature=02aa2a62098d5eeb0e1e37cb18d6cb4ac807d038f02b08e93b32488e66c9db93\&req=dSEuHst%2Bm4JeXPMW1HO4zdxW8e1lYdsGkf3DS870RkQuEAWG7v0FpWRkqsEc%0AtPwY9zj60L8tT8uVkPA%3D%0A)](https://downloads.intercomcdn.com/i/o/1198206315/2164d7a47f3c65ba0bf706cb/i1600x899-HIol7m7sT4zB_lqidld.png?expires=1734714000\&signature=02aa2a62098d5eeb0e1e37cb18d6cb4ac807d038f02b08e93b32488e66c9db93\&req=dSEuHst%2Bm4JeXPMW1HO4zdxW8e1lYdsGkf3DS870RkQuEAWG7v0FpWRkqsEc%0AtPwY9zj60L8tT8uVkPA%3D%0A) - - -## Theme - -You can select what the theme of your booking pages would be. You can either force the booking page to be of Light mode or Dark mode where the visitors to your booking page would only ever see the selected mode. Alternatively, you could select the System default (selected by default by Cal.com) where the visitors to your website would see the version as per their system default settings (Light or Dark) - -[![](https://downloads.intercomcdn.com/i/o/1198206314/f04bd67aa9cae8b54fb6d9b4/i805x289-9ZjOQDA70FMu_zjot71.png?expires=1734714000\&signature=f9d629c3cf779a2a89483890ece99cbd9d6f9a448b0d3f9a84d050e8911c46ac\&req=dSEuHst%2Bm4JeXfMW1HO4ze2Wk3jG3ORofxgPA8NLppLNtG8nsjtRtR1pPujo%0APjy7tUX%2BQivWNM%2Br2rs%3D%0A)](https://downloads.intercomcdn.com/i/o/1198206314/f04bd67aa9cae8b54fb6d9b4/i805x289-9ZjOQDA70FMu_zjot71.png?expires=1734714000\&signature=f9d629c3cf779a2a89483890ece99cbd9d6f9a448b0d3f9a84d050e8911c46ac\&req=dSEuHst%2Bm4JeXfMW1HO4ze2Wk3jG3ORofxgPA8NLppLNtG8nsjtRtR1pPujo%0APjy7tUX%2BQivWNM%2Br2rs%3D%0A) - - -## Brand Colors - -You can select your Brand Color for both light theme and dark theme which over-rides the default brand color of Cal.com in your public booking pages. This adds a custom feel to the booking experience. - -[![](https://downloads.intercomcdn.com/i/o/1198206313/f30357693da318f7934b7c88/i817x190--uQ-QNjQv7N-_dhazio.png?expires=1734714000\&signature=e14a0ad67e98e7ab8c19d36d1c27d463b9f42d6b7634aec5956584e468678801\&req=dSEuHst%2Bm4JeWvMW1HO4zSGYuaZeLpetOwWwqy61UKiW0pTsmTcvhb3LU8W2%0As5OsVpLHL2I9NeTC5nk%3D%0A)](https://downloads.intercomcdn.com/i/o/1198206313/f30357693da318f7934b7c88/i817x190--uQ-QNjQv7N-_dhazio.png?expires=1734714000\&signature=e14a0ad67e98e7ab8c19d36d1c27d463b9f42d6b7634aec5956584e468678801\&req=dSEuHst%2Bm4JeWvMW1HO4zSGYuaZeLpetOwWwqy61UKiW0pTsmTcvhb3LU8W2%0As5OsVpLHL2I9NeTC5nk%3D%0A) - -You can easily use these in combination with [embed](https://cal.com/docs/core-features/embed) to make the cal.com embed feel like a part of your website by simply updating these settings to match your website. diff --git a/help/getting-started/quickstart.mdx b/help/getting-started/quickstart.mdx deleted file mode 100644 index 80f8816b36..0000000000 --- a/help/getting-started/quickstart.mdx +++ /dev/null @@ -1,24 +0,0 @@ -[![](https://downloads.intercomcdn.com/i/o/1198516524/505260fe7d81071196387055/i1600x600-Z8AAymlAKVce_i4nxdb.png?expires=1734714000\&signature=587aa816f0dbbd04a33cf01abf7a2eed40db8a79e5c8d27143f288177102124e\&req=dSEuHsx%2Fm4RdXfMW1HO4zWgud8yLptvKvIvPZJajfyS0aZMFn%2B5i3QycHg63%0A4mbN9rXv1DmkJnbmdw4%3D%0A)](https://downloads.intercomcdn.com/i/o/1198516524/505260fe7d81071196387055/i1600x600-Z8AAymlAKVce_i4nxdb.png?expires=1734714000\&signature=587aa816f0dbbd04a33cf01abf7a2eed40db8a79e5c8d27143f288177102124e\&req=dSEuHsx%2Fm4RdXfMW1HO4zWgud8yLptvKvIvPZJajfyS0aZMFn%2B5i3QycHg63%0A4mbN9rXv1DmkJnbmdw4%3D%0A) - - -## Sign up for a free Cal.com account (recommended) - -The easiest way to get started with Cal.com is with our hosted plan. We offer a generous free tier where you get unlimited scheduling with no limits and all of our features built for individuals, with the option to upgrade to a teams plan for collaboration features. - -[Sign up for a Cal.com account](https://cal.com/docs/introduction/quick-start/sign-up-for-a-cal.com-account) - -[![](https://downloads.intercomcdn.com/i/o/1198516520/2b04acb45b27895293b1342f/i1600x600-Bt00AJE4uNcL_hiqcp9.png?expires=1734714000\&signature=7801860013d1cf148d0a2ee818b73d005f8a4b991142811f61521da3415f9d1c\&req=dSEuHsx%2Fm4RdWfMW1HO4zZ7b2lOBVgWtmZAzR1fVuzBWzPOH7NAHPqpuJ05b%0AY5L%2FoLnclN2QbXQdru4%3D%0A)](https://downloads.intercomcdn.com/i/o/1198516520/2b04acb45b27895293b1342f/i1600x600-Bt00AJE4uNcL_hiqcp9.png?expires=1734714000\&signature=7801860013d1cf148d0a2ee818b73d005f8a4b991142811f61521da3415f9d1c\&req=dSEuHsx%2Fm4RdWfMW1HO4zZ7b2lOBVgWtmZAzR1fVuzBWzPOH7NAHPqpuJ05b%0AY5L%2FoLnclN2QbXQdru4%3D%0A) - - -## Self-host Cal.com on your infrastructure - -For full data ownership and control over your scheduling, you can self-host Cal.com on your own infrastructure. - -[Self-hosting](https://cal.com/docs/introduction/quick-start/self-hosting) - - -## Quick start for contributors - -If you wish to contribute to Cal.com, please take a look at our guide to fast-track the onboarding process for new contributors. - -[Quick start for contributors](https://cal.com/docs/knowledgebase/contributors-guide/quick-start) \ No newline at end of file diff --git a/help/getting-started/sign-up-for-cal-com.mdx b/help/getting-started/sign-up-for-cal-com.mdx deleted file mode 100644 index e60787b1a1..0000000000 --- a/help/getting-started/sign-up-for-cal-com.mdx +++ /dev/null @@ -1,17 +0,0 @@ -Signing up for a Cal.com account is easy, and can be done in 30 seconds. - - -[![](https://downloads.intercomcdn.com/i/o/1195450358/19847d88dcfad843e67625c3/i958x1232-mgsIib6PZJLt_zobva8.png?expires=1734714000\&signature=32dc841eb7f14bc2405dcdcc5099bb9c6f69201b41d18dfc01f875ec8258cc96\&req=dSEuE817nYJaUfMW1HO4zbaARDNHwLdsX03LyFtsrjDQzWADhg88oNWCQ3gG%0AbA%2FZgo9B8pw%2Fp7a6MOw%3D%0A)](https://downloads.intercomcdn.com/i/o/1195450358/19847d88dcfad843e67625c3/i958x1232-mgsIib6PZJLt_zobva8.png?expires=1734714000\&signature=32dc841eb7f14bc2405dcdcc5099bb9c6f69201b41d18dfc01f875ec8258cc96\&req=dSEuE817nYJaUfMW1HO4zbaARDNHwLdsX03LyFtsrjDQzWADhg88oNWCQ3gG%0AbA%2FZgo9B8pw%2Fp7a6MOw%3D%0A) - - -To get started, head to [cal.com/signup](https://cal.com/signup), where you'll be able to enter your desired username (the part that comes after cal.com, like cal.com/_bailey_), your email and a password. Alternatively, you can sign up using your Google account, or using SAML SSO by clicking on the respective buttons. - - -Please note that if you choose a premium username, which is a username that‘s either short or a common name, it costs a monthly fee. This prevents username squatting and ensures that people and brands are often able to get their username without it being taken by someone. You can always start with a non-premium username and then upgrade later on from within the application. - - -## Next steps - -Once you've signed up, you'll go through the new user onboarding flow. Click below to skip to that section of the documentation: - -[Complete your onboarding](https://intercom.help/calcom-inc-e6dea00610aa/en/articles/9929590-complete-your-onboarding) diff --git a/help/images/1.png b/help/images/1.png new file mode 100644 index 0000000000..1bdd95dbc0 Binary files /dev/null and b/help/images/1.png differ diff --git a/help/images/2.png b/help/images/2.png new file mode 100644 index 0000000000..d4e863aa42 Binary files /dev/null and b/help/images/2.png differ diff --git a/help/images/customization-1.png b/help/images/customization-1.png new file mode 100644 index 0000000000..2759d6d116 Binary files /dev/null and b/help/images/customization-1.png differ diff --git a/help/images/customization-2.png b/help/images/customization-2.png new file mode 100644 index 0000000000..65df87fc4d Binary files /dev/null and b/help/images/customization-2.png differ diff --git a/help/images/customization-3.png b/help/images/customization-3.png new file mode 100644 index 0000000000..1432b7a4e3 Binary files /dev/null and b/help/images/customization-3.png differ diff --git a/help/images/i1280x250-dXnl-QuzSMbl_xydd9y.png b/help/images/i1280x250-dXnl-QuzSMbl_xydd9y.png new file mode 100644 index 0000000000..1c0290dfec Binary files /dev/null and b/help/images/i1280x250-dXnl-QuzSMbl_xydd9y.png differ diff --git a/help/images/i1599x807-x2DRUUT-DkbF_yljih9.png b/help/images/i1599x807-x2DRUUT-DkbF_yljih9.png new file mode 100644 index 0000000000..52996633e3 Binary files /dev/null and b/help/images/i1599x807-x2DRUUT-DkbF_yljih9.png differ diff --git a/help/images/i1599x929-tUttNKwBum0Z_p1vwkt.png b/help/images/i1599x929-tUttNKwBum0Z_p1vwkt.png new file mode 100644 index 0000000000..9cdc4fc3b3 Binary files /dev/null and b/help/images/i1599x929-tUttNKwBum0Z_p1vwkt.png differ diff --git a/help/images/i1600x120-WfEdMhsOOLSg_sitk6a.png b/help/images/i1600x120-WfEdMhsOOLSg_sitk6a.png new file mode 100644 index 0000000000..8009bff930 Binary files /dev/null and b/help/images/i1600x120-WfEdMhsOOLSg_sitk6a.png differ diff --git a/help/images/i1600x1253-8BQ3KGqrqGTp_xrhqzd.png b/help/images/i1600x1253-8BQ3KGqrqGTp_xrhqzd.png new file mode 100644 index 0000000000..0b2dc1d4ec Binary files /dev/null and b/help/images/i1600x1253-8BQ3KGqrqGTp_xrhqzd.png differ diff --git a/help/images/i1600x1287-XKGU-PMvAkrB_zq004d.png b/help/images/i1600x1287-XKGU-PMvAkrB_zq004d.png new file mode 100644 index 0000000000..39ba06565e Binary files /dev/null and b/help/images/i1600x1287-XKGU-PMvAkrB_zq004d.png differ diff --git a/help/images/i1600x813-fFKsveiL2GuM_wk8cv1.png b/help/images/i1600x813-fFKsveiL2GuM_wk8cv1.png new file mode 100644 index 0000000000..a2b4daadbd Binary files /dev/null and b/help/images/i1600x813-fFKsveiL2GuM_wk8cv1.png differ diff --git a/help/images/i1600x899-RzQm726OebFh_pej5va.png b/help/images/i1600x899-RzQm726OebFh_pej5va.png new file mode 100644 index 0000000000..e4e133a420 Binary files /dev/null and b/help/images/i1600x899-RzQm726OebFh_pej5va.png differ diff --git a/help/images/i1600x899-UbaoT5R8c9Dq_st91js.png b/help/images/i1600x899-UbaoT5R8c9Dq_st91js.png new file mode 100644 index 0000000000..964fe0fc84 Binary files /dev/null and b/help/images/i1600x899-UbaoT5R8c9Dq_st91js.png differ diff --git a/help/images/i1600x899-oXaqBFnOdR-p_kvdzt6.png b/help/images/i1600x899-oXaqBFnOdR-p_kvdzt6.png new file mode 100644 index 0000000000..1181112572 Binary files /dev/null and b/help/images/i1600x899-oXaqBFnOdR-p_kvdzt6.png differ diff --git a/help/images/i1600x900-6CcRzVIWmCTJ_dnnrqu.png b/help/images/i1600x900-6CcRzVIWmCTJ_dnnrqu.png new file mode 100644 index 0000000000..8207d9e038 Binary files /dev/null and b/help/images/i1600x900-6CcRzVIWmCTJ_dnnrqu.png differ diff --git a/help/images/i1600x900-8ufcUyCOVwV6_hdudno.png b/help/images/i1600x900-8ufcUyCOVwV6_hdudno.png new file mode 100644 index 0000000000..84e552b8d3 Binary files /dev/null and b/help/images/i1600x900-8ufcUyCOVwV6_hdudno.png differ diff --git a/help/images/i1600x900-APQPQxcN1aZt_m0casf.png b/help/images/i1600x900-APQPQxcN1aZt_m0casf.png new file mode 100644 index 0000000000..dfe4486b34 Binary files /dev/null and b/help/images/i1600x900-APQPQxcN1aZt_m0casf.png differ diff --git a/help/images/i1600x900-CYkkzVSEXUuc_epdmrm.png b/help/images/i1600x900-CYkkzVSEXUuc_epdmrm.png new file mode 100644 index 0000000000..d23951bd17 Binary files /dev/null and b/help/images/i1600x900-CYkkzVSEXUuc_epdmrm.png differ diff --git a/help/images/i1600x900-GN1NLgrcf5r4_tmhni3.png b/help/images/i1600x900-GN1NLgrcf5r4_tmhni3.png new file mode 100644 index 0000000000..2872f802e1 Binary files /dev/null and b/help/images/i1600x900-GN1NLgrcf5r4_tmhni3.png differ diff --git a/help/images/i1600x900-IfRWYg8XuCMI_tkwyft.png b/help/images/i1600x900-IfRWYg8XuCMI_tkwyft.png new file mode 100644 index 0000000000..cb7578f517 Binary files /dev/null and b/help/images/i1600x900-IfRWYg8XuCMI_tkwyft.png differ diff --git a/help/images/i1600x900-LOniVJNguQth_oibmdv.png b/help/images/i1600x900-LOniVJNguQth_oibmdv.png new file mode 100644 index 0000000000..f42e91e20b Binary files /dev/null and b/help/images/i1600x900-LOniVJNguQth_oibmdv.png differ diff --git a/help/images/i1600x900-PNSh9u2m_QV2_v80gvk.png b/help/images/i1600x900-PNSh9u2m_QV2_v80gvk.png new file mode 100644 index 0000000000..70e16e5bd1 Binary files /dev/null and b/help/images/i1600x900-PNSh9u2m_QV2_v80gvk.png differ diff --git a/help/images/i1600x900-TqgDJpBoiR-C_onrwit.png b/help/images/i1600x900-TqgDJpBoiR-C_onrwit.png new file mode 100644 index 0000000000..80206db687 Binary files /dev/null and b/help/images/i1600x900-TqgDJpBoiR-C_onrwit.png differ diff --git a/help/images/i1600x900-h7erbVhGt9X5_uth9oa.png b/help/images/i1600x900-h7erbVhGt9X5_uth9oa.png new file mode 100644 index 0000000000..5caa624697 Binary files /dev/null and b/help/images/i1600x900-h7erbVhGt9X5_uth9oa.png differ diff --git a/help/images/i1600x900-iihnWwzsuARg_llvldw.png b/help/images/i1600x900-iihnWwzsuARg_llvldw.png new file mode 100644 index 0000000000..e7ebf5cb4d Binary files /dev/null and b/help/images/i1600x900-iihnWwzsuARg_llvldw.png differ diff --git a/help/images/i1600x900-mdLN0kkooRVB_juid5h.png b/help/images/i1600x900-mdLN0kkooRVB_juid5h.png new file mode 100644 index 0000000000..32aed75182 Binary files /dev/null and b/help/images/i1600x900-mdLN0kkooRVB_juid5h.png differ diff --git a/help/images/i1600x900-oVjaQ0tU3AnO_wrzp85.png b/help/images/i1600x900-oVjaQ0tU3AnO_wrzp85.png new file mode 100644 index 0000000000..e05506d1ca Binary files /dev/null and b/help/images/i1600x900-oVjaQ0tU3AnO_wrzp85.png differ diff --git a/help/images/i1600x900-pDo66wyQ4Zxc_zmljxo.png b/help/images/i1600x900-pDo66wyQ4Zxc_zmljxo.png new file mode 100644 index 0000000000..c09588c5de Binary files /dev/null and b/help/images/i1600x900-pDo66wyQ4Zxc_zmljxo.png differ diff --git a/help/images/i1600x900-wrIlZkLdZ6kL_wf7mxn.png b/help/images/i1600x900-wrIlZkLdZ6kL_wf7mxn.png new file mode 100644 index 0000000000..86b89a8207 Binary files /dev/null and b/help/images/i1600x900-wrIlZkLdZ6kL_wf7mxn.png differ diff --git a/help/images/i1600x900-z2MekYaA6oWf_nzivcl.png b/help/images/i1600x900-z2MekYaA6oWf_nzivcl.png new file mode 100644 index 0000000000..65c57cf505 Binary files /dev/null and b/help/images/i1600x900-z2MekYaA6oWf_nzivcl.png differ diff --git a/help/images/oauth-zapier.png b/help/images/oauth-zapier.png new file mode 100644 index 0000000000..046957358e Binary files /dev/null and b/help/images/oauth-zapier.png differ diff --git a/help/images/quick-1.png b/help/images/quick-1.png new file mode 100644 index 0000000000..adbfe1526d Binary files /dev/null and b/help/images/quick-1.png differ diff --git a/help/images/scim/app-settings-enable-scim.png b/help/images/scim/app-settings-enable-scim.png new file mode 100644 index 0000000000..f99a2d995b Binary files /dev/null and b/help/images/scim/app-settings-enable-scim.png differ diff --git a/help/images/scim/dsync-configure-info.png b/help/images/scim/dsync-configure-info.png new file mode 100644 index 0000000000..c61f2218d5 Binary files /dev/null and b/help/images/scim/dsync-configure-info.png differ diff --git a/help/images/scim/dsync-configure-provider.png b/help/images/scim/dsync-configure-provider.png new file mode 100644 index 0000000000..55ab7b80b3 Binary files /dev/null and b/help/images/scim/dsync-configure-provider.png differ diff --git a/help/images/scim/dsync-configure.png b/help/images/scim/dsync-configure.png new file mode 100644 index 0000000000..39275e0088 Binary files /dev/null and b/help/images/scim/dsync-configure.png differ diff --git a/help/images/scim/group-team-mapping.png b/help/images/scim/group-team-mapping.png new file mode 100644 index 0000000000..3c1c62d6f2 Binary files /dev/null and b/help/images/scim/group-team-mapping.png differ diff --git a/help/images/scim/okta-dsync-options.png b/help/images/scim/okta-dsync-options.png new file mode 100644 index 0000000000..7d45cd5c61 Binary files /dev/null and b/help/images/scim/okta-dsync-options.png differ diff --git a/help/images/scim/okta-property-settings.png b/help/images/scim/okta-property-settings.png new file mode 100644 index 0000000000..81614d8438 Binary files /dev/null and b/help/images/scim/okta-property-settings.png differ diff --git a/help/images/signup-1.png b/help/images/signup-1.png new file mode 100644 index 0000000000..adbfe1526d Binary files /dev/null and b/help/images/signup-1.png differ diff --git a/help/images/signup-2.png b/help/images/signup-2.png new file mode 100644 index 0000000000..748ba09334 Binary files /dev/null and b/help/images/signup-2.png differ diff --git a/help/images/signup-main.png b/help/images/signup-main.png new file mode 100644 index 0000000000..9fd624d6af Binary files /dev/null and b/help/images/signup-main.png differ diff --git a/help/logo/dark.png b/help/logo/dark.png new file mode 100644 index 0000000000..03581321d5 Binary files /dev/null and b/help/logo/dark.png differ diff --git a/help/logo/light.png b/help/logo/light.png new file mode 100644 index 0000000000..d7b69e54d1 Binary files /dev/null and b/help/logo/light.png differ diff --git a/help/mint.json b/help/mint.json new file mode 100644 index 0000000000..3ce8270479 --- /dev/null +++ b/help/mint.json @@ -0,0 +1,182 @@ +{ + "name": "Cal", + "logo": { + "light": "/logo/light.png", + "dark": "/logo/dark.png" + }, + "favicon": "/favicon.png", + "colors": { + "primary": "#141414", + "light": "#FAFAFA", + "dark": "#141414", + "background": { + "light": "#f4f4f4" + } + }, + "feedback": { + "thumbsRating": true, + "suggestEdit": true + }, + "modeToggle": { + "default": "light", + "isHidden": true + }, + "topbarCtaButton": { + "name": "Login", + "url": "https://app.cal.com/auth/login" + }, + "anchors": [ + { + "name": "Community", + "icon": "discord", + "url": "https://discord.com/invite/calcom" + }, + { + "name": "GitHub", + "icon": "github", + "url": "https://github.com/calcom/cal.com" + }, + { + "name": "Blog", + "icon": "newspaper", + "url": "https://cal.com/blog" + } + ], + "navigation": [ + { + "group": "Documentation", + "pages": [ + "welcome", + { + "group": "Quick Start", + "icon": "play", + "iconType": "solid", + "pages": [ + "quick-start/quickstart", + "quick-start/sign-up", + "quick-start/complete-onboarding", + "quick-start/customization", + "quick-start/calendar" + ] + }, + { + "group": "Event Types", + "icon": "calendar", + "iconType": "solid", + "pages": [ + "event-types/event-types", + "event-types/booking-questions", + "event-types/add-events", + "event-types/managed-events", + "event-types/adding-zoom", + "event-types/booking-frequency", + "event-types/round-robin", + "event-types/dynamic", + "event-types/collective-events", + "event-types/create-first-event", + "event-types/create-recurring", + "event-types/create-secret", + "event-types/custom-name", + "event-types/custom-time-slots", + "event-types/disable-confirmation", + "event-types/disable-guests", + "event-types/display-issues", + "event-types/dynamic", + "event-types/event-buffer", + "event-types/hide-notes", + "event-types/how-to-add-location", + "event-types/how-to-receive-payments", + "event-types/how-to-requires", + "event-types/how-to-set-buffer", + "event-types/how-to-time-slot-intervals", + "event-types/limit-future-bookings", + "event-types/location-of-event", + "event-types/min-notice", + "event-types/multiple-durations", + "event-types/offer-seats", + "event-types/recurring-events", + "event-types/require-criteria", + "event-types/secret-events", + "event-types/setup-location", + "event-types/single-use", + "event-types/split-name", + "event-types/sponsor", + "event-types/symbolic-issues" + ] + }, + { + "group": "Availabilities", + "icon": "magnifying-glass", + "iconType": "solid", + "pages": [ + "availabilities/date-overrides", + "availabilities/multiple-schedules", + "availabilities/multiple-slots" + ] + }, + { + "group": "Bookings", + "icon": "calendar-check", + "iconType": "solid", + "pages": [ + "bookings/no-show", + "bookings/paid-bookings", + "bookings/prefill-fields" + ] + }, + { + "group": "Embedding", + "icon": "code", + "iconType": "solid", + "pages": [ + "embedding/adding-embed", + "embedding/adding-slots", + "embedding/embed-events", + "embedding/embed-instructions", + "embedding/embed-snippet-generator", + "embedding/prefill-booking-form-embed" + ] + }, + { + "group": "Auth and Provisioning", + "icon": "user-lock", + "iconType": "solid", + "pages": [ + "auth-and-provision/scim-okta", + "auth-and-provision/oidc-with-okta" + ] + }, + { + "group": "Apps and Integrations", + "icon": "code-branch", + "iconType": "solid", + "pages": [ + "apps-and-integrations/apps", + "apps-and-integrations/app-store", + "apps-and-integrations/adding-first-app", + "apps-and-integrations/assign-people", + "apps-and-integrations/build-greeter-app", + "apps-and-integrations/how-to-build-an-app", + "apps-and-integrations/syncing-third-party" + ] + }, + { + "group": "Developers", + "icon": "terminal", + "iconType": "solid", + "pages": [ + "apps-and-integrations/oauth", + "apps-and-integrations/open-source", + "webhooks" + ] + } + ] + } + ], + "footerSocials": + { + "twitter": "https://twitter.com/calcom?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor", + "linkedin": "https://www.linkedin.com/company/cal-com/", + "discord": "https://discord.com/invite/calcom" + } + } \ No newline at end of file diff --git a/help/quick-start/calendar.mdx b/help/quick-start/calendar.mdx new file mode 100644 index 0000000000..b39c8b8b0d --- /dev/null +++ b/help/quick-start/calendar.mdx @@ -0,0 +1,8 @@ +--- +title: Calendar +description: Here you can find articles on how to connect various calendars to your Cal.com account. +--- + +[Connect Apple Calendar with Cal.com](https://intercom.help/cal-dot-com/en/articles/9929520-connect-apple-calendar-with-cal-com) + +[Providing necessary google calendar integration permissions](https://intercom.help/cal-dot-com/en/articles/9929516-providing-necessary-google-calendar-integration-permissions) \ No newline at end of file diff --git a/help/quick-start/complete-onboarding.mdx b/help/quick-start/complete-onboarding.mdx new file mode 100644 index 0000000000..bb82c5beb2 --- /dev/null +++ b/help/quick-start/complete-onboarding.mdx @@ -0,0 +1,30 @@ +--- +title: Complete your onboarding +description: Once you create a Cal.com account, you are taken to the onboarding flow, where you'll need to go through the process of setting up some basics to get you up and running. +--- + +## Set up your name and Timezone + +Here all you need to do is enter your full name to be displayed on your booking page, and confirm the Timezone that you're in. + +![](https://res.cloudinary.com/djp21wtxm/image/upload/w_1600/v1676954706/i1600x900-akHcmOHfAXkX_g7isuj.png) + +## Connect a calendar + +You can connect your Cal.com account with any of your calendars to automatically check for busy times and create new events as they are scheduled. If you wish to connect a calendar at a later stage, you can always click on **I'll connect my calendar later** and it'll skip to the next step. + +![](https://res.cloudinary.com/djp21wtxm/image/upload/w_1600/v1676954740/i1600x900-UcoZykKljPsG_pftvub.png) + +## Set up your availability + +You can set your availability schedule in this step. You can always create or modify your availability at a later stage in the application as well. If you wish you can learn more about [Setting up your availability](https://cal.com/docs/how-to-guides/setting-up-your-availability) or check out the deep dive into the [Availability](https://cal.com/docs/core-features/availability) feature. + +![](https://res.cloudinary.com/djp21wtxm/image/upload/w_1600/v1676954778/i1600x900--rsrw7G9JKrW_d8fm8m.png) + +## Final profile details + +Finally, you can personalize your Cal.com booking link by providing a brief description about yourself and uploading a photograph so the people know who they're booking with. + +![](https://res.cloudinary.com/djp21wtxm/image/upload/w_1600/v1676954843/i1600x900-YhAs1gRVQJwU_wf80pn.png) + +That's it. You're fully onboarded and all set to start your scheduling journey! \ No newline at end of file diff --git a/help/quick-start/customization.mdx b/help/quick-start/customization.mdx new file mode 100644 index 0000000000..549454b985 --- /dev/null +++ b/help/quick-start/customization.mdx @@ -0,0 +1,18 @@ +--- +title: Customization +--- + +Cal.com offers customizable appearance baked into the product. You can select from a few options and dictate how your booking pages will look like: + +### Theme +Select the theme of your booking pages. You can either force the booking page to be in Light mode or Dark mode, where visitors to your booking page would only ever see the selected mode. Alternatively, you could select the System default (selected by default by Cal.com) where visitors to your website would see the version as per their system default settings (Light or Dark). + +Select the theme of your booking pages + + +### Brand Colors +Select your Brand Color for both light theme and dark theme, which overrides the default brand color of Cal.com in your public booking pages. This adds a custom feel to the booking experience. + +Select your Brand Color for both light theme and dark theme + +You can easily use these in combination with [embed](https://cal.com/docs/core-features/embed) to make the Cal.com embed feel like a part of your website by simply updating these settings to match your website. diff --git a/help/quick-start/quickstart.mdx b/help/quick-start/quickstart.mdx new file mode 100644 index 0000000000..a8e89fac3b --- /dev/null +++ b/help/quick-start/quickstart.mdx @@ -0,0 +1,20 @@ +--- +title: Quick Start +--- +## Sign up for a free Cal.com account (recommended) + + +Sign up for a Cal.com account + +The easiest way to get started with Cal.com is with our hosted plan. We offer a generous free tier where you get unlimited scheduling with no limits and all of our features built for individuals, with the option to upgrade to a teams plan for collaboration features. + +[Sign up here](https://cal.com/signup) to create your free account. + + +Sign up for a Cal.com account + +## Self-host Cal.com on your infrastructure +For full data ownership and control over your scheduling, you can [self-host Cal.com](https://cal.com/docs/self-hosting) on your own infrastructure. + +### Quick start for contributors +If you wish to contribute to Cal.com, please take a look at our [guide](https://cal.com/docs/contributing/quickstart) to fast-track the onboarding process for new contributors. diff --git a/help/quick-start/sign-up.mdx b/help/quick-start/sign-up.mdx new file mode 100644 index 0000000000..96c6c5a0aa --- /dev/null +++ b/help/quick-start/sign-up.mdx @@ -0,0 +1,16 @@ +--- +title: Sign up +--- + +Signing up for a Cal.com account is easy, and can be done in 30 seconds. + +Sign up for a Cal.com account + +To get started, head to [cal.com/signup](https://cal.com/signup), where you'll be able to enter your desired username (the part that comes after cal.com, like cal.com/bailey), your email and a password. Alternatively, you can sign up using your Google account, or using SAML SSO by clicking on the respective buttons. + +Please note that if you choose a **premium username**, which is a username that‘s either short or a common name, it costs a monthly fee. This prevents username squatting and ensures that people and brands are often able to get their username without it being taken by someone. You can always start with a non-premium username and then upgrade later on from within the application. + + +### Next steps +Once you've signed up, you'll go through the new user onboarding flow. Click below to skip to that section of the documentation. +[Complete your onboarding](https://intercom.help/calcom-inc-e6dea00610aa/en/articles/9929590-complete-your-onboarding) \ No newline at end of file diff --git a/help/webhooks.mdx b/help/webhooks.mdx new file mode 100644 index 0000000000..78a49414a9 --- /dev/null +++ b/help/webhooks.mdx @@ -0,0 +1,186 @@ +--- +title: "Webhooks" +--- + + +Webhooks offer a great way to automate the flow with other apps when invitees schedule, cancel or reschedule events, or when the meeting ends. + + + + + +The webhook subscription allows you to listen to specific trigger events, such as when a booking has been scheduled, for example. You can always listen to the webhook by providing a custom subscriber URL with your own development work. However, if you wish to trigger automations without any development work, you can use the integration with Zapier which connects Cal.com to your apps. + + +Please note that the webhooks can be associated with user as well as individual event types, including team event types. + + +### Creating a webhook subscription + +To create a new webhook subscription, visit `/settings/developer/webhooks` and proceed to enter the following details: + +1. Subscriber URL: The listener URL where the payload will be sent to, when an event trigger is triggered. + +2. Event triggers: You can decide which triggers specifically to listen to. Currently, we offer listening to `Booking Cancelled`, `Booking Created`, `Booking Rescheduled`, `Booking Rejected`, `Booking Requested`, `Booking Payment Initiated`, `Booking Paid`, `Meeting Started`, `Recording Ready`, `Form Submitted`, `Meeting Ended` and `Instant Meeting Created`. + +3. Secret: You can provide a secret key with this webhook and then [verify it](/docs/core-features/webhooks#verifying-the-authenticity-of-the-received-payload) on the subscriber URL when receiving a payload to confirm if the payload is authentic or adulterated. You can leave it blank, if you don't wish to secure the webhook with a secret key. + +4. Custom Payload: You have the option to [customize the payload](/docs/core-features/webhooks#adding-a-custom-payload-template) you receive when a subscribed event is triggered. + +### An example webhook payload + +```json +{ + "triggerEvent": "BOOKING_CREATED", + "createdAt": "2023-05-24T09:30:00.538Z", + "payload": { + "type": "60min", + "title": "60min between Pro Example and John Doe", + "description": "", + "additionalNotes": "", + "customInputs": {}, + "startTime": "2023-05-25T09:30:00Z", + "endTime": "2023-05-25T10:30:00Z", + "organizer": { + "id": 5, + "name": "Pro Example", + "email": "pro@example.com", + "username": "pro", + "timeZone": "Asia/Kolkata", + "language": { + "locale": "en" + }, + "timeFormat": "h:mma" + }, + "responses": { + "name": { + "label": "your_name", + "value": "John Doe" + }, + "email": { + "label": "email_address", + "value": "john.doe@example.com" + }, + "location": { + "label": "location", + "value": { + "optionValue": "", + "value": "inPerson" + } + }, + "notes": { + "label": "additional_notes" + }, + "guests": { + "label": "additional_guests" + }, + "rescheduleReason": { + "label": "reschedule_reason" + } + }, + "userFieldsResponses": {}, + "attendees": [ + { + "email": "john.doe@example.com", + "name": "John Doe", + "timeZone": "Asia/Kolkata", + "language": { + "locale": "en" + } + } + ], + "location": "Calcom HQ", + "destinationCalendar": { + "id": 10, + "integration": "apple_calendar", + "externalId": "https://caldav.icloud.com/1234567/calendars/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/", + "userId": 5, + "eventTypeId": null, + "credentialId": 1 + }, + "hideCalendarNotes": false, + "requiresConfirmation": null, + "eventTypeId": 7, + "seatsShowAttendees": true, + "seatsPerTimeSlot": null, + "uid": "bFJeNb2uX8ANpT3JL5EfXw", + "appsStatus": [ + { + "appName": "Apple Calendar", + "type": "apple_calendar", + "success": 1, + "failures": 0, + "errors": [], + "warnings": [] + } + ], + "eventTitle": "60min", + "eventDescription": "", + "price": 0, + "currency": "usd", + "length": 60, + "bookingId": 91, + "metadata": {}, + "status": "ACCEPTED" + } +} + +``` + +### Verifying the authenticity of the received payload + +1. Simply add a new **secret key** to your webhook and save. + +2. Wait for the webhook to be triggered (event created, cancelled, rescheduled, or meeting ended) + +3. Use the **secret key** to create an `hmac`, and update that with the webhook payload received to create an SHA256. + +4. Compare the hash received in the header of the webhook `(X-Cal-Signature-256)` with the one created using the **secret key** and the body of the payload. If they don't match, the received payload was adulterated and cannot be trusted. + +### Adding a custom payload template + +Customizable webhooks are a great way reduce the development effort and in many cases remove the need for a developer to build an additional integration service. + +An example of a custom payload template is provided here: + +```json +{ + "content": "A new event has been scheduled", + "type": "{{type}}", + "name": "{{title}}", + "organizer": "{{organizer.name}}", + "booker": "{{attendees.0.name}}" +} +``` + +where `{{type}}` represents the event type slug and `{{title}}` represents the title of the event type. Note that the variables should be added with a double parenthesis as shown above. Here’s a breakdown of the payload that you would receive via an incoming webhook, with an exhaustive list of all the supported variables provided below: + +#### Webhook variable list +| Variable | Type | Description | +|----------|------|-------------| +| triggerEvent | String | The name of the trigger event [BOOKING_CREATED, BOOKING_RESCHEDULED, BOOKING_CANCELLED, MEETING_ENDED, BOOKING_REJECTED, BOOKING_REQUESTED, BOOKING_PAYMENT_INITIATED, BOOKING_PAID, MEETING_STARTED, RECORDING_READY, FORM_SUBMITTED] | +| createdAt | Datetime | The Time of the webhook | +| type | String | The event type slug | +| title | String | The event type name | +| startTime | Datetime | The event's start time | +| endTime | Datetime | The event's end time | +| description | String | The event's description as described in the event type settings | +| location | String | Location of the event | +| organizer | Person | The organizer of the event | +| attendees | Person[] | The event booker & any guests | +| uid | String | The UID of the booking | +| rescheduleUid | String | The UID for rescheduling | +| cancellationReason | String | Reason for cancellation | +| rejectionReason | String | Reason for rejection | +| team.name | String | Name of the team booked | +| team.members | String[] | Members of the team booked | +| metadata | JSON | Contains a metadata of the booking, including the meeting URL (videoCallUrl) in case of Google Meet and Cal Video | + +#### Person Structure + +| Variable | Type | Description | +|----------|------|-------------| +| name | String | Name of the individual | +| email | Email | Email of the individual | +| timezone | String | Timezone of the individual ("America/New_York", "Asia/Kolkata", etc.) | +| language?.locale | String | Locale of the individual ("en", "fr", etc.) | diff --git a/help/welcome.mdx b/help/welcome.mdx new file mode 100644 index 0000000000..e9dc7c80c5 --- /dev/null +++ b/help/welcome.mdx @@ -0,0 +1,35 @@ +--- +title: Documentation +sidebarTitle: Welcome +icon: house +iconType: solid +description: Welcome to the official Cal.com docs. To help get you started, we've put together a few resources to help you learn about how to use Cal.com. We have also provided advanced documentation covering how to build on top of Cal.com both in the codebase, by API and more. These guides will go into depth on how you can best integrate and extend Cal.com for your needs. +mode: wide +--- + +![](/images/1.png) + +## Core Features +If you would like to get right into exploring our core features which are available to you for free, you can head straight to our Core Features section: + +## Enterprise Features +Cal.com offers a variety of premium features which can be accessed through aquiring the enterprise license. To get an idea of what you get in return for the enterprise license, you can head to our Enterprise Features section: + + +## Cal.com API +The Cal.com API is a REST-styled API that gives full control over the entire Cal.com platform by providing all the resources available to our customers, exposed as simple HTTP endpoints. The Cal.com API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs. + +## Want to deep dive? +Dive a little deeper and start exploring our API reference to get an idea of everything that's possible with the API: + + + +Ask questions, give feedback,contribute + + +Follow for releaseEvents, announcements, demos + + +Get access to the full class.com source code + + \ No newline at end of file