# Events

## Get All Events From a Calendar

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

#### Query Parameters

| Name                                         | Type        | Description                                                                                                                                                                                                                                                                                                                                         |
| -------------------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| calendarId<mark style="color:red;">\*</mark> | String      | The id of the Microsoft Outlook calendar                                                                                                                                                                                                                                                                                                            |
| 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 events from a start date </p><p>(ex: <code>01-01-2022</code>)</p>                                                                                                                                                                                                                                                                         |
| endDate                                      | Date String | <p>Filter events up to an end date</p><p>(ex: <code>01-01-2023</code>)</p>                                                                                                                                                                                                                                                                          |
| search                                       | String      | Free text search to filter events based on the `subject` field.                                                                                                                                                                                                                                                                                     |
| nextPageToken                                | String      | Token string used to get the next page of results (paginate)                                                                                                                                                                                                                                                                                        |
| maxResults                                   | Integer     | <p>Max number of results to </p><p>return per page</p>                                                                                                                                                                                                                                                                                              |
| $expand                                      | String      | <p>query to include single or multi value extended properties on events that have an extended property.<br><a href="https://learn.microsoft.com/en-us/graph/api/singlevaluelegacyextendedproperty-get?view=graph-rest-1.0&#x26;tabs=http">More Info</a><br>Ex: <code>$expand=singleValueExtendedProperties($filter=id eq '{id\_value}')</code></p>  |
| $filter                                      | String      | <p>query to filter events by single or multi extended properties. <a href="https://learn.microsoft.com/en-us/graph/api/singlevaluelegacyextendedproperty-get?view=graph-rest-1.0&#x26;tabs=http">More Info</a><br>Ex: <br><code>$filter=singleValueExtendedProperties/Any(ep: ep/id eq '{id\_value}' and ep/value eq '{property\_value}'</code></p> |
|                                              |             |                                                                                                                                                                                                                                                                                                                                                     |

#### Headers

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

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

```json
{
    "success": true,
    "data": {
        "count": 1,
        "events": [
            {
                "@odata.etag": "W/\"some-id\"",
                "id": "some-event-id",
                "createdDateTime": "2023-04-06T21:48:43.8341359Z",
                "lastModifiedDateTime": "2023-04-06T21:48:44.2375882Z",
                "changeKey": "some-key",
                "categories": [],
                "transactionId": null,
                "originalStartTimeZone": "UTC",
                "originalEndTimeZone": "UTC",
                "iCalUId": "some-id",
                "reminderMinutesBeforeStart": 15,
                "isReminderOn": true,
                "hasAttachments": false,
                "subject": "Example Event",
                "bodyPreview": "This is an appoinemtment test",
                "importance": "normal",
                "sensitivity": "normal",
                "isAllDay": false,
                "isCancelled": false,
                "isOrganizer": true,
                "responseRequested": true,
                "seriesMasterId": null,
                "showAs": "busy",
                "type": "singleInstance",
                "webLink": "https://outlook.live.com/owa/?itemid=some-event-id&exvsurl=1&path=/calendar/item",
                "onlineMeetingUrl": null,
                "isOnlineMeeting": false,
                "onlineMeetingProvider": "unknown",
                "allowNewTimeProposals": true,
                "occurrenceId": null,
                "isDraft": false,
                "hideAttendees": false,
                "responseStatus": {
                    "response": "organizer",
                    "time": "0001-01-01T00:00:00Z"
                },
                "body": {
                    "contentType": "html",
                    "content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nThis is an appoinemtment test\r\n</body>\r\n</html>\r\n"
                },
                "start": {
                    "dateTime": "2023-04-06T21:48:42.3800000",
                    "timeZone": "UTC"
                },
                "end": {
                    "dateTime": "2023-04-06T22:18:42.3800000",
                    "timeZone": "UTC"
                },
                "location": {
                    "displayName": "712 Applesauce Rd",
                    "locationUri": "",
                    "locationType": "default",
                    "uniqueId": "712 Applesauce Rd",
                    "uniqueIdType": "private",
                    "address": {
                        "street": "712 Applesauce Rd",
                        "city": "Austin",
                        "state": "TX",
                        "countryOrRegion": "USA",
                        "postalCode": "73301"
                    },
                    "coordinates": {}
                },
                "locations": [
                    {
                        "displayName": "712 Applesauce Rd",
                        "locationUri": "",
                        "locationType": "default",
                        "uniqueId": "712 Applesauce Rd",
                        "uniqueIdType": "private",
                        "address": {
                            "street": "712 Applesauce Rd",
                            "city": "Austin",
                            "state": "TX",
                            "countryOrRegion": "USA",
                            "postalCode": "73301"
                        },
                        "coordinates": {}
                    }
                ],
                "recurrence": null,
                "attendees": [
                    {
                        "type": "required",
                        "status": {
                            "response": "none",
                            "time": "0001-01-01T00:00:00Z"
                        },
                        "emailAddress": {
                            "name": "Jane Doe",
                            "address": "example@email.com"
                        }
                    }
                ],
                "organizer": {
                    "emailAddress": {
                        "name": "John Doe",
                        "address": "outlook_user-id@outlook.com"
                    }
                },
                "onlineMeeting": null,
                "calendar@odata.associationLink": "https://graph.microsoft.com/v1.0/users('outlook_some-id@outlook.com')/calendars('some-id')/$ref",
                "calendar@odata.navigationLink": "https://graph.microsoft.com/v1.0/users('outlook_some-id@outlook.com')/calendars('some-id')"
            }
        ],
        "nextPageToken": null
    }
}
```

{% 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 Event by ID

<mark style="color:blue;">`GET`</mark> `https://api.pyas.io/microsoft/events/{id}`

Gets a calendar event by id

#### Path Parameters

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

#### Query Parameters

| Name                                         | Type   | Description                                                                       |
| -------------------------------------------- | ------ | --------------------------------------------------------------------------------- |
| calendarId<mark style="color:red;">\*</mark> | String | The Microsoft Outlook Calendar id                                                 |
| 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 event" %}

```json
{
    "success": true,
    "data": {
        "event": {
            "kind": "calendar#event",
            "etag": "\"00000000\"",
            "id": "string",
            "status": "string",
            "htmlLink": "string",
            "created": "2023-01-05T01:56:37.000Z",
            "updated": "2023-01-05T01:56:38.403Z",
            "summary": "some summary",
            "description": "some description"
                "email": "string"
            },
            "organizer": {
                "email": "string"
            },
            "start": {
                "dateTime": "2023-01-11T13:00:00-05:00",
                "timeZone": "UTC"
            },
            "end": {
                "dateTime": "2023-01-11T13:15:00-05:00",
                "timeZone": "UTC"
            },
            "iCalUID": "string",
            "sequence": 0,
            "attendees": [
                {
                    "email": "string",
                    "organizer": true,
                    "responseStatus": "accepted"
                },
                {
                    "email": "string",
                    "self": true,
                    "responseStatus": "accepted"
                }
            ],
            "reminders": {
                "useDefault": true
            },
            "eventType": "default"
        }
    }
}
```

{% 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": "calendar id is required",
            "param": "calendarId",
            "location": "query"
        },
        {
            "msg": "calendar id must be a string",
            "param": "calendarId",
            "location": "query"
        }
    ]
}
```

{% endtab %}

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

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

{% 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 Event

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

Creates a calendar event

#### 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.                   |
| calendarId<mark style="color:red;">\*</mark>            | String   | The Microsoft calendar id                                                                           |
| eventData<mark style="color:red;">\*</mark>             | Object   | The event data. See the Required [**Event Data Object**](#event-data-object-example) example below. |
| eventData.title<mark style="color:red;">\*</mark>       | String   | The event title                                                                                     |
| eventData.description<mark style="color:red;">\*</mark> | String   | Event description                                                                                   |
| eventData.startDate<mark style="color:red;">\*</mark>   | DateTime | RFC3339 Timestamp                                                                                   |
| eventData.endDate<mark style="color:red;">\*</mark>     | DateTime | RFC3339 Timestamp                                                                                   |
| eventData.timeZone                                      | String   | Time Zone in IANA format                                                                            |
| eventData.location                                      | Object   | Location object - See the example [**Event Location Object**](#event-location-object-example)       |
| eventData.attendees                                     | Array    | Array of [**Attendee Objects**](#attendee-object-example)                                           |
| eventData.conferencing                                  | Object   | An [**Event Conferencing Object**](#event-conferencing-object-example)                              |
| eventData.phone                                         | String   | Phone number                                                                                        |
| eventData.phonePin                                      | String   | Optional pin if one is required to join the meeting                                                 |
| eventData.recurrence                                    | Object   | Recurrence object for recurring events. See the [**Recurrence Object**](#recurrence-object) below.  |
| eventData.meta                                          | Object   | Optional. Use this to add additional/extra event body fields.                                       |

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

```json
{
    "success": true,
    "data": {
        "kind": "calendar#event",
        "etag": "\"000000000000000\"",
        "id": "string",
        "status": "confirmed",
        "htmlLink": "string",
        "created": "2023-03-06T23:06:14.000Z",
        "updated": "2023-03-06T23:06:14.350Z",
        "summary": "Example Event",
        "description": "example",
        "location": "712 Applesauce Rd Austin, TX 73301",
        "creator": {
            "email": "example@gmail.com",
            "self": true
        },
        "organizer": {
            "email": "example@gmail.com",
            "self": true
        },
        "start": {
            "dateTime": "2023-03-06T18:06:12-05:00",
            "timeZone": "America/New_York"
        },
        "end": {
            "dateTime": "2023-03-06T18:36:12-05:00",
            "timeZone": "America/New_York"
        },
        "iCalUID": "string",
        "sequence": 0,
        "attendees": [
            {
                "email": "example@gmail.com",
                "displayName": "Jane Doe",
                "responseStatus": "needsAction"
            }
        ],
        "reminders": {
            "useDefault": true
        },
        "eventType": "default"
    }
}
```

{% 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="404: Not Found Calendar Not Found" %}

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

{% endtab %}

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

```json
{
    "errors": [
        {
            "value": {
                "description": "example",
                "startDate": "2023-03-06T23:12:25.069Z",
                "endDate": "2023-03-06T23:42:25.069Z",
                "timeZone": "America/New_York",
                "location": {
                    "street": "712 Applesauce Rd",
                    "city": "Austin",
                    "state": "TX",
                    "zipCode": "73301",
                    "country": "USA"
                },
                "attendees": [
                    {
                        "name": "Jane Doe",
                        "email": "example@gmail.com"
                    }
                ]
            },
            "msg": "eventData.title is required and must be a string",
            "param": "eventData",
            "location": "body"
        }
    ]
}
```

{% endtab %}
{% endtabs %}

### **Event Data Object Example**:

```json
{
      "title": "Example Event", // String - Required.
      "description": "example", // String - Required.
      "startDate": "2023-03-06T22:51:08.434Z", // RFC3339 timestamp  - Required.
      "endDate": "2023-03-06T23:21:08.434Z", // RFC3339 timestamp - Required.
      "timeZone": "America/New_York", // IANA Time Zone format - Optional.
      "location": {
          "street": "712 Applesauce Rd",
          "city": "Austin",
          "state": "TX",
          "zipCode": "73301",
          "country": "USA"
      }, // Object - Optional. (required when creating an event with a physocal location)
      "attendees": [
          {
              "name": "Jane Doe",
              "email": "example@gmail.com"
          }
         
      ] // Required.
      "phone": "" // string - Optional. Use if the meeting will be over phone
      "onlineMeetingUrl": "" // string - Optional. (Use this if you have an already generated conferencing url, like a Google Meet url for example)
        
}
```

### Event Location Object Example:

```json
{
    "street": "712 Applesauce Rd", // String - Required.
    "city": "Austin", // String - Required.
    "state": "TX", // String - Required.
    "zipCode": "73301", // String - Required.
    "country": "USA" // String - Required.
},
```

### Attendee Object Example:

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

### Event Conferencing Object:

```typescript
{
    "provider": string, // Required. Possible values: "zoom", "teams"
    "accountId": string, // Optional. - Only Required if provider = zoom. This is the ID for the connected Zoom account in Pyas.
    "waitingRoom": boolean // Optional. - Only Required if provider = zoom
}
```

### Event Data With Zoom Conferencing Example:

```json
{
        "title": "Example Event 2",
        "description": "example",
        "startDate": "2023-03-06T22:51:08.434Z",
        "endDate": "",
        "conferencing": {
            "provider": "zoom",
            "accountId": "some-account-id",
            "waitingRoom": true
        },
        "timeZone": "America/New_York",
        "attendees": [
            {
                "name": "Jane Doe",
                "email": "example@gmail.com"
            }
        ]
        
}
```

### Event Data With Teams Conferencing Example:

**\*\*Important:** *<mark style="color:orange;">In order for Microsoft Teams conferencing to be automatically generated with the calendar event, users must have Teams enabled as their Default Online Meeting Provider or be part of their Allowed Online Meeting Providers list in Outlook.</mark>*

```
{
        "title": "Example Event 2",
        "description": "example",
        "startDate": "2023-03-06T22:51:08.434Z",
        "endDate": "",
        "conferencing": {
            "provider": "teams"
        },
        "timeZone": "America/New_York",
        "attendees": [
            {
                "name": "Jane Doe",
                "email": "example@gmail.com"
            }
        ]
        
}
```

### 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>

## Event Data Meta Object Example

More request body fields from the official Microsoft Docs can be found here: <https://learn.microsoft.com/en-us/graph/api/resources/event?view=graph-rest-1.0>

Simply include the extra fields you need to `eventData.meta` like in the example below.&#x20;

Note: `eventData.meta` should only be used to include fields that aren't already a part of the standard body fields in the eventData object.

```typescript
{
    importance?: string // low, normal, high
    isAllDay?: boolean
    isCancelled?: boolean
    responseRequested?: boolean // true by default
    // etc...
}
```

### Example EventData with Meta Object

```json
{
        "title": "Test Event w/ Metadata",
        "description": "example with metadata",
        "startDate": "{{start_time}}",
        "endDate": "{{end_time}}",
        "timeZone": "America/New_York",
         "location": {
            "street": "712 Applesauce Rd",
            "city": "Austin",
            "state": "TX",
            "zipCode": "73301",
            "country": "USA"
        },
       
        "attendees": [
            {
                "name": "Jane Doe",
                "email": "user@outlook.com"
            }
           
        ],
        "meta": {
            "importance": "high"
        }
        
}
```

### Example EventData with Extended Properties

```json
{
        "title": "Test Event w/ Metadata",
        "description": "example with metadata",
        "startDate": "{{start_time}}",
        "endDate": "{{end_time}}",
        "timeZone": "America/New_York",
         "location": {
            "street": "712 Applesauce Rd",
            "city": "Austin",
            "state": "TX",
            "zipCode": "73301",
            "country": "USA"
        },
       
        "attendees": [
            {
                "name": "Jane Doe",
                "email": "user@outlook.com"
            }
           
        ],
        "meta": {
            "importance": "high",
            "singleValueExtendedProperties": [
                {
                    "id": "String {e97a3fd8-5391-4d50-887d-5dfaa93de27b} Name extendedProperties",
                    "value": "test"
                }
            ],
            "multiValueExtendedProperties": [
                 {
                   "id":"StringArray {66f5a359-4659-4830-9070-00050ec6ac6e} Name Recreation",
                   "value": ["Food", "Hiking", "Swimming"]
                 }
              ]
        }
        
}
```

## Update Event

<mark style="color:purple;">`PATCH`</mark> `https://api.pyas.io/microsoft/events/{id}`

Updates an Existing Event

#### Path Parameters

| Name                                   | Type   | Description  |
| -------------------------------------- | ------ | ------------ |
| {id}<mark style="color:red;">\*</mark> | String | The event 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.                                                      |
| calendarId<mark style="color:red;">\*</mark> | String | The Microsoft calendar id                                                                                                              |
| eventData<mark style="color:red;">\*</mark>  | Object | Event data object with the fields to update. See the [**Example Update Event Date Object**](#update-event-data-object-example) below.  |
| eventData.meta                               | Object | Optional. Additional fields to include in the update request. See the [Event Data Meta Object](#event-data-meta-object-example) above. |

{% tabs %}
{% tab title="200: OK Event updated successfully" %}

```json
{
    "success": true,
    "data": {
        "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#us...",
        "@odata.etag": "W/\"+K9fsQXPJUK+WQAiVksmowAAKw/Ytw==\"",
        "id": "AQMkADAwATNiZmYAZC01ZGQAN\...",
        "createdDateTime": "2023-04-25T19:17:48.2318596Z",
        "lastModifiedDateTime": "2023-04-25T19:17:51.5235851Z",
        "changeKey": "+K9fsQXPJUK+WQAiVkYtw==",
        "categories": [],
        "transactionId": null,
        "originalStartTimeZone": "UTC",
        "originalEndTimeZone": "UTC",
        "iCalUId": "040000008200E00074C5B7101A82E008000000002...",
        "reminderMinutesBeforeStart": 15,
        "isReminderOn": true,
        "hasAttachments": false,
        "subject": "Test Appointment",
        "bodyPreview": "This is an appoinemtment test",
        "importance": "normal",
        "sensitivity": "normal",
        "isAllDay": false,
        "isCancelled": false,
        "isOrganizer": true,
        "responseRequested": true,
        "seriesMasterId": null,
        "showAs": "busy",
        "type": "singleInstance",
        "webLink": "https://outlook.live.com/owa/?itemid=AQMkADA...",
        "onlineMeetingUrl": null,
        "isOnlineMeeting": false,
        "onlineMeetingProvider": "unknown",
        "allowNewTimeProposals": true,
        "occurrenceId": null,
        "isDraft": false,
        "hideAttendees": false,
        "responseStatus": {
            "response": "organizer",
            "time": "0001-01-01T00:00:00Z"
        },
        "body": {
            "contentType": "html",
            "content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nThis is an appoinemtment test\r\n</body>\r\n</html>\r\n"
        },
        "start": {
            "dateTime": "2023-04-25T19:17:44.8510000",
            "timeZone": "UTC"
        },
        "end": {
            "dateTime": "2023-04-25T19:47:44.8510000",
            "timeZone": "UTC"
        },
        "location": {
            "displayName": "712 Applesauce Rd",
            "locationUri": "",
            "locationType": "default",
            "uniqueId": "712 Applesauce Rd",
            "uniqueIdType": "private",
            "address": {
                "street": "712 Applesauce Rd",
                "city": "Austin",
                "state": "TX",
                "countryOrRegion": "USA",
                "postalCode": "73301"
            },
            "coordinates": {}
        },
        "locations": [
            {
                "displayName": "712 Applesauce Rd",
                "locationUri": "",
                "locationType": "default",
                "uniqueId": "712 Applesauce Rd",
                "uniqueIdType": "private",
                "address": {
                    "street": "712 Applesauce Rd",
                    "city": "Austin",
                    "state": "TX",
                    "countryOrRegion": "USA",
                    "postalCode": "73301"
                },
                "coordinates": {}
            }
        ],
        "recurrence": null,
        "attendees": [
            {
                "type": "required",
                "status": {
                    "response": "none",
                    "time": "0001-01-01T00:00:00Z"
                },
                "emailAddress": {
                    "name": "Jane Doe",
                    "address": "example@gmail.com"
                }
            }
        ],
        "organizer": {
            "emailAddress": {
                "name": "John Doe",
                "address": "user@outlook.com"
            }
        },
        "onlineMeeting": null
    }
}
```

{% endtab %}

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

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

{% 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": "eventData is required.",
            "param": "eventData",
            "location": "body"
        },
        {
            "msg": "eventData must be an object",
            "param": "eventData",
            "location": "body"
        },
        {
            "msg": "Invalid value",
            "param": "eventData",
            "location": "body"
        }
    ]
}
```

{% endtab %}
{% endtabs %}

### Update Event Data Object Example:

```json
{
        "title": "Interview",
        "description": "Interview with Elon",
        "startDate": "2023-03-06T22:51:08.434Z",
        "endDate": "2023-03-06T23:21:08.434Z",
        "timeZone": "America/New_York"
       
}
```

## Delete Event

<mark style="color:red;">`DELETE`</mark> `https://api.pyas.io/microsoft/events/{id}`

Deletes an existing event

#### Path Parameters

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

#### Query Parameters

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

#### Headers

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

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

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

{% endtab %}
{% endtabs %}
