# Meetings

## Get All Meetings

## Get List of Meetings

<mark style="color:blue;">`GET`</mark> `https://api.pyas.io/zoom/meetings`

Gets all meetings for an account

#### Query Parameters

| Name                                        | Type        | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| accountId<mark style="color:red;">\*</mark> | String      | The user's Pyas account id. This is returned when you connect an account to Pyas.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| startDate                                   | Date String | <p>Filter meetings from a start date </p><p>(ex: <code>01-01-2022</code>)</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| endDate                                     | Date String | <p>Filter meetings up to an end date</p><p>(ex: <code>01-01-2023</code>)</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| nextPageToken                               | String      | Token string used to get the next page of results (paginate) - This token expires after 15 minutes                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| maxResults                                  | Integer     | Max number of results to return per page                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| type                                        | String      | <p>Type of meeting. Possible values are: <mark style="color:blue;"><code>scheduled</code></mark> - All valid previous (unexpired) meetings, live meetings, and upcoming scheduled meetings.</p><p></p><p><mark style="color:blue;"><code>live</code></mark> - All the ongoing meetings.</p><p></p><p><mark style="color:blue;"><code>upcoming</code></mark> - All upcoming meetings, including live meetings.</p><p></p><p><mark style="color:blue;"><code>upcoming\_meetings</code></mark> - All upcoming meetings, including live meetings.</p><p></p><p><mark style="color:blue;"><code>previous\_meetings</code></mark> - All the previous meetings.</p> |
| pageNumber                                  | Integer     | The page number of the current page in the returned records.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| x-api-key<mark style="color:red;">\*</mark> | String | API key     |

{% tabs %}
{% tab title="200: OK Successfully retrieved meetings" %}

```json
{
    "success": true,
    "data": {
        "page_size": 30,
        "total_records": 1,
        "next_page_token": "",
        "meetings": [
            {
                "uuid": "some-uuid-string",
                "id": 3418139842191568,
                "host_id": "some-id-string",
                "topic": "Test Meeting",
                "type": 2,
                "start_time": "2023-04-26T19:26:55Z",
                "duration": 30,
                "timezone": "America/Los_Angeles",
                "agenda": "This is an example meeting",
                "created_at": "2023-04-26T12:26:57Z",
                "join_url": "https://us05web.zoom.us/j/81398421915?pwd=Zk9WTzM3SG9Xb1lCZk9MTVFhOU1Fdz09"
            }
        ]
    }
}
```

{% endtab %}

{% tab title="401: Unauthorized Invalid/missing API key" %}

```json
{
    "error": "Unauthorized. Invalid API key."
}
```

{% endtab %}

{% tab title="400: Bad Request Missing calendar id" %}

```json
{
    "errors": [
        {
            "msg": "a calendar id is required.",
            "param": "calendarId",
            "location": "query"
        }
    ]
}
```

{% endtab %}

{% tab title="400: Bad Request Missing account id" %}

```json
{
    "errors": [
        {
            "msg": "an account id is required.",
            "param": "accountId",
            "location": "query"
        }
    ]
}
```

{% endtab %}

{% tab title="400: Bad Request Missing both calendar id and account id" %}

```json
{
    "errors": [
        {
            "msg": "an account id is required.",
            "param": "accountId",
            "location": "query"
        },
        {
            "msg": "a calendar id is required.",
            "param": "calendarId",
            "location": "query"
        }
    ]
}
```

{% endtab %}

{% tab title="404: Not Found Account Not Found. Invalid accountId" %}

```json
{
    "success": false,
    "error": "Invalid account id. Account Not Found",
    "code": 404
}
```

{% endtab %}

{% tab title="404: Not Found Calendar Not Found" %}

```json
{
    "success": false,
    "error": "Not Found",
    "code": 404
}
```

{% endtab %}
{% endtabs %}

## Get an Event By ID

## Get Event by ID

<mark style="color:blue;">`GET`</mark> `https://api.pyas.io/zoom/meetings/:id`

Gets a calendar event by id

#### Path Parameters

| Name                                   | Type   | Description    |
| -------------------------------------- | ------ | -------------- |
| {id}<mark style="color:red;">\*</mark> | String | The meeting id |

#### Query Parameters

| Name                                        | Type   | Description                                                                       |
| ------------------------------------------- | ------ | --------------------------------------------------------------------------------- |
| accountId<mark style="color:red;">\*</mark> | String | The user's Pyas account id. This is returned when you connect an account to Pyas. |

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| x-api-key<mark style="color:red;">\*</mark> | String | API key     |

{% tabs %}
{% tab title="200: OK Successfully retrieved the meeting" %}

```json
{
    "success": true,
    "meeting": {
        "uuid": "some-uuid-string",
        "id": 181328421905,
        "host_id": "some-id-string",
        "host_email": "user@example.com",
        "assistant_id": "",
        "topic": "Test Meeting",
        "type": 2,
        "status": "waiting",
        "start_time": "2023-04-26T19:26:55Z",
        "duration": 30,
        "timezone": "America/Los_Angeles",
        "agenda": "This is an example meeting",
        "created_at": "2023-04-26T12:26:57Z",
        "start_url": "https://us05web.zoom.us/s/8139...",
        "join_url": "https://us05web.zoom.us/j/81398...",
        "password": "f0a9n07bk3",
        "h323_password": "7214044450",
        "pstn_password": "7214044450",
        "encrypted_password": "Zk9WTzM3SG9Xb1lCZk9MTVFhOU1Fdz09",
        "settings": {
            "host_video": false,
            "participant_video": false,
            "cn_meeting": false,
            "in_meeting": false,
            "join_before_host": false,
            "jbh_time": 0,
            "mute_upon_entry": false,
            "watermark": false,
            "use_pmi": false,
            "approval_type": 2,
            "audio": "voip",
            "auto_recording": "none",
            "enforce_login": false,
            "enforce_login_domains": "",
            "alternative_hosts": "",
            "alternative_host_update_polls": false,
            "close_registration": false,
            "show_share_button": false,
            "allow_multiple_devices": false,
            "registrants_confirmation_email": true,
            "waiting_room": true,
            "request_permission_to_unmute_participants": false,
            "registrants_email_notification": true,
            "meeting_authentication": false,
            "encryption_type": "enhanced_encryption",
            "approved_or_denied_countries_or_regions": {
                "enable": false
            },
            "breakout_room": {
                "enable": false
            },
            "alternative_hosts_email_notification": true,
            "show_join_info": false,
            "device_testing": false,
            "focus_mode": false,
            "enable_dedicated_group_chat": false,
            "private_meeting": false,
            "email_notification": true,
            "host_save_video_order": false
        },
        "pre_schedule": false
    }
}
```

{% endtab %}

{% tab title="401: Unauthorized Invalid/Missing API key" %}

```json
{
    "error": "Unauthorized. Invalid API key."
}
```

{% endtab %}

{% tab title="400: Bad Request Missing fields" %}

```json
{
    "errors": [
        {
            "msg": "account id is required",
            "param": "accountId",
            "location": "query"
        },
        {
            "msg": "account id must be a string",
            "param": "accountId",
            "location": "query"
        }
    ]
}
```

{% endtab %}

{% tab title="404: Not Found Account Not Found. Invalid accountId" %}

```json
{
    "success": false,
    "error": "Invalid account id. Account Not Found",
    "code": 404
}
```

{% endtab %}
{% endtabs %}

##

## Create a Meeting

## Create Meeting

<mark style="color:green;">`POST`</mark> `https://api.pyas.io/zoom/meetings`

Creates a new Zoom Meeting

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| x-api-key<mark style="color:red;">\*</mark> | String | API key     |

#### Request Body

| Name                                                      | Type     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| --------------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| accountId<mark style="color:red;">\*</mark>               | String   | The user's Pyas account id. This is returned when you connect an account to Pyas.                                                                                                                                                                                                                                                                                                                                                                        |
| meetingData<mark style="color:red;">\*</mark>             | Object   | The event data. See the Required [**Meeting Data Object**](#meeting-data-object) example below.                                                                                                                                                                                                                                                                                                                                                          |
| meetingData.title<mark style="color:red;">\*</mark>       | String   | The meeting title/topic                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| meetingData.description<mark style="color:red;">\*</mark> | String   | Meeting description/agenda                                                                                                                                                                                                                                                                                                                                                                                                                               |
| meetingData.startDate<mark style="color:red;">\*</mark>   | DateTime | RFC3339 Timestamp                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| meetingData.timeZone                                      | String   | Time Zone in IANA format. Only used for scheduled or recurring meetings with a fixed time                                                                                                                                                                                                                                                                                                                                                                |
| meetingData.attendees                                     | Array    | Array of [**Attendee Objects**](#attendee-object-example)                                                                                                                                                                                                                                                                                                                                                                                                |
| meetingData.recurrence                                    | Object   | Recurrence object for recurring events. See the [**Recurrence Object**](#recurrence-object) below.                                                                                                                                                                                                                                                                                                                                                       |
| meetingData.duration                                      | Integer  | The meeting duration in minutes. Only used for scheduled meetings. Defaults to **30**                                                                                                                                                                                                                                                                                                                                                                    |
| meetingData.waitingRoom                                   | Boolean  | Whether to enable or disable the waiting room                                                                                                                                                                                                                                                                                                                                                                                                            |
| meetingData.type<mark style="color:red;">\*</mark>        | Integer  | <p>Type of meeting:</p><p><mark style="color:blue;"><strong><code>1</code></strong></mark>  - An instant meeting</p><p><mark style="color:blue;"><strong><code>2</code></strong></mark>  - A scheduled meeting</p><p><mark style="color:blue;"><strong><code>3</code></strong></mark>  - A recurring meeting with no fixed time</p><p><mark style="color:blue;"><strong><code>8</code></strong></mark>  - A recurring meeting with fixed time</p><p></p> |

{% tabs %}
{% tab title="200: OK Meeting created successfully" %}

```json
{
    "success": true,
    "data": {
        "uuid": "some-uuid-string",
        "id": 2589906727501,
        "host_id": "some-id-string",
        "host_email": "email@example.com",
        "topic": "Test Meeting",
        "type": 2,
        "status": "waiting",
        "start_time": "2023-04-26T19:51:48Z",
        "duration": 30,
        "timezone": "America/Los_Angeles",
        "agenda": "This is an example meeting",
        "created_at": "2023-04-26T12:51:49Z",
        "start_url": "https://us05web.zoom.us/s/85256...",
        "join_url": "https://us05web.zoom.us/j/8965...",
        "password": "aeknj5fia0",
        "h323_password": "4023135285",
        "pstn_password": "4023135285",
        "encrypted_password": "YmJva3V5TlpZMDQ1SzJZOUNCemUrQT09",
        "settings": {
            "host_video": false,
            "participant_video": false,
            "cn_meeting": false,
            "in_meeting": false,
            "join_before_host": false,
            "jbh_time": 0,
            "mute_upon_entry": false,
            "watermark": false,
            "use_pmi": false,
            "approval_type": 2,
            "audio": "voip",
            "auto_recording": "none",
            "enforce_login": false,
            "enforce_login_domains": "",
            "alternative_hosts": "",
            "alternative_host_update_polls": false,
            "close_registration": false,
            "show_share_button": false,
            "allow_multiple_devices": false,
            "registrants_confirmation_email": true,
            "waiting_room": true,
            "request_permission_to_unmute_participants": false,
            "registrants_email_notification": true,
            "meeting_authentication": false,
            "encryption_type": "enhanced_encryption",
            "approved_or_denied_countries_or_regions": {
                "enable": false
            },
            "breakout_room": {
                "enable": false
            },
            "alternative_hosts_email_notification": true,
            "show_join_info": false,
            "device_testing": false,
            "focus_mode": false,
            "enable_dedicated_group_chat": false,
            "private_meeting": false,
            "email_notification": true,
            "host_save_video_order": false
        },
        "pre_schedule": false
    }
}
```

{% endtab %}

{% tab title="401: Unauthorized Invalid/Missing API key" %}

```json
{
    "error": "Unauthorized. Invalid API key."
}
```

{% endtab %}

{% tab title="404: Not Found Account Not Found. Invalid accountId" %}

```json
{
    "success": false,
    "error": "Invalid account id. Account Not Found",
    "code": 404
}
```

{% endtab %}

{% tab title="400: Bad Request Missing required fields" %}

```json
{
    "errors": [
        {
            "msg": "meetingData is required.",
            "param": "meetingData",
            "location": "body"
        },
        {
            "msg": "meetingData must be an object",
            "param": "meetingData",
            "location": "body"
        },
        {
            "msg": "Invalid value",
            "param": "meetingData",
            "location": "body"
        }
    ]
}
```

{% endtab %}
{% endtabs %}

### **Meeting Data Object**

```json
{
    "accountId": "123654-46204525-b574-9ad72ae18c9e", // string - Required.
    "meetingData": {
        "type": 2, // Integer - Required.
        "title": "Test Meeting", // string - Required.
        "description": "This is an example meeting", // string - Required.
        "startDate": "{{start_time}}", // RFC3339 Timestamp - Required.
        "duration": 30, // Integer - Required.
        "waitingRoom": true, // Boolean - Optional.
        "attendees": [
            {
                "email": "example@gmail.com"
            }
            
        ] // Required.
        
    }
}
```

### Attendee Object Example:

```json
{
    "email": "example@gmail.com" // String - Required.
}
```

### Recurrence Object:

```typescript
{
    type: string // daily, weekly, or monthly - Required.
    interval: number|string // Define the interval at which the meeting should recur. (ex. 2 for every two weeks with type of weekly) - Required.
    startDate?: string // the dateTime of when the recurring meeting will start (used for Microsoft Outlook only)
    endDate?: string // the dateTime of when the recurring meeting will end
    dayOfMonth?: number|string // day of month for a monthly meeting. 1 - 31 (ex. 15 for the 15th of every month)
    daysOfWeek?: Array<string> // days of week for a weekly meeting type (ex. ['monday', 'wednesday'])
    month?: number|string // The month in which the event occurs. This is a number from 1 to 12. (Microsoft and Google only)
}
```

Here's an example of a recurrence object for a meeting that repeats weekly every Wednesday:

<pre class="language-json"><code class="lang-json">{
<strong>    "type": "weekly",
</strong><strong>    "interval": 1,
</strong>    "daysOfWeek": ["wednesday"],
    "endDate": "2023-08-01T22:26:39.109Z"
}
</code></pre>

## Update a Meeting

## Update Meeting

<mark style="color:purple;">`PATCH`</mark> `https://api.pyas.io/zoom/meetings/:id`

Updates an Existing Meeting

#### Path Parameters

| Name                                   | Type   | Description    |
| -------------------------------------- | ------ | -------------- |
| {id}<mark style="color:red;">\*</mark> | String | The meeting ID |

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| x-api-key<mark style="color:red;">\*</mark> | String | API Key     |

#### Request Body

| Name                                          | Type   | Description                                                                                                                               |
| --------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
| accountId<mark style="color:red;">\*</mark>   | String | The user's Pyas account id. This is returned when you connect an account to Pyas.                                                         |
| meetingData<mark style="color:red;">\*</mark> | Object | Event data object with the fields to update. See the [**Example Update Meeting Data Object**](#update-meeting-data-object-example) below. |

{% tabs %}
{% tab title="204: No Content Meeting updated successfully" %}

{% endtab %}

{% tab title="404: Not Found Account Not Found/Invalid Account Id" %}

```json
{
    "success": false,
    "error": "Invalid account id. Account Not Found",
    "code": 404
}
```

{% endtab %}

{% tab title="400: Bad Request Missing eventData" %}

```json
{
    "errors": [
        {
            "msg": "meetingData is required.",
            "param": "meetingData",
            "location": "body"
        },
        {
            "msg": "meetingData must be an object",
            "param": "meetingData",
            "location": "body"
        },
        {
            "msg": "Invalid value",
            "param": "meetingData",
            "location": "body"
        }
    ]
}
```

{% endtab %}
{% endtabs %}

### Update Meeting Data Object Example:

```json
{
    "title": "Test Meeting - Updated",
    "description": "This is an example meeting - updated",
    "duration": 30,
    "waitingRoom": true,
    "attendees": [
        {
            "email": "example@gmail.com"
        }
            
    ]
        
}
```

## Delete a Meeting

## Delete Meeting

<mark style="color:red;">`DELETE`</mark> `https://api.pyas.io/zoom/meetings/:id`

Deletes an existing meeting

#### Path Parameters

| Name                                   | Type   | Description    |
| -------------------------------------- | ------ | -------------- |
| {id}<mark style="color:red;">\*</mark> | String | The meeting ID |

#### Query Parameters

| Name                                        | Type   | Description                                                                       |
| ------------------------------------------- | ------ | --------------------------------------------------------------------------------- |
| accountId<mark style="color:red;">\*</mark> | String | The user's Pyas account id. This is returned when you connect an account to Pyas. |

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| x-api-key<mark style="color:red;">\*</mark> | String | API Key     |

{% tabs %}
{% tab title="204: No Content Meeting was deleted successfully" %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pyas.io/rest-api-reference/zoom/meetings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
