# Meetings

## Get host meetings

<mark style="color:blue;">`GET`</mark> `https://app.zencal.io/api/v1/meetings`

Use this method to download the organizer's meeting list. Limit 500

#### Headers

| Name                                               | Type   | Description      |
| -------------------------------------------------- | ------ | ---------------- |
| X-Zencal-Api-Key<mark style="color:red;">\*</mark> | String | Zencal Api key   |
| Content-Type<mark style="color:red;">\*</mark>     | String | application/json |
| Accept<mark style="color:red;">\*</mark>           | String | application/json |

#### Query params

| Name                                   | Type   | Description                                                                                                                     |
| -------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------- |
| host<mark style="color:red;">\*</mark> | String | If you are a single user, this is your uuid. If you need an appointment list for a team user specify the uuid of the team user. |
| from<mark style="color:red;">\*</mark> | String | Start date of the meeting e.g. 2025-01-01                                                                                       |
| to<mark style="color:red;">\*</mark>   | String | End date of the meeting e.g. 2025-02-01                                                                                         |

{% tabs %}
{% tab title="200: OK " %}

```json
{
    "meetings": [
        {
            "uuid": "68XX6-dXX4-48bf-a433-eXX",
            "start": "2025-01-07 13:00:00",
            "end": "2025-01-07 14:00:00",
            "status": "confirmed",
            "place": "Google Meet",
            "joinMeetingLink": "https://meet.google.com/gg-gg-gg",
            "topic": {
                "uuid": "85e2526d-70d4-48c2-bada-4d80a322bb9a",
                "name": "Wprowadzenie do Zencal",
                "metadata": {}
            },
            "attendee": {
                "name": "John Doe",
                "email": "john.doe@gmail.com",
                "phone": null
            },
            "host": {
                "name": "Michael Jorban",
                "email": "michael@jorban.com",
                "phone": null
            }
        },
        {
            "uuid": "4eXXXb4-3c33-4629-XX91-e288XXXXXd6d",
            "start": "2025-01-09 08:00:00",
            "end": "2025-01-09 08:44:00",
            "status": "confirmed",
            "place": "Google Meet",
            "joinMeetingLink": "https://meet.google.com/gg-gg-gg",
            "topic": {
                "uuid": "85e2526d-70d4-48c2-bada-4d80a322bb9a",
                "name": "Wprowadzenie do Zencal",
                "metadata": {}
            },
            "attendee": {
                "name": "John Doe",
                "email": "john.doe@gmail.com",
                "phone": null
            },
            "host": {
                "name": "Michael Jorban",
                "email": "michael@jorban.com",
                "phone": null
            }
        },
        {
            "uuid": "157XXX5c-1c9X7-4ace-a6XXXd-69426cXXXXX7c",
            "start": "2025-01-09 15:20:00",
            "end": "2025-01-09 16:04:00",
            "status": "confirmed",
            "place": "Google Meet",
            "joinMeetingLink": "https://meet.google.com/gg-gg-gg",
            "topic": {
                "uuid": "85e2526d-70d4-48c2-bada-4d80a322bb9a",
                "name": "Wprowadzenie do Zencal",
                "metadata": {}
            },
            "attendee": {
                "name": "John Doe",
                "email": "john.doe@gmail.com",
                "phone": null
            },
            "host": {
                "name": "Michael Jorban",
                "email": "michael@jorban.com",
                "phone": null
            }
        },
    ]
}
```

{% endtab %}

{% tab title="404: Not found" %}

```json
{
    "error": "User not found"
}
```

{% endtab %}
{% endtabs %}

## Generate one-time link to scheduling page

## Creating quick meeting

<mark style="color:green;">`POST`</mark> `https://app.zencal.io/api/v1/meetings/quick`

Use this method to generate a link to an online meeting. The generated link will also create a meeting in your Google or Outlook calendar (depending on the selected provider). The created meeting will have its duration set to the value specified in the duration parameter. The start time of the meeting is the time the request is called.

#### Headers

| Name                                               | Type   | Description      |
| -------------------------------------------------- | ------ | ---------------- |
| X-Zencal-Api-Key<mark style="color:red;">\*</mark> | String | Zencal Api key   |
| Content-Type<mark style="color:red;">\*</mark>     | String | application/json |
| Accept<mark style="color:red;">\*</mark>           | String | application/json |

#### Request Body

| Name                                       | Type    | Description                                                                                        |
| ------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------- |
| duration<mark style="color:red;">\*</mark> | Integer | Duration of the meeting                                                                            |
| provider<mark style="color:red;">\*</mark> | String  | A calendar in which an online meeting will be created. Available values are: "google" or "outlook" |

{% tabs %}
{% tab title="201: Created " %}

```json
{
    "url": "https://meet.google.com/abc-def-ghi"
}
```

{% endtab %}
{% endtabs %}

## Generate one-time link to scheduling page

<mark style="color:green;">`POST`</mark> `https://app.zencal.io/api/v1/meetings/one-time`

Use this method to generate a one-time link to schedule an appointment on a specific topic. Once an appointment has been made, this link will no longer be active.

#### Headers

| Name                                               | Type   | Description      |
| -------------------------------------------------- | ------ | ---------------- |
| X-Zencal-Api-Key<mark style="color:red;">\*</mark> | String | Zencal Api key   |
| Accept<mark style="color:red;">\*</mark>           | String | application/json |
| Content-Type<mark style="color:red;">\*</mark>     | String | application/json |

#### Request Body

| Name                                           | Type   | Description                                                                       |
| ---------------------------------------------- | ------ | --------------------------------------------------------------------------------- |
| username<mark style="color:red;">\*</mark>     | String | Username of the user to whom the participant will be scheduled                    |
| meetingTopic<mark style="color:red;">\*</mark> | String | Uuid of the meeting topic which the owner is the host or co-host (in team topics) |

{% tabs %}
{% tab title="201: Created " %}

```json
{
    "link": "https://app.zencal.io/meet/{LINK_UUID}"
}
```

{% endtab %}
{% endtabs %}

## Get meeting details

<mark style="color:blue;">`GET`</mark> `https://app.zencal.io/api/v1/meetings/{meetingUuid}`

Use this method to get all information about particular meeting

#### Headers

| Name                                               | Type   | Description      |
| -------------------------------------------------- | ------ | ---------------- |
| X-Zencal-Api-Key<mark style="color:red;">\*</mark> | String | Zencal Api key   |
| Accept<mark style="color:red;">\*</mark>           | String | application/json |
| Content-Type<mark style="color:red;">\*</mark>     | String | application/json |

{% tabs %}
{% tab title="200" %}

```json
{
    "uuid": "uuid",
    "start": "2024-01-01 00:00:00", // ISO8601, UTC
    "end": "2024-01-01 01:00:00", // ISO8601, UTC
    "status": "confirmed", // [created, confirmed, rejected, canceled, postponed]
    "place": "google-meet", // [offline, google-meet, teamsForBusiness, skypeForBusiness, skypeForConsumer, zoom, phone-call, webex]
    "joinMeetingLink": "http://meet.google.com/join/123",
    "topic": {
        "uuid": "uuid",
        "name": "Consulting 60 min",
        "metadata": {
            "field": "value"
        }
    },
    "attendee": {
        "name": "John Smith",
        "email": "email@john.com",
        "phone": "+1200300400"
    },
    "host": {
        "name": "Michale Bond",
        "email": "m@bond.com",
        "phone": "+12301010102"
    },
    "payment": {
        "amount": 10000, // value in pennies
        "currency": "USD",
        "status": "completed" // [registered, completed, failed]
    }
}
```

{% endtab %}

{% tab title="404" %}

```json
{
    "error": "Meeting not found"
}
```

{% endtab %}
{% endtabs %}

## Confirm meeting

<mark style="color:green;">`POST`</mark> `https://app.zencal.io/api/v1/meetings/{meetingUuid}/confirm`

Use this method to confirm the meeting

#### Headers

| Name                                               | Type   | Description      |
| -------------------------------------------------- | ------ | ---------------- |
| X-Zencal-Api-Key<mark style="color:red;">\*</mark> | String | Zencal Api key   |
| Accept<mark style="color:red;">\*</mark>           | String | application/json |
| Content-Type<mark style="color:red;">\*</mark>     | String | application/json |

{% tabs %}
{% tab title="200" %}

```json
{
    "message": "Meeting confirmed",
    "meeting": {
        "uuid": "uuid",
        "start": "2024-01-01 00:00:00", // ISO8601, UTC
        "end": "2024-01-01 01:00:00", // ISO8601, UTC
        "status": "confirmed", // [created, confirmed, rejected, canceled, postponed]
        "place": "google-meet", // [offline, google-meet, teamsForBusiness, skypeForBusiness, skypeForConsumer, zoom, phone-call, webex]
        "joinMeetingLink": "http://meet.google.com/join/123",
        "topic": {
            "uuid": "uuid",
            "name": "Consulting 60 min",
            "metadata": {
                "field": "value"
            }
        },
        "attendee": {
            "name": "John Smith",
            "email": "email@john.com",
            "phone": "+1200300400"
        },
        "host": {
            "name": "Michale Bond",
            "email": "m@bond.com",
            "phone": "+12301010102"
        },
        "payment": {
            "amount": 10000, // value in pennies
            "currency": "USD",
            "status": "completed" // [registered, completed, failed]
        }
    }
}
```

{% endtab %}

{% tab title="404" %}

```json
{
    "error": "Meeting not found"
}
```

{% endtab %}
{% endtabs %}

## Get meeting file

<mark style="color:green;">`POST`</mark> `https://app.zencal.io/api/v1/meetings/{meetingUuid}/files/{fileUuid}`

Use this method to get access to file related to meeting

#### Headers

| Name                                               | Type   | Description              |
| -------------------------------------------------- | ------ | ------------------------ |
| X-Zencal-Api-Key<mark style="color:red;">\*</mark> | String | Zencal Api key           |
| Accept                                             | String | application/octet-stream |
|                                                    |        |                          |

{% tabs %}
{% tab title="200" %}

```json
<binary file content>
```

{% endtab %}

{% tab title="404" %}

```json
{
    "error": "Meeting file not found"
}
```

{% 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.zencal.io/reference/api-reference/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.
