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

# Call Session Events

> Webhook events for CometChat call sessions (meetings)

These webhook events are triggered when using **Call Sessions** — where participants join a session directly without a ringing flow. This is the pattern used for meetings, conference calls, or any scenario where users join a shared session via a session ID.

<Info>
  For calls initiated through the ringing flow (with incoming call notifications), see [Ringing Events](/calls/webhooks-ringing).
</Info>

***

## meeting\_started

Triggered when a call session begins.

**Idempotency Key**: `webhook` + `trigger` + `data.sessionId` + `data.created_at`

```json theme={null}
{
    "trigger": "meeting_started",
    "data": {
        "created_at": 1696934692,
        "sessionId": "<sessionId>"
    },
    "type": "meet",
    "appId": "<appId>",
    "region": "<region>",
    "webhook": "<webhookID>"
}
```

***

## meeting\_participant\_joined

Triggered when a participant joins the session.

**Idempotency Key**: `webhook` + `trigger` + `data.sessionId` + `data.occupant.joined_at`

```json theme={null}
{
    "trigger": "meeting_participant_joined",
    "data": {
        "occupant": {
            "joined_at": 1696934692,
            "audio_call": "false",
            "name": "Andrew Joseph"
        },
        "initial_config": {
            "is_video_muted": "false",
            "start_recording_on_call_start": "false",
            "call_version": "2.3.0",
            "is_audio_muted": "false",
            "sdk": "react",
            "mode": "DEFAULT",
            "platform": "web",
            "is_audio_only": "false"
        },
        "sessionId": "<sessionId>"
    },
    "type": "meet",
    "appId": "<appId>",
    "region": "<region>",
    "webhook": "<webhookID>"
}
```

***

## meeting\_participant\_left

Triggered when a participant leaves the session.

**Idempotency Key**: `webhook` + `trigger` + `data.sessionId` + `data.occupant.left_at`

```json theme={null}
{
    "trigger": "meeting_participant_left",
    "data": {
        "occupant": {
            "joined_at": 1696934692,
            "audio_call": "false",
            "left_at": 1696934730,
            "name": "Andrew Joseph"
        },
        "sessionId": "<sessionId>"
    },
    "type": "meet",
    "appId": "<appId>",
    "region": "<region>",
    "webhook": "<webhookID>"
}
```

***

## meeting\_ended

Triggered when the session ends (all participants have left).

**Idempotency Key**: `webhook` + `trigger` + `data.sessionId` + `data.destroyed_at`

```json theme={null}
{
    "trigger": "meeting_ended",
    "data": {
        "all_occupants": [
            {
                "joined_at": 1696934692,
                "audio_call": "false",
                "left_at": 1696934730,
                "name": "Andrew Joseph"
            }
        ],
        "destroyed_at": 1696934730,
        "created_at": 1696934692,
        "sessionId": "<sessionId>"
    },
    "type": "meet",
    "appId": "<appId>",
    "region": "<region>",
    "webhook": "<webhookID>"
}
```

***

## recording\_generated

Triggered when a call or meeting recording is ready for download. This event applies to both ringing calls and call sessions.

**Idempotency Key**: `webhook` + `trigger` + `data.sessionId` + `data.startTime`

```json theme={null}
{
    "trigger": "recording_generated",
    "data": {
        "recordingDate": "2023-10-10",
        "duration": "21.433000",
        "startTime": "1696937627",
        "sessionId": "<sessionId>",
        "recording_url": "<recording_url>"
    },
    "appId": "<appId>",
    "region": "<region>",
    "webhook": "<webhookID>"
}
```
