更新事件

命名空间:microsoft.graph

更新 event 对象的属性。

此 API 可用于以下国家级云部署

全局服务 美国政府 L4 美国政府 L5 (DOD) 由世纪互联运营的中国

更新特定属性的注释

更新相应属性时,请注意以下行为或建议:

  • 与会者属性和会议更新

    • 在请求正文中仅包含与会者属性的事件更新仅向已更改的与会者发送会议更新。
    • 删除指定为通讯组列表成员的与会者的事件更新会向所有与会者发送会议更新。
  • Body 属性和联机会议

    在更新已设置为联机会议的事件的正文之前,请确保首先获取 Body 属性,对内容应用适当的更改,并保留联机会议的会议 blob。 无意中从正文中删除会议 blob 会禁用联机会议。

  • 结束开始属性及其时区

    更新事件开始或结束时间的时区时,首先找到支持的时区,以确保仅设置针对用户的邮箱服务器配置的时区。

权限

要调用此 API,需要以下权限之一。 若要了解详细信息,包括如何选择权限的信息,请参阅权限

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户) Calendars.ReadWrite
委派(个人 Microsoft 帐户) Calendars.ReadWrite
应用程序 Calendars.ReadWrite

HTTP 请求

PATCH /me/events/{id}
PATCH /users/{id | userPrincipalName}/events/{id}
PATCH /groups/{id}/events/{id}

PATCH /me/calendar/events/{id}
PATCH /users/{id | userPrincipalName}/calendar/events/{id}
PATCH /groups/{id}/calendar/events/{id}

PATCH /me/calendars/{id}/events/{id}
PATCH /users/{id | userPrincipalName}/calendars/{id}/events/{id}

PATCH /me/calendarGroups/{id}/calendars/{id}/events/{id}
PATCH /users/{id | userPrincipalName}/calendarGroups/{id}/calendars/{id}/events/{id}

请求标头

名称 类型 说明
Authorization string 持有者 {token}。 必填。 详细了解 身份验证和授权

请求正文

在请求正文中,提供应更新的属性的值。 请求正文中未包含的现有属性会保留其以前的值,或者根据对其他属性值的更改重新计算。

下表指定可更新的属性。

属性 类型 说明
attendees 与会者 事件的与会者集合。
body ItemBody 与事件相关联的邮件正文。
categories String collection 与事件相关联的类别。
end DateTimeTimeZone 事件结束的日期、时间和时区。
hideAttendees 布尔值 如果设置为 true,则每个与会者仅会在会议请求和会议 跟踪 列表中看到自己。 默认为 false。
importance String 事件的重要性。 可能的值包括 lownormalhigh
isAllDay Boolean 如果事件持续一整天,则设置为 true。
isOnlineMeeting Boolean 若此事件包含联机会议信息则为 True,反之则为 false。 默认为 false。 可选。
isReminderOn Boolean 如果设置警报以提醒用户有事件,则设置为 true。
位置 位置 事件的位置。
locations location 集合 举办或参加活动的地点。 locationlocations 属性总是相互对应。 如果更新 location 属性,locations 集合中所有以前的位置都将被删除并替换为新的 location 值。
onlineMeetingProvider onlineMeetingProviderType 表示联机会议服务提供商。 可取值为:teamsForBusinessskypeForBusinessskypeForConsumer。 可选。
recurrence PatternedRecurrence 事件的定期模式。
reminderMinutesBeforeStart Int32 事件开始时间(即提醒警报发生时间)之前的分钟数。
responseRequested Boolean 如果发件人希望接收事件被接受或拒绝时的响应,则设置为 true。
sensitivity String 可能的值包括 normalpersonalprivateconfidential
showAs String 要显示的状态。 可能的值包括 freetentativebusyoofworkingElsewhereunknown
start DateTimeTimeZone 事件的开始日期、时间和时区。
subject String 事件的主题行文本。

由于事件资源支持扩展,因此可以使用 PATCH 操作在现有事件实例的扩展自定义属性中添加、更新或删除自己的特定于应用的数据。

如果你正更新的事件是定期系列的主事件,包含多个与会者,并且具有已单独更新的实例,则将发送多个通知电子邮件:一个用于主系列,另一个用于已更新的实例。

响应

如果成功,此方法在响应正文中返回 200 OK 响应代码和更新的 event 对象。

注意:此方法可以返回 HTTP 400 错误请求响应,错误代码为 ErrorOccurrenceCrossingBoundary,并显示以下错误消息:已修改的事件正在交叉或重叠相邻的事件。 这表示更新违反了重复例外的以下 Outlook 限制:事件无法移动到上一次发生的日期或之前,并且无法移动到下一次发生的日期或之后。

示例

请求

以下示例显示了一个请求。

PATCH https://graph.microsoft.com/v1.0/me/events/{id}
Content-type: application/json

{
  "originalStartTimeZone": "originalStartTimeZone-value",
  "originalEndTimeZone": "originalEndTimeZone-value",
  "responseStatus": {
    "response": "",
    "time": "datetime-value"
  },
  "recurrence": null,
  "reminderMinutesBeforeStart": 99,
  "isOnlineMeeting": true,
  "onlineMeetingProvider": "teamsForBusiness",
  "isReminderOn": true,
  "hideAttendees": false,
  "categories": ["Red category"]
}
响应

以下示例显示了相应的响应。 注意:为了提高可读性,可能缩短了此处显示的响应对象。

HTTP/1.1 200 OK
Content-type: application/json

{
  "originalStartTimeZone": "originalStartTimeZone-value",
  "originalEndTimeZone": "originalEndTimeZone-value",
  "responseStatus": {
    "response": "",
    "time": "datetime-value"
  },
  "recurrence": null,
  "reminderMinutesBeforeStart": 99,
  "isOnlineMeeting": true,
  "onlineMeetingProvider": "teamsForBusiness",
  "isReminderOn": true,
  "hideAttendees": false,
  "onlineMeeting": {
        "joinUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzIyNzhlMGEtM2YyZC00ZmY0LTlhNzUtZmZjNWFmZGNlNzE2%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22bc55b173-cff6-457d-b7a1-64bda7d7581a%22%7d",
        "conferenceId": "177513992",
        "tollNumber": "+91 22 6241 6885"
  }
}