### Get Started Locally with Prisma Studio Source: https://www.prisma.io/studio This command-line interface (CLI) command allows you to quickly set up a new Prisma project with a pre-seeded database and example data, then launch Prisma Studio. It's ideal for getting started with local development and exploring Prisma's capabilities. ```bash npx try-prisma@latest --template orm/starter --name hello-prisma \ && cd hello-prisma \ && npx prisma studio ``` -------------------------------- ### API Setup: Copy Environment Files Source: https://context7_llms Copies example environment files to their respective active files for API V2 and the main project configuration. This is a prerequisite for API setup. ```shell cp apps/api/v2/.env.example apps/api/v2/.env cp .env.example .env ``` -------------------------------- ### Start Local Development with Docker Source: https://cal.com/docs/developing/local-development Initiates a local development environment using Docker and Docker Compose. This setup includes a local Postgres instance and pre-configured test users. Credentials will be logged to the console upon execution. ```bash yarn dx ``` -------------------------------- ### API Environment Variable Setup Source: https://context7_llms Copies example environment variable files to be used for API configuration. These files contain default settings that can be customized. ```shell cp apps/api/v2/.env.example apps/api/v2/.env cp .env.example .env ``` -------------------------------- ### Cal.com API Local Setup Commands Source: https://context7_llms Commands to set up the Cal.com API in a local instance. This involves cloning the repository, copying environment files, and starting the API server. ```bash yarn dev cp apps/api/v1/.env.example apps/api/v1/.env yarn workspace @calcom/api dev ``` -------------------------------- ### Organization Setup API Source: https://context7_llms Configuration guide for enabling and setting up the organizations feature in a self-hosted Cal.com instance. ```APIDOC ## Organization Setup ### Description This guide covers the setup of the Organizations feature in Cal.com, allowing for multi-tenant environments. ### Prerequisites - A working Cal.com instance. - Admin access to the Cal.com instance. - Ability to modify environment variables and restart the server. ### Step 1: Enable Organizations Feature 1. Log in as an administrator. 2. Navigate to **Settings** → **Admin** → **Features**. 3. Enable the **Organizations** feature flag. ### Step 2: Configure Environment Variables Add the following to your `.env` file: ```bash NEXT_PUBLIC_WEBAPP_URL=http://app.cal.local:3000 NEXT_PUBLIC_WEBSITE_URL=http://app.cal.local:3000 NEXTAUTH_URL=http://app.cal.local:3000 ORGANIZATIONS_ENABLED=1 ``` ### Step 3: Configure Local DNS Add the following to your hosts file (`/etc/hosts` on Linux/Mac, `C:\Windows\System32\drivers\etc\hosts` on Windows): ```bash 127.0.0.1 app.cal.local ``` ### Step 4: Start/Restart Development Server Run the following command: ```bash yarn dev ``` ### Step 5: Create an Organization 1. Log in as a regular user. 2. Visit `http://app.cal.local:3000/settings/organizations/new`. 3. Follow the onboarding steps, including choosing an organization slug (e.g., `myorg`). **Note**: After creation, Cal.com links will redirect to the organization's URL (e.g., `yourdomain.cal.local:3000`). ``` -------------------------------- ### Setup Database Schema (Yarn) Source: https://cal.com/docs/developing/local-development Initializes and sets up the database schema using Prisma. This command is run within the Cal.com project directory. ```bash yarn workspace @calcom/prisma db push ``` -------------------------------- ### Install Dependencies (Yarn) Source: https://cal.com/docs/developing/local-development Installs all project dependencies required for Cal.com to run locally using Yarn. This command should be run after navigating into the cloned repository directory. ```bash cd cal.com yarn ``` -------------------------------- ### Run Development Server Source: https://cal.com/docs/developing/local-development Starts the Cal.com development server. This command is used for local development and testing of the application features. ```bash yarn dev ``` -------------------------------- ### Run API Server v1 Source: https://cal.com/docs/developing/local-development Starts the API server for version 1. This command is used to run the backend service locally for development and testing. ```bash yarn workspace @calcom/api dev ``` -------------------------------- ### Start Local Database with Docker Compose Source: https://github.com/calcom/cal.com Initiates a local PostgreSQL database instance using Docker Compose. This is a prerequisite for certain deployment scenarios. Ensure Docker is installed and configured. ```bash docker compose up -d database ``` -------------------------------- ### Install Dependencies with Yarn Source: https://context7_llms This command installs all project dependencies using Yarn. For Vercel deployments, a specific environment variable might be needed if the installation fails. ```bash yarn install ``` ```bash YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install ``` -------------------------------- ### Copy Environment Files Source: https://cal.com/docs/developing/local-development Copies example environment files to their respective configuration files for API versions v1 and v2, as well as the root environment file. This step is crucial for configuring application settings. ```bash cp apps/api/.env.example apps/api/{version}/.env cp .env.example .env ``` -------------------------------- ### Run API Server v2 (Requires Docker) Source: https://cal.com/docs/developing/local-development Starts the API server for version 2. This command requires the database to be running in Docker. It will typically be accessible at http://localhost:3003. ```bash yarn workspace @calcom/api-v2 dev ``` -------------------------------- ### Example Cal.com API Request to Create User Source: https://context7_llms This snippet demonstrates a POST request to the Cal.com API to create a new user, including necessary headers and a JSON body with user details like email and timezone. It's crucial for initiating user setup within the Cal.com platform. ```javascript POST https://api.cal.com/v2/oauth-clients/7Dcxu2fclb10001kha9x1dreyl4/users Headers: { "x-cal-secret-key”: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX} Body: { "email": "bob@example.com", "timeZone": "America/New_York" } ``` -------------------------------- ### Install Docker on Debian/Ubuntu Source: https://context7_llms Installs Docker Engine on your virtual machine. This involves updating the package list and then installing the 'docker.io' package. Ensure your system is up-to-date before installation. ```bash sudo apt-get update sudo apt-get install docker.io ``` -------------------------------- ### Example Response for Get All Event Types Source: https://cal.com/docs/api-reference/v2/event-types/get-all-event-types An example JSON response for the 'Get All Event Types' endpoint, illustrating the structure of event type data including details like ID, title, description, location, booking fields, recurrence, and pricing. ```json { "status": "success", "data": [ { "id": 1, "lengthInMinutes": 60, "title": "Learn the secrets of masterchief!", "slug": "learn-the-secrets-of-masterchief", "description": "Discover the culinary wonders of Argentina by making the best flan ever!", "locations": [ { "type": "address", "address": "123 Example St, City, Country", "public": true } ], "bookingFields": [ { "type": "name", "label": "", "placeholder": "", "isDefault": true, "slug": "name", "required": true, "disableOnPrefill": true } ], "disableGuests": true, "recurrence": { "interval": 10, "occurrences": 10, "frequency": "yearly" }, "metadata": {}, "price": 123, "currency": "", "lockTimeZoneToggleOnBookingPage": true, "forwardParamsSuccessRedirect": {}, "successRedirectUrl": {}, "isInstantEvent": true, "scheduleId": 123, "hidden": true, "bookingRequiresAuthentication": true, "ownerId": 10, "users": [ "" ], "lengthInMinutesOptions": [ 15, 30, 60 ], "slotInterval": 60, "minimumBookingNotice": 0, "beforeEventBuffer": 0, "afterEventBuffer": 0, "seatsPerTimeSlot": {}, "seatsShowAvailabilityCount": true, "bookingLimitsCount": {}, "bookerActiveBookingsLimit": { "maximumActiveBookings": 3, "offerReschedule": true }, "onlyShowFirstAvailableSlot": true, "bookingLimitsDuration": {}, "bookingWindow": [ { "type": "businessDays", "value": 5, "rolling": true } ], "bookerLayouts": { "defaultLayout": "month", "enabledLayouts": [ "month" ] }, "confirmationPolicy": {}, "requiresBookerEmailVerification": true, "hideCalendarNotes": true, "color": { "lightThemeHex": "#292929", "darkThemeHex": "#fafafa" }, "seats": { "seatsPerTimeSlot": 4, "showAttendeeInfo": true, "showAvailabilityCount": true }, "offsetStart": 123, "customName": "", "destinationCalendar": { "integration": "", "externalId": "" }, "useDestinationCalendarEmail": true, "hideCalendarEventDetails": true, "hideOrganizerEmail": true, "calVideoSettings": { "disableRecordingForOrganizer": true, "disableRecordingForGuests": true, "redirectUrlOnExit": {}, "enableAutomaticRecordingForOrganizer": true, "enableAutomaticTranscription": true, "disableTranscriptionForGuests": true, "disableTranscriptionForOrganizer": true } } ] } ``` -------------------------------- ### Install HTTP Client Libraries Source: https://context7_llms Instructions for installing the axios library for Node.js via npm or yarn, and the requests library for Python via pip. ```bash # Install via NPM npm install --save axios # Install via Yarn yarn add axios ``` ```bash # Install via pip pip install --upgrade requests ``` -------------------------------- ### Prepare Environment Variables File Source: https://context7_llms Copies the example environment variables file (.env.example) to a new file named .env. This file will be used to store runtime configuration for the Cal.com application. Users must then edit the .env file to customize settings. ```bash cp .env.example .env ``` -------------------------------- ### Open Prisma Studio for Database Management (Shell) Source: https://hub.docker.com/r/calcom/cal.com Launch Prisma Studio, a GUI tool for viewing and editing your database content. This is helpful for setting up initial data like users. ```shell yarn db-studio ``` -------------------------------- ### SAML Login Setup Source: https://context7_llms Steps to configure SAML-based Single Sign-On for your Cal.com instance. ```APIDOC ## Setting up SAML login 1. **Database Setup**: Set `SAML_DATABASE_URL` to a separate PostgreSQL database. Example: `postgresql://postgres:@localhost:5450/cal-saml` For self-signed certificates, add `?sslmode=no-verify`. 2. **Admin Configuration**: Set `SAML_ADMINS` to a comma-separated list of admin emails for SAML metadata upload. 3. **IdP Configuration**: Create a SAML application with your Identity Provider (IdP). Refer to [SAML Setup](/self-hosting/sso-setup#saml-registration-with-identity-providers). 4. **User Access**: Configure access to the IdP SAML app for all intended users. 5. **Metadata**: Keep the XML metadata from your IdP accessible. 6. **Cal.com Settings**: Log in as an admin (from `SAML_ADMINS`) and navigate to Settings -> Security. 7. **Upload Metadata**: Paste the IdP XML metadata into the SAML configuration section and click Save. 8. **Login**: Provisioned users can now log in using SAML. ``` -------------------------------- ### Get all bookings response (JSON) Source: https://cal.com/docs/api-reference/v2/bookings/get-all-bookings Example JSON response for the 'Get all bookings' API call. It contains a 'data' array with booking objects, each including details like ID, UID, title, host, attendees, timestamps, and event type information. It also includes pagination details. ```json { "status": "success", "data": [ { "id": 123, "uid": "booking_uid_123", "title": "Consultation", "description": "Learn how to integrate scheduling into marketplace.", "hosts": [ { "id": 1, "name": "Jane Doe", "email": "jane100@example.com", "username": "jane100", "timeZone": "America/Los_Angeles" } ], "status": "accepted", "start": "2024-08-13T15:30:00Z", "end": "2024-08-13T16:30:00Z", "duration": 60, "eventTypeId": 50, "eventType": { "id": 1, "slug": "some-event" }, "location": "https://example.com/meeting", "absentHost": true, "createdAt": "2024-08-13T15:30:00Z", "updatedAt": "2024-08-13T15:30:00Z", "attendees": [ { "name": "John Doe", "email": "john@example.com", "timeZone": "America/New_York", "absent": false, "language": "en", "phoneNumber": "+1234567890" } ], "bookingFieldsResponses": { "customField": "customValue" }, "cancellationReason": "User requested cancellation", "cancelledByEmail": "canceller@example.com", "reschedulingReason": "User rescheduled the event", "rescheduledByEmail": "rescheduler@example.com", "rescheduledFromUid": "previous_uid_123", "rescheduledToUid": "new_uid_456", "meetingUrl": "https://example.com/recurring-meeting", "metadata": { "key": "value" }, "rating": 4, "icsUid": "ics_uid_123", "guests": [ "guest1@example.com", "guest2@example.com" ] } ], "pagination": { "totalItems": 123, "remainingItems": 103, "returnedItems": 10, "itemsPerPage": 10, "currentPage": 2, "totalPages": 13, "hasNextPage": true, "hasPreviousPage": true }, "error": {} } ``` -------------------------------- ### Start Docker Service Source: https://context7_llms Starts the Docker daemon service on your virtual machine. This command ensures that Docker is running and ready to manage containers. ```bash sudo systemctl start docker ``` -------------------------------- ### Custom Styles Example for Booking Form Source: https://cal.com/docs/platform/atoms/booker An example demonstrating how to apply custom styles to the booking form, likely involving importing style-related components and applying them to specific elements. This snippet focuses on the setup and initial styling imports. ```javascript import { \n } from \"@mui/material\",\nimport { LocalizationProvider } from \"@mui/x-date-pickers\",\nimport { AdapterDateFns } from \"@mui/x-date-pickers/AdapterDateFns\",\nimport { DatePicker } from \"@mui/x-date-pickers/DatePicker\",\nimport { TimePicker } from \"@mui/x-date-pickers/TimePicker\",\nimport { DateTimePicker } from \"@mui/x-date-pickers/DateTimePicker\",\nimport dayjs from \"dayjs\",\nimport clsx from \"clsx\"\n import Button from \"../components/Button\",\nimport Input from \"../components/Input\",\nimport \"./style.css\" const MuiPickers = (props) => { const { className, children, ...rest } = props return (
{children}
) } const BookingForm = () => { const [value, setValue] = React.useState(dayjs('2022-04-17T15:30')) const handleDateChange = (newValue) => { setValue(newValue) } return ( } /> ) } export default BookingForm ``` -------------------------------- ### Clone Repository and Install Dependencies (Shell) Source: https://hub.docker.com/r/calcom/cal.com Clone the Cal.com repository from GitHub and install project dependencies using Yarn. This is the initial step for setting up the project locally. ```shell git clone git@github.com:calcom/cal.com.git cd cal.com yarn ``` -------------------------------- ### Build and Start Production Server Source: https://cal.com/docs/self-hosting/upgrading Builds a production-ready version of the Cal.com application and then starts the server. This is intended for deployment. ```bash yarn build yarn start ``` -------------------------------- ### Clone Repository using Git CLI (Output Example) Source: https://help.github.com/articles/cloning-a-repository This shows the expected output when successfully cloning a repository using the Git CLI. The output indicates the cloning process, object counting, compression, and unpacking. ```bash $ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY > Cloning into `Spoon-Knife`... > remote: Counting objects: 10, done. > remote: Compressing objects: 100% (8/8), done. > remove: Total 10 (delta 1), reused 10 (delta 1) > Unpacking objects: 100% (10/10), done. ``` -------------------------------- ### Get Busy Times (GET /v2/calendars/busy-times) Source: https://cal.com/docs/platform/atoms/booker Retrieves busy times from one or more calendars. Requires specifying the time range and calendar credentials/external IDs. Example URL: `https://api.cal.com/v2/calendars/busy-times?loggedInUsersTz=Europe%2FMadrid&dateFrom=2024-12-18&dateTo=2024-12-18&calendarsToLoad[0][credentialId]=135&calendarsToLoad[0][externalId]=skrauciz%40gmail.com` ```shell curl -X GET "https://api.cal.com/v2/calendars/busy-times?loggedInUsersTz=Europe%2FMadrid&dateFrom=2024-12-18&dateTo=2024-12-18&calendarsToLoad[0][credentialId]=135&calendarsToLoad[0][externalId]=skrauciz%40gmail.com" \ -H "Authorization: Bearer YOUR_API_KEY" ``` -------------------------------- ### Valid HTML Example Source: https://google.github.io/styleguide/htmlcssguide.html This snippet demonstrates valid HTML structure. It's important to use valid HTML whenever possible to ensure proper rendering and compatibility across browsers. ```html Test This is only a test. ``` -------------------------------- ### GET /v2/calendars/busy-times Source: https://cal.com/docs/platform/guides/booking-redirects Retrieves busy times from a calendar. The example request URL shows parameters for timezone, date range, and calendar credentials. ```APIDOC ## GET /v2/calendars/busy-times ### Description Fetches information about periods when a calendar is marked as busy. The endpoint requires details about the user's timezone, a date range, and specific calendar credentials to query. ### Method GET ### Endpoint `/v2/calendars/busy-times` ### Parameters #### Query Parameters - **loggedInUsersTz** (string) - Required - The timezone of the logged-in user (e.g., `Europe/Madrid`). - **dateFrom** (string) - Required - The start date for the busy time query (YYYY-MM-DD). - **dateTo** (string) - Required - The end date for the busy time query (YYYY-MM-DD). - **calendarsToLoad[0][credentialId]** (integer) - Required - The ID of the calendar credential to load. - **calendarsToLoad[0][externalId]** (string) - Required - The external ID of the calendar to load. ### Request Example ``` GET /v2/calendars/busy-times?loggedInUsersTz=Europe%2FMadrid&dateFrom=2024-12-18&dateTo=2024-12-18&calendarsToLoad[0][credentialId]=135&calendarsToLoad[0][externalId]=skrauciz%40gmail.com ``` ### Response #### Success Response (200) (Response structure not detailed in the provided documentation) #### Response Example (Response example not provided in the documentation) ``` -------------------------------- ### Configure Database Connection String (Shell) Source: https://hub.docker.com/r/calcom/cal.com Set the DATABASE_URL in your .env file to connect to your PostgreSQL database. The example shows the format 'postgresql://:@:/'. ```shell DATABASE_URL='postgresql://:@:' ``` -------------------------------- ### Build Production Project Source: https://context7_llms Build a production-ready version of the project. It is recommended to ensure a successful production build before submitting code changes. ```bash yarn build ``` -------------------------------- ### GET /v2/calendars/{calendar}/save Source: https://cal.com/docs/platform/guides/booking-redirects Saves Google or Outlook calendar credentials. This endpoint is likely part of the calendar integration setup process. ```APIDOC ## GET /v2/calendars/{calendar}/save ### Description Saves the credentials for a Google or Outlook calendar. This endpoint is part of the process for integrating these calendar services with the platform. ### Method GET ### Endpoint `/v2/calendars/{calendar}/save` ### Parameters #### Path Parameters - **calendar** (string) - Required - The identifier of the calendar to save credentials for. ### Request Example (No request body is specified for this endpoint in the provided documentation) ### Response #### Success Response (200) (Response structure not detailed in the provided documentation) #### Response Example (Response example not provided in the documentation) ``` -------------------------------- ### Run API Server v2 on Windows Source: https://cal.com/docs/developing/local-development Configures and starts the API server v2 on Windows. This involves modifying the 'dev' script in `apps/api/package.json` to explicitly set the PORT environment variable to 3003. ```bash "dev": "set PORT=3003 && next dev" ``` -------------------------------- ### Example Payload for Host No-Show (JSON) Source: https://context7_llms This JSON payload represents a scenario where the host did not join a Cal Video meeting within the configured time after the booking started. It includes details about the event, booking, attendees, and the specific webhook that was triggered. ```json { "triggerEvent": "AFTER_HOSTS_CAL_VIDEO_NO_SHOW", "createdAt": "2025-12-01T15:23:30.320Z", "payload": { "title": "30min between Owner 1 and test", "bookingId": 32, "bookingUid": "qVyXscm1ryg2QoQ4K8uHLW", "startTime": "2025-12-02T04:00:00.000Z", "attendees": [ { "id": 32, "email": "test@example.com", "name": "test", "timeZone": "Asia/Kolkata", "phoneNumber": null, "locale": "en', "bookingId": 32, "noShow": false } ], "endTime": "2025-12-02T04:30:00.000Z", "participants": [], "hostEmail": "owner1-dunder@example.com", "eventType": { "id": 50, "teamId": null, "parentId": null, "calVideoSettings": null }, "webhook": { "id": "2bdfc20b-aa4a-4863-a499-932cb1d4e69a", "subscriberUrl": "https://webhook.site/example", "appId": null, "time": 5, "timeUnit": "MINUTE", "eventTriggers": [ "AFTER_HOSTS_CAL_VIDEO_NO_SHOW", "AFTER_GUESTS_CAL_VIDEO_NO_SHOW" ], "payloadTemplate": null }, "message": "Host with email owner1-dunder@example.com didn't join the call or didn't join before 2025-12-02 04:05:00 +00:00" } } ``` -------------------------------- ### GET /v2/calendars/{calendar}/save Source: https://cal.com/docs/platform/guides/booking-redirects Saves Apple calendar credentials. This endpoint is likely part of the calendar integration setup process for Apple Calendars. ```APIDOC ## GET /v2/calendars/{calendar}/save ### Description Saves the credentials for an Apple Calendar. This endpoint facilitates the integration of Apple Calendars with the platform. ### Method GET ### Endpoint `/v2/calendars/{calendar}/save` ### Parameters #### Path Parameters - **calendar** (string) - Required - The identifier of the Apple calendar to save credentials for. ### Request Example (No request body is specified for this endpoint in the provided documentation) ### Response #### Success Response (200) (Response structure not detailed in the provided documentation) #### Response Example (Response example not provided in the documentation) ``` -------------------------------- ### Cal.com Shell Component Integration Source: https://context7_llms Example of how to import and render the GreeterButton component within the Shell.tsx file in Cal.com to make the button globally available. ```typescript /** * Shell.tsx */ // ... import GreeterButton from "@calcom/app-store/greeter/components/GreeterButton"; // ... ``` -------------------------------- ### Get Available Slots (V2 API) Source: https://context7_llms Retrieves available time slots for a given event type within a specified date range. V2 requires ISO 8601 timestamps for start and end times and offers additional filtering options. ```http GET /v2/slots/available?eventTypeId=123&startTime=2024-01-01T00:00:00Z&endTime=2024-01-31T23:59:59Z ``` -------------------------------- ### OIDC Login Setup Source: https://context7_llms Steps to configure OpenID Connect (OIDC) for Single Sign-On with your Cal.com instance. ```APIDOC ## Setting up OIDC login 1. **Database Setup**: Set `SAML_DATABASE_URL` to a separate PostgreSQL database. Example: `postgresql://postgres:@localhost:5450/cal-saml` For self-signed certificates, add `?sslmode=no-verify`. 2. **Admin Configuration**: Set `SAML_ADMINS` to a comma-separated list of admin emails for OIDC configuration. 3. **Credentials**: Have your OIDC Provider's Client Secret, Client ID, and Well Known URL ready. 4. **Cal.com Instance**: Ensure your Cal.com instance is running. Log in with an admin user specified in `SAML_ADMINS`. 5. **Navigate to SSO Settings**: Go to `{BASE_URL}/settings/security/sso`. 6. **Configure OIDC**: Click 'Configure SSO with OIDC', enter the Client Secret, Client ID, and Well Known URL obtained in Step 3, then click Save. 7. **Login**: Users can now log in using your OIDC provider for authentication. ``` -------------------------------- ### Get Available Slots Endpoint Source: https://cal.com/docs/platform/guides/booking-redirects Retrieves available time slots for an event type. This can be done by eventTypeId (for user or team event types) or by eventTypeSlug and username. The request requires start and end dates, and optionally a timezone. ```http GET /v2/slots?eventTypeId=10&start=2050-09-05&end=2050-09-06&timeZone=Europe/Rome GET /v2/slots?eventTypeSlug=intro&username=example_user&start=2050-09-05&end=2050-09-06&timeZone=Europe/Rome ``` -------------------------------- ### Configure Vercel Cron Job Schedule Source: https://vercel.com/guides/how-to-setup-cron-jobs-on-vercel This configuration defines a cron job that will trigger a specific path in your application. The 'path' specifies the endpoint to be called, and 'schedule' uses a cron expression to determine the execution time (e.g., daily at 5 am UTC). Ensure the path starts with '/'. ```json { "crons": [ { "path": "/api/cron", "schedule": "0 5 * * *" } ] } ``` -------------------------------- ### Setup CalProvider in Next.js/React App Source: https://cal.com/docs/platform/quickstart Sets up the CalProvider component at the root of your application to provide necessary context and data to Cal.com Atoms. This includes importing global styles and wrapping your application with CalProvider. ```javascript import "@calcom/atoms/globals.min.css"; import { CalProvider } from '@calcom/atoms'; function MyApp({ Component, pageProps }) { return ( ); } export default MyApp; ``` -------------------------------- ### GET Get an attribute Source: https://cal.com/docs/api-reference/v2/orgs-teams/create-a-team Retrieves a specific attribute by its ID. Used to get details of a specific attribute. ```APIDOC ## GET Get an attribute ### Description Retrieves an attribute by ID. ### Method GET ### Endpoint /orgs/attributes/{attribute_id} ### Parameters #### Path Parameters - **attribute_id** (string) - Required - The ID of the attribute to retrieve. ### Response #### Success Response (200) - **attribute** (object) - The attribute object. #### Response Example ```json { "id": "attribute_id", "name": "Custom Attribute", "key": "custom_attribute", "type": "string" } ``` ``` -------------------------------- ### SAML Login Setup Source: https://context7_llms Configure SAML login with your Identity Provider (IdP). This involves setting up an application with your IdP, configuring access, retrieving metadata, and then configuring SSO within Cal.com. ```APIDOC ## SAML Login Configuration ### Description This section outlines the steps and required information to set up SAML-based Single Sign-On (SSO) with Cal.com. ### Method N/A (Configuration via UI) ### Endpoint `/settings/organizations/sso` ### Parameters #### SAML Configuration Details - **Assertion consumer service URL / Single Sign-On URL / Destination URL**: `https://app.cal.com/api/saml/callback` (string) - **Entity ID / Identifier / Audience URI / Audience Restriction**: `https://saml.cal.com` (string) - **Response**: `Signed` (string) - **Assertion Signature**: `Signed` (string) - **Signature Algorithm**: `RSA-SHA256` (string) - **Assertion Encryption**: `Unencrypted` (string) - **Name ID Format**: `EmailAddress` (string) - **Application username**: `email` (string) #### Mapping Attributes - **Name**: `firstName` (string) - **Name Format**: `Basic` (string) - **Value**: `user.firstName` (string) - **Name**: `lastName` (string) - **Name Format**: `Basic` (string) - **Value**: `user.lastName` (string) ### Request Example (Configuration is done via UI, no direct request body example for setup) ### Response #### Success Response (200) - Configuration saved successfully. #### Response Example (N/A - UI based confirmation) ``` -------------------------------- ### GET /bookings Source: https://cal.com/docs/api-reference/v2/introduction Gets organization bookings. ```APIDOC ## GET /bookings ### Description Gets organization bookings. ### Method GET ### Endpoint /bookings ### Request Example None ### Response #### Success Response (200) - **bookings** (array) - An array of booking objects. #### Response Example ```json { "bookings": [] } ``` ``` -------------------------------- ### Create Cal.com Greeter App Source: https://cal.com/docs/developing/guides/appstore-and-integration/build-a-greeter-app Command to initiate the creation of a new Cal.com app named 'Greeter'. This sets up the basic structure for the app. No specific inputs or outputs are detailed, but it's a foundational step for app development. ```bash yarn app-store create ```