> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/calcom/cal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Video conferencing

> Automatically generate video meeting links for Zoom, Google Meet, MS Teams, and other platforms when bookings are confirmed.

Video conferencing integrations automatically create and attach meeting links to bookings. When someone schedules time with you, they receive a video conference link immediately - no manual setup required.

## Available video integrations

<CardGroup cols={2}>
  <Card title="Zoom" icon="video">
    Industry-leading video platform with webinar support
  </Card>

  <Card title="Google Meet" icon="google">
    Integrated with Google Workspace accounts
  </Card>

  <Card title="MS Teams" icon="microsoft">
    Microsoft Teams for work/school accounts
  </Card>

  <Card title="Cal Video" icon="video-camera">
    Built-in video powered by Daily.co - no extra setup
  </Card>
</CardGroup>

### Other supported platforms

* **Jitsi Meet** - Free, open-source video conferencing
* **Whereby** - Simple browser-based meetings
* **Webex** - Cisco Webex Meetings
* **Huddle01** - Decentralized video conferencing
* **Daily.co** - Customizable video API
* **Skype** - Classic Microsoft video calling
* **FaceTime** - Apple FaceTime links (iOS 15+)
* **Around** - Modern video for remote teams
* **Tandem** - Virtual office platform
* **Demodesk** - Sales-focused video with screen control
* **Salesroom** - Video meetings with CRM integration
* **Element Call** - Matrix protocol video
* **Riverside** - Studio-quality recordings
* **Office 365 Video** - Legacy Microsoft video (deprecated)

## How video integrations work

When a video conferencing app is enabled for an event type:

<Steps>
  <Step title="User books time">
    Someone schedules a meeting on your booking page.
  </Step>

  <Step title="Meeting created">
    Cal.com calls the video platform's API to create a unique meeting room or link.
  </Step>

  <Step title="Link distributed">
    The meeting link is added to:

    * Booking confirmation email
    * Calendar event
    * Cal.com dashboard
    * Reminder emails
  </Step>

  <Step title="Join meeting">
    Both parties click the link to join at the scheduled time.
  </Step>
</Steps>

## Zoom

### Setup instructions

<Steps>
  <Step title="Install Zoom integration">
    Go to Settings > Apps, search for "Zoom", and click Install.
  </Step>

  <Step title="Authenticate with Zoom">
    Sign in to your Zoom account and authorize Cal.com to create meetings.
  </Step>

  <Step title="Grant permissions">
    Approve access to create, read, and manage Zoom meetings.
  </Step>

  <Step title="Enable in event types">
    Edit an event type, go to the Location section, and select "Zoom Video" as the meeting location.
  </Step>
</Steps>

### Features

* **Automatic meeting creation** - Unique Zoom link for each booking
* **Meeting passwords** - Optional password protection
* **Waiting rooms** - Control when participants can join
* **Recording options** - Cloud or local recording (requires Zoom plan)
* **Webinar support** - Create Zoom Webinars for large events
* **Meeting templates** - Apply your Zoom meeting settings automatically

### Configuration options

After enabling Zoom for an event type:

* **Meeting type** - Instant meeting or scheduled meeting
* **Join before host** - Allow attendees to join early
* **Mute upon entry** - Automatically mute participants
* **Enable video** - Default video on/off for host and participants
* **Alternative hosts** - Add co-hosts to Zoom meetings

<Note>
  Zoom integrations require a Zoom account. Free accounts have a 40-minute limit on group meetings with 3+ participants.
</Note>

### Troubleshooting

<AccordionGroup>
  <Accordion title="No Zoom link generated">
    * Verify Zoom integration is connected in Settings > Apps
    * Re-authenticate by disconnecting and reconnecting
    * Check that your Zoom account is active and not suspended
    * Ensure you haven't exceeded Zoom's API rate limits
  </Accordion>

  <Accordion title="Meeting links expire too quickly">
    Zoom links remain valid indefinitely unless manually deleted. If links are expiring, check your Zoom account settings for automatic meeting deletion rules.
  </Accordion>

  <Accordion title="OAuth errors during setup">
    Self-hosted instances need `ZOOM_CLIENT_ID` and `ZOOM_CLIENT_SECRET` environment variables. Verify these are set correctly and that your Zoom OAuth app has the correct redirect URI.
  </Accordion>
</AccordionGroup>

## Google Meet

### Setup instructions

<Steps>
  <Step title="Connect Google Calendar first">
    Google Meet requires Google Calendar integration. Install Google Calendar if you haven't already.
  </Step>

  <Step title="Install Google Meet">
    Go to Settings > Apps and install "Google Meet".
  </Step>

  <Step title="Enable in event types">
    Select "Google Meet" as the location when creating or editing event types.
  </Step>
</Steps>

### Features

* **Google Workspace integration** - Works seamlessly with Google Calendar
* **Instant meeting rooms** - Unique meet.google.com link for each booking
* **Large meetings** - Support for up to 250 participants (workspace dependent)
* **Recording** - Cloud recording with Google Drive storage (requires workspace)
* **Live captions** - Real-time transcription
* **Breakout rooms** - Split participants into smaller groups

<Info>
  Google Meet is automatically available once you connect Google Calendar. No separate authentication needed.
</Info>

### Requirements

* Google Calendar integration connected
* Google Workspace or personal Google account
* For advanced features: Google Workspace Business or Enterprise

## Microsoft Teams

### Setup instructions

<Steps>
  <Step title="Install MS Teams integration">
    Find "MS Teams" in Settings > Apps and click Install.
  </Step>

  <Step title="Sign in with work account">
    Authenticate with your Microsoft 365 work or school account.
  </Step>

  <Step title="Grant permissions">
    Allow Cal.com to create online meetings on your behalf.
  </Step>

  <Step title="Configure event types">
    Add "MS Teams" as a location option in your event types.
  </Step>
</Steps>

### Features

* **Microsoft 365 integration** - Syncs with Outlook and Teams calendars
* **Organization meetings** - Meetings appear in your Teams organization
* **Recording and transcription** - Built-in meeting recording
* **Chat integration** - Pre-meeting chat in Teams
* **Large meetings** - Up to 10,000 participants (license dependent)

<Warning>
  Microsoft Teams integration requires a work or school account (Microsoft 365 Business, Education, or Enterprise). Personal Microsoft accounts are not supported.
</Warning>

## Cal Video (Daily.co)

Cal Video is Cal.com's built-in video conferencing powered by Daily.co. It works out of the box with no additional setup.

### Features

* **No authentication required** - Works immediately for all Cal.com users
* **Browser-based** - Join from any modern browser, no app download
* **Low latency** - WebRTC-based for high-quality video
* **Screen sharing** - Share your screen during calls
* **Recording** - Record meetings (requires Daily.co API key)
* **Up to 200 participants** - Large meeting support

### Setup (Cal.com Cloud)

Cal Video is pre-configured on Cal.com Cloud:

1. Edit an event type
2. Select "Cal Video" as the location
3. Done - bookings will include Cal Video links

### Setup (self-hosted)

Self-hosted instances need a Daily.co API key:

```bash theme={null}
# Get a free API key from https://daily.co
DAILY_API_KEY=your_daily_api_key
```

Add this to your `.env` file and restart Cal.com.

<Info>
  Daily.co offers a generous free tier: 50 rooms and 10,000 participant minutes per month.
</Info>

## Jitsi Meet

Jitsi is a free, open-source video conferencing platform. No account required.

### Setup instructions

<Steps>
  <Step title="Enable Jitsi">
    Jitsi is available by default. Just select "Jitsi Video" as a location in your event types.
  </Step>

  <Step title="No authentication needed">
    Jitsi doesn't require an account or API credentials.
  </Step>

  <Step title="Custom Jitsi server (optional)">
    For self-hosted Jitsi servers, you can configure a custom domain in the integration settings.
  </Step>
</Steps>

### Features

* **No account required** - Completely free and open
* **Self-hostable** - Run your own Jitsi server
* **End-to-end encryption** - Secure video calls
* **Screen sharing** - Share your screen
* **Recording** - Record meetings (requires Jitsi server configuration)
* **Unlimited participants** - No artificial limits

### Custom Jitsi server

To use your own Jitsi server:

```typescript theme={null}
// Configure in app settings
{
  "jitsiHost": "meet.yourdomain.com"
}
```

## Whereby

Whereby provides simple, link-based video meetings.

### Setup instructions

<Steps>
  <Step title="Get a Whereby room URL">
    Sign up at whereby.com and create a meeting room. Copy your room URL (e.g., `whereby.com/yourroom`).
  </Step>

  <Step title="Install Whereby integration">
    Go to Settings > Apps and install "Whereby".
  </Step>

  <Step title="Enter your room URL">
    Provide your Whereby room URL in the integration settings.
  </Step>

  <Step title="Use in event types">
    Select "Whereby" as the location in your event types.
  </Step>
</Steps>

<Note>
  Whereby uses a static meeting room. All bookings will use the same Whereby URL. For unique links per booking, consider Whereby's API plan.
</Note>

## Choosing the right video integration

<Tabs>
  <Tab title="Best for most users">
    **Cal Video** or **Google Meet**

    * No extra cost
    * Simple setup
    * Reliable quality
    * Works in browser
  </Tab>

  <Tab title="Enterprise">
    **Microsoft Teams** or **Zoom**

    * Advanced features (webinars, recordings, breakout rooms)
    * Organization-wide integration
    * Compliance and security certifications
    * Administrative controls
  </Tab>

  <Tab title="Open source / Privacy-focused">
    **Jitsi Meet**

    * Self-hostable
    * No account required
    * End-to-end encryption
    * Fully open source
  </Tab>

  <Tab title="Unique links per booking">
    **Zoom**, **Google Meet**, **MS Teams**, or **Cal Video**

    * Each booking gets a unique meeting room
    * No conflicts between bookings
    * Better security
  </Tab>
</Tabs>

## Multiple video locations

You can offer multiple video options per event type:

```
Location options for "30-minute consultation":
  ☑ Cal Video
  ☑ Zoom
  ☑ Google Meet
  ☐ Phone call
  ☐ In person

Booker can choose their preferred meeting method
```

This flexibility lets attendees pick their favorite platform.

## Video integration behavior

### Link generation timing

* **Dynamic integrations** (Zoom, Google Meet, Teams, Cal Video) - Link created when booking is confirmed
* **Static integrations** (Whereby, FaceTime) - Existing URL provided to attendee

### Link in booking details

Video links appear in:

1. Booking confirmation email to both parties
2. Calendar event location field
3. Reminder emails (if configured)
4. Cal.com dashboard booking details
5. Reschedule/cancel flows

### Security considerations

<Check>Use platforms with meeting passwords or waiting rooms for sensitive calls</Check>
<Check>Generate unique links per booking to prevent unauthorized access</Check>
<Check>Enable end-to-end encryption when available</Check>
<Check>Review video platform's privacy policy and data handling</Check>

## Environment variables (self-hosted)

Self-hosted deployments require API credentials for some platforms:

```bash theme={null}
# Zoom
ZOOM_CLIENT_ID=your_zoom_client_id
ZOOM_CLIENT_SECRET=your_zoom_client_secret

# Daily.co (Cal Video)
DAILY_API_KEY=your_daily_api_key

# Google Meet (uses Google Calendar credentials)
GOOGLE_API_CREDENTIALS='{"web":{...}}'

# Microsoft Teams
MS_GRAPH_CLIENT_ID=your_client_id
MS_GRAPH_CLIENT_SECRET=your_client_secret
```

<Info>
  Jitsi, Whereby, FaceTime, and other static URL platforms don't require API keys.
</Info>

## Troubleshooting

### Video link not appearing in calendar

1. Verify the video integration is enabled for the event type
2. Check that the integration is connected in Settings > Apps
3. Re-authenticate the video integration
4. Test with a new booking

### Integration keeps disconnecting

1. Check if your API credentials or OAuth tokens expired
2. Re-authorize the integration
3. For self-hosted: Verify environment variables are set correctly
4. Check for rate limit errors in application logs

### Wrong video platform creating links

1. Check event type settings - multiple video integrations may be enabled
2. Verify which integration is set as the default location
3. Ensure you're not using calendar event defaults that override Cal.com settings

## Best practices

<Check>**Test before important meetings** - Create a test booking to verify links work correctly</Check>

<Check>**Enable waiting rooms** - Prevent unauthorized participants from joining early</Check>

<Check>**Send test invites** - Confirm video links appear in calendar invitations</Check>

<Check>**Have a backup** - Keep a secondary video platform configured in case of outages</Check>

<Check>**Document preferences** - Tell frequent bookers which platform you prefer</Check>

## Next steps

<CardGroup cols={2}>
  <Card title="Calendar apps" icon="calendar" href="/integrations/calendar-apps">
    Connect calendars to sync video events
  </Card>

  <Card title="Event types" icon="calendar-check" href="/event-types">
    Configure video locations for event types
  </Card>
</CardGroup>
