# Edit External Events

#### Description
Allows the editing of external events, ie those not created through the Cronofy API connection.

See [Create or Update Event](/developers/api/events/upsert-event/index.md) for details of all possible parameters.

In order to make this call, you must request [elevated access to access the user's calendars](/developers/api/authorization/extended-permissions/index.md). Then, the event itself must be have its `options.update` flag set to `true`.

This endpoint is the same as for managed events, however rather than specifying an `event_id` you will instead use the `event_uid` of the externally created event:

#### URL format
```
{data_center_url}/v1/calendars/{calendar_id}/events
```

#### Example Request
```http
POST /v1/calendars/cal_n23kjnwrw2_jsdfjksn234/events HTTP/1.1
Host: {data_center_url}
Authorization: Bearer {ACCESS_TOKEN}
Content-Type: application/json; charset=utf-8

{
  "event_uid": "evt_external_54008b1a4a41730f8d5c6037",
  "summary": "Board meeting",
  "description": "Discuss plans for the next quarter.",
  "start": "2014-08-05T15:30:00Z",
  "end": "2014-08-05T17:00:00Z",
  "location": {
    "description": "Board room"
  }
}
```

When editing an externally created event the behavior is a little different to a partner event. Namely it is no longer an "upsert" so once the event is deleted you cannot recreate it. If you want to recreate an event we suggest that you instead create a fully managed event in its place.

#### Request parameters
##### `data_center_url` *(required)*

The URL for the data center you want to communicate with. Possible choices are:

- `api-au.cronofy.com` - Australia
- `api-ca.cronofy.com` - Canada
- `api-de.cronofy.com` - Germany
- `api-sg.cronofy.com` - Singapore
- `api-uk.cronofy.com` - United Kingdom
- `api.cronofy.com` - United States

Find out more about [Cronofy's data centers](/developers/data-centers/index.md).
#### Caveats
##### Recurring events
Recurring events are not editable. In order to know if an event can be deleted or updated, the `options` attribute can be inspected when making a [Read Events](/developers/api/events/read-events/index.md) request.

Recurring events can also be identified by the `recurring` Boolean attribute on events when making a [Read Events](/developers/api/events/read-events/index.md) request.

#### Error responses
##### not_found
If the provided `event_uid` does not exist, we will return a `not_found` error and not a 2xx status code. When editing an external event, the typical usage would involve either making a [Read Events](/developers/api/events/read-events/index.md) call or, preferably, having a [cached read events response updated via our change push notifications](/developers/faqs/event-management/recommended-sync/index.md)), and confirming the event is:

- present.

- deletable (through inspecting [options](/developers/api/events/read-events/index.md) and confirming `delete` or `update` is set to `true`).

##### cannot_update_event
Make a [Read Events](/developers/api/events/read-events/index.md) request and ensure the event is not recurring (check the `recurring` response parameter), and can be deleted or updated (check the `options` attribute).



---
[Read in HTML](/developers/api/events/edit-external-events/)