---
title: "REST API: Update Event"
type: "wiki"
space: "Axero Documentation"
author: "Anonymous User"
created: 2011-03-28T07:03:28Z
updated: 2026-10-02T12:57:00Z
tags: ["API"]
url: "https://my.axerosolutions.com/spaces/5/axero-documentation/wiki/view/490/rest-api-update-event"
---

# REST API: Update Event

[Open API Guide](https://my.axerosolutions.com/spaces/5/axero-documentation/api-guide?id=490)
PUT/api/events/\{eventid\}

Update an existing event on the intranet calendar. Supports modifying event details, location, recurrence settings, and visibility options. ResponseMessage is the update status name: ToBePublished when the event is saved and published, or PendingWorkflow when an approval workflow holds it for review. ResponseData is the saved event.

## Request

### Request Header
| Header | Required | Value | Description |
| :--- | :--- | :--- | :--- |
| `Authorization` | YES | `Bearer YOUR_TOKEN` | Bearer token for the authenticated user. [Learn how to create Bearer tokens](https://my.axerosolutions.com/spaces/5/axero-documentation/wiki/view/108973/creating-bearer-tokens). |
| `Content-Type` | YES | `application/json` | Must be set to `application/json` |
### Required Parameters
| Parameter | Type | Required | Location | Description |
| :--- | :--- | :--- | :--- | :--- |
| `EventID` | Integer | YES | Path | Unique identifier for a particular event |
| `Event JSON` | String | YES | Body | A JSON object \(a set of named fields and their values\) with the event properties to change. Field names are case-sensitive: a name in the wrong case, or one the event does not have, is ignored. Properties you leave out keep their current values, except the dates. Send StartDate and EndDate with every update. A body without them shifts the event by the caller's time-zone offset from UTC each time it is saved \(for example, five hours later for a caller on US Central daylight time\). A request with no body at all is not refused: it answers 200 and changes nothing. See the sample below for the format. |
### Optional Parameters
| Parameter | Type | Required | Location | Description |
| :--- | :--- | :--- | :--- | :--- |
| `Title` | String | NO | Body | The event's title. An empty title is refused \(All required parameters are not provided.\). A JSON list or another value that is not text is saved as its JSON text. |
| `Description` | String | NO | Body | The event's description. An empty value is saved as an empty description. |
| `EventTypeID` | Integer | NO | Body | Unique ID to identify the event type. A value that is not a number, or one that matches no event type, is refused \(All required parameters are not provided.\). |
| `IsPrivate` | Boolean | NO | Body | Specifies if the event is private. A value other than true or false is read as false. |
| `CanInviteOthers` | Boolean | NO | Body | Set to true to let anyone who can view the event add people to it. A value other than true or false is read as false. |
| `SpaceID` | Integer | NO | Body | Unique ID of the space the event belongs to. Sending another space's ID moves the event to that space. A value that is not a number is read as 0, which moves the event out of its space to the top level of the site. |
| `Address` | String | NO | Body | Address where the event will take place. A JSON list or another value that is not text is saved as its JSON text. |
| `Address2` | String | NO | Body | Additional address information, such as suite or apartment number. A JSON list or another value that is not text is saved as its JSON text. |
| `CountryID` | Integer | NO | Body | The unique identifier for the country where the event is taking place. Get Countries lists the countries and their codes. A value that is not a number is read as 0. |
| `StateID` | Integer | NO | Body | The unique identifier for the state or region where the event is taking place. Get States lists the states and their codes. A value that is not a number is read as 0. |
| `City` | String | NO | Body | The city where the event will take place. A JSON list or another value that is not text is saved as its JSON text. |
| `Zip` | String | NO | Body | Zip code of event's address. Up to 10 characters are kept; the rest is cut. A JSON list or another value that is not text is saved as its JSON text. |
| `IsBusy` | Boolean | NO | Body | Indicates whether the event is marked as busy on calendars. If omitted, the current value is kept. A value other than true or false is read as false. |
| `IsFeatured` | Boolean | NO | Body | Marks the event as featured. If omitted, the current value is kept. A value other than true or false is read as false. |
| `AllowComments` | Boolean | NO | Body | Specifies if attendees or users can comment on the event. If omitted, the current value is kept. A value other than true or false is read as false. |
| `AllowLikes` | Boolean | NO | Body | Specifies if attendees or users can like the event. If omitted, the current value is kept. A value other than true or false is read as false. |
| `AllowRating` | Boolean | NO | Body | Specifies if attendees or users can rate the event. If omitted, the current value is kept. A value other than true or false is read as false. |
| `MaxAttendees` | Integer | NO | Body | Sets a limit on the maximum number of attendees allowed for the event. A value that is not a number is read as 0. |
| `WhoShouldAttend` | String | NO | Body | Specifies what type of people should attend the event. A JSON list or another value that is not text is saved as its JSON text. |
| `Organization` | String | NO | Body | Organization of the event's creator. A JSON list or another value that is not text is saved as its JSON text. |
| `Website` | String | NO | Body | Website of the event's creator. A JSON list or another value that is not text is saved as its JSON text. |
| `Telephone` | String | NO | Body | Telephone number of the event author. Up to 20 characters are kept; the rest is cut. A JSON list or another value that is not text is saved as its JSON text. |
| `VenueName` | String | NO | Body | Name of the event venue. A JSON list or another value that is not text is saved as its JSON text. |
| `IsAllDay` | Boolean | NO | Body | Specifies if the event is an all-day event. A value other than true or false is read as false. |
| `IsRepeat` | Boolean | NO | Body | Specifies if the event is to be repeated.  If omitted, the current value is kept. A value other than true or false is read as false, so the event stops repeating. |
| `IsOnline` | Boolean | NO | Body | Set by the platform, not by this field: an event reads true only when it has an online meeting created through a connected account, and is saved as false otherwise, whatever is sent. |
| `Frequency` | Integer | NO | Body | Defines the frequency of the recurring event. Possible values: 0 = None \(default\); 1 = Daily; 2 = Weekly; 4 = Monthly; 8 = Quarterly \(not supported: the value is saved, but RepeatSummary comes back empty\); 16 = Yearly; 32 = Every weekday \(Monday to Friday\); 64 = Every Monday, Wednesday, and Friday; 128 = Every Tuesday and Thursday. A value that is not a number is read as 0 \(None\). A number that is not in the list fails the update \(200 with IsError true; the message begins System.NullReferenceException\). |
| `DayInterval` | Integer | NO | Body | The number of days between occurrences when the event repeats daily: every day, every 2 days, every 3 days, and so on. For example, setting it to 3 makes the event occur every 3 days. Default: 1. A value that is not a number resets it to 1. |
| `WeeklyInterval` | Integer | NO | Body | The number of weeks between occurrences when the event repeats weekly. For example, 1 means every week, 2 means every 2 weeks, and 3 means every 3 weeks. Default: 1. A value that is not a number resets it to 1. |
| `MonthInterval` | Integer | NO | Body | The number of months between occurrences when the event repeats monthly: every month, every 2 months, every 3 months, and so on. Setting it to 2 makes the event repeat every 2 months. Default: 1. A value that is not a number resets it to 1. |
| `YearInterval` | Integer | NO | Body | The number of years between occurrences when the event repeats yearly: every year, every 2 years, every 3 years, and so on. Default: 1. A value that is not a number resets it to 1. |
| `MonthRepeatBy` | Integer | NO | Body | How a monthly event repeats. 1: on the same date each month, so an event on the 10th of January repeats on the 10th of every month. 2: on the same weekday of the month, so an event on the second Tuesday of January repeats on the second Tuesday of every month. Default: 1. A value that is not a number fails the update \(200 with IsError true; the message begins System.ArgumentException\). A number outside the list is saved as sent. |
| `DaysOfWeek` | Integer | NO | Body | The days of the week the event occurs on: 1 = Sunday, 2 = Monday, 4 = Tuesday, 8 = Wednesday, 16 = Thursday, 32 = Friday, 64 = Saturday. Add the numbers together for several days: Monday and Tuesday is 2 \(Monday\) plus 4 \(Tuesday\), or 6. Default: the day of the week of the event's start date, so 4 \(Tuesday\) for an event that starts on a Tuesday. A value that is not a number applies the default. |
| `DayOfMonth` | Integer | NO | Body | Specifies a particular day of the month for events with a 'Monthly' frequency. Not applied: the event repeats on the day of the month of its start date, whatever is sent. |
| `RepeatEndType` | Integer | NO | Body | Defines how the recurring event ends: 1 Never ends, 2 Ends after EndAfterOccurences occurrences, 3 Ends on RepeatEndDateISO. 3 takes effect only when the event has a RepeatEndDateISO, sent in the same request or already saved. 2 takes effect only with EndAfterOccurences. A value that is not a number fails the update \(200 with IsError true; the message begins System.ArgumentException\). Sending 1 does not remove a saved EndAfterOccurences count, and the event still ends after that many occurrences. Clear the count as the EndAfterOccurences row describes. |
| `EndAfterOccurences` | Integer | NO | Body | How many times a recurring event takes place before the repetition stops. Sending it sets RepeatEndType to 2. A value that is not a number clears the count, and the event then repeats with no end. |
| `RepeatEndDateISO` | String | NO | Body | The date and time the recurring event stops, in ISO format \(YYYY-MM-DDTHH:mm:ss\) and the time zone of the user sending the request. It takes effect when RepeatEndType is 3, sent in the same request or already saved. A value that is not a date fails the update \(200 with IsError true, System.FormatException\). |
| `StartDate` | String | NO | Body | When the event begins, in ISO 8601 form such as 2026-12-01T19:30:00, in the caller's time zone. A value ending in Z is read as UTC. Do not send an offset such as -05:00: the event is saved at the wrong time. Send it with EndDate on every update, as the Event JSON row explains. |
| `EndDate` | String | NO | Body | When the event ends, in ISO 8601 form such as 2026-12-01T22:00:00, in the caller's time zone, with the same rules for Z and offsets as StartDate. It must be no earlier than StartDate. Send it with StartDate on every update. |
## Example

### Request Header

```
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
```

### Request URL

`https://your-site.com/api/events/2304`

### Request Body

```
{
  "Title": "Quarterly planning session (updated)",
  "StartDate": "2026-10-07T15:00:00",
  "EndDate": "2026-10-07T16:00:00"
}
```

### Success Response

```
{
  "IsError": false,
  "ResponseMessage": "ToBePublished",
  "ResponseData": {
    "CanBeViewed": true,
    "CanBeEdited": true,
    "CanBeDeleted": true,
    "iCalUID": "de9c5167-8e91-4844-af34-9f8905f3b46b-0000-8edb7988-5c25-444d-a4f2-03411f05026b@myintranet",
    "IsBusy": false,
    "AttendanceType": 0,
    "NewUsers": [],
    "IsShared": false,
    "CanInviteOthers": false,
    "InvitedByCRMContactID": 0,
    "RemovedResources": [],
    "AllowComments": false,
    "AllowLikes": false,
    "AllowRating": false,
    "EventID": 1582,
    "AlbumID": 0,
    "IsPrivate": false,
    "IsScheduled": true,
    "IsEvent": false,
    "IsClassPeriod": false,
    "MediaServerID": 90,
    "MainImageFileName": "",
    "CustomFieldOne": "",
    "CommentCount": 0,
    "EventTypeID": 695,
    "Title": "Quarterly planning session (updated)",
    "WorkFlowID": 0,
    "CurrentWorkFlowStepID": 0,
    "SpaceName": "Product Team",
    "SpaceURL": "/spaces/313/product-team",
    "Description": "Join us for a serene evening under the stars with Harmony in the Park, a classical music concert featuring renowned musicians performing timeless pieces from composers like Mozart, Beethoven, and Tchaikovsky. This enchanting event will transport you to a world of elegance and harmony, providing a perfect escape into the beauty of classical music.",
    "DescriptionUnprocessed": "Join us for a serene evening under the stars with Harmony in the Park, a classical music concert featuring renowned musicians performing timeless pieces from composers like Mozart, Beethoven, and Tchaikovsky. This enchanting event will transport you to a world of elegance and harmony, providing a perfect escape into the beauty of classical music.",
    "StartDate": "2026-10-07T19:00:00Z",
    "EndDate": "2026-10-07T20:00:00Z",
    "SpaceID": 313,
    "Views": 0,
    "IsFeatured": false,
    "IsPrivateSpace": false,
    "IsPublishedFromDraftMode": false,
    "Address": "Central Park",
    "Address2": "",
    "CountryID": 617,
    "Zip": "",
    "EventStatusID": 1,
    "UserName": "jane.doe",
    "Telephone": "",
    "CreatedOnDate": "2026-09-05T04:29:00.967",
    "Organization": "",
    "Keywords": "",
    "WhoShouldAttend": "Anyone interested in classical music",
    "City": "NYC",
    "Website": "",
    "VenueName": "",
    "EventTypeName": "Team meeting",
    "CountryName": "United States",
    "AttendanceID": 0,
    "UserID": 1042,
    "AvatarPath": "avatar.jpg",
    "IsOnline": false,
    "MetroID": 0,
    "FirstName": "Jane",
    "LastName": "Doe",
    "UserEmail": "jane.doe@example.com",
    "StateID": 0,
    "UserProfileURL": "https://your-site.com/people/jane.doe",
    "UserDisplayName": "Jane Doe",
    "UserAvatarFullUrl": "https://your-site.com/Assets/Uploaded-Photos/1042/avatar.jpg",
    "DateTimeSpan": "just now",
    "EventURL": "/spaces/313/product-team/events/details/1582?instance=2026-10-07T19:00:00.00",
    "EditEventURL": "/events/addedit?eventID=1582&spaceid=313",
    "StartDateText": "10/7/2026 3:00 PM",
    "EndDateText": "10/7/2026 4:00 PM",
    "UpdatedByUserID": 1042,
    "AttendeeCount": 0,
    "MayBeAttendeeCount": 0,
    "Rating": 0.0,
    "Location": "Central Park, NYC, United States",
    "StartTimeText": "3:00 PM",
    "EndTimeText": "4:00 PM",
    "EventBookedByUserID": 1042,
    "EventBookedByUserDisplayName": "Jane Doe",
    "EventBookedByUserProfileURL": "https://your-site.com/people/jane.doe",
    "Tags": [],
    "Reminders": [],
    "IsAllDay": false,
    "MaxAttendees": 0,
    "FrequencyChoice": 0,
    "Frequency": 0,
    "DaysOfWeek": 0,
    "IsRepeat": false,
    "QuarterInterval": 0,
    "QuarterlyInterval": 0,
    "MonthlyInterval": 0,
    "WeeklyInterval": 0,
    "DaysOfMonth": 0,
    "IsSundaySelected": false,
    "IsMondaySelected": false,
    "IsTuesdaySelected": false,
    "IsWednesdaySelected": false,
    "IsThursdaySelected": false,
    "IsFridaySelected": false,
    "IsSaturdaySelected": false,
    "IsFirstWeekOfMonthSelected": false,
    "IsSecondWeekOfMonthSelected": false,
    "IsThirdWeekOfMonthSelected": false,
    "IsFourthWeekOfMonthSelected": false,
    "IsLastWeekOfMonthSelected": false,
    "FrequencyTypeOption": 0,
    "QuarterlyOptions": 0,
    "QuarterlyIntervalOptions": 0,
    "MonthlyIntervalOptions": 0,
    "WeeklyIntervalOptions": 0,
    "DaysOfWeekOptions": 0,
    "RangeStartMonth": 0,
    "RangeEndMonth": 0,
    "FirstInstanceDate": "2026-10-07T19:00:00",
    "RepeatStartDate": "2026-10-07T19:00:00Z",
    "RepeatStartDateISO": "2026-10-07T15:00:00.00",
    "MonthRepeatBy": 0,
    "EndAfterOccurences": 0,
    "DayInterval": 0,
    "MonthInterval": 0,
    "DayOfMonth": 0,
    "YearInterval": 0,
    "RepeatEndType": 1,
    "StartDateWithRespectToUser": "2026-10-07T15:00:00",
    "EndDateWithRespectToUser": "2026-10-07T16:00:00",
    "RepeatStartDateWithRespectToUser": "2026-10-07T15:00:00",
    "RepeatEndDateWithRespectToUser": "0001-01-01T00:00:00",
    "SeriesEventID": 0,
    "InstanceReplaceDate": "2026-10-07T19:00:00",
    "InstanceExceptions": 0,
    "InstanceChanges": 0,
    "When": "10/7/2026 3:00 PM <i class=\"icon-long-arrow-right\"></i>  4:00 PM (Eastern Daylight Time)",
    "RepeatSummary": "",
    "ResourceIDCSV": "",
    "TimezoneOffset": -5.0,
    "TimeZoneID": "Eastern Standard Time",
    "IsDayLightSaving": false,
    "InstanceNumber": 0,
    "TenantID": 1
  }
}
```

### Error Response

```
{
  "Message": "The request is invalid."
}
```

## Error Handling

| Status Code | Likely Cause | Next Action |
| :--- | :--- | :--- |
| 400 Bad Request | eventID in the path is not an integer. | Send a numeric eventID and a JSON object body. |
| 401 Unauthorized | Missing or invalid Bearer token. | Check token validity. [Learn how to create Bearer tokens →](https://my.axerosolutions.com/spaces/5/axero-documentation/wiki/view/108973/creating-bearer-tokens) |
| 403 Forbidden | The caller cannot edit the event. | Call as the event's author or a user who can manage events in its space. |
| 200 with IsError | The update was refused or failed, and ResponseMessage says why. All required parameters are not provided. means Title is empty, StartDate or EndDate is not a date, EndDate is earlier than StartDate, or EventTypeID is not the ID of an event type. A message that begins System.ArgumentException means MonthRepeatBy or RepeatEndType is not a number. System.FormatException means RepeatEndDateISO is not a date. System.NullReferenceException means no event has that ID, or Frequency is a number outside its list. | Verify the eventID and keep the required fields filled. |
| 500 Server Error | Not returned for a failed update: the endpoint reports its own failures at 200 with IsError true. | Read ResponseMessage on a 200 response. |

## Rate Limits

While Axero does not enforce hard rate limits by default, we recommend the following best practices to ensure optimal performance:

- **Sustained Request Rate:** Do not exceed 5 API calls per second
- **Sequential Processing:** Wait for each request to complete before sending the next in automated workflows
- **Concurrent Connections:** If parallel processing is required, limit to 3 or fewer simultaneous requests
- **Response Timeout:** Ensure API responses complete within 15 seconds during testing

Axero may implement temporary rate restrictions if excessive API usage affects overall site performance. For high-volume integrations, contact Axero to discuss your requirements.
