更新事件
本文内容
命名空间:microsoft.graph
更新 event 对象的属性。
此 API 可用于以下国家级云部署 。
全局服务
美国政府 L4
美国政府 L5 (DOD)
由世纪互联运营的中国
✅
✅
✅
✅
更新特定属性的注释
更新相应属性时,请注意以下行为或建议:
权限
要调用此 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
事件的重要性。 可能的值包括 low
、normal
、high
。
isAllDay
Boolean
如果事件持续一整天,则设置为 true。
isOnlineMeeting
Boolean
若此事件包含联机会议信息则为 True
,反之则为 false
。 默认为 false。 可选。
isReminderOn
Boolean
如果设置警报以提醒用户有事件,则设置为 true。
位置
位置
事件的位置。
locations
location 集合
举办或参加活动的地点。
location 和 locations 属性总是相互对应。 如果更新 location 属性,locations 集合中所有以前的位置都将被删除并替换为新的 location 值。
onlineMeetingProvider
onlineMeetingProviderType
表示联机会议服务提供商。 可取值为:teamsForBusiness
、skypeForBusiness
和 skypeForConsumer
。 可选。
recurrence
PatternedRecurrence
事件的定期模式。
reminderMinutesBeforeStart
Int32
事件开始时间(即提醒警报发生时间)之前的分钟数。
responseRequested
Boolean
如果发件人希望接收事件被接受或拒绝时的响应,则设置为 true。
sensitivity
String
可能的值包括 normal
、personal
、private
、confidential
。
showAs
String
要显示的状态。 可能的值包括 free
、tentative
、busy
、oof
、workingElsewhere
、unknown
。
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"]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Event
{
OriginalStartTimeZone = "originalStartTimeZone-value",
OriginalEndTimeZone = "originalEndTimeZone-value",
ResponseStatus = new ResponseStatus
{
Response = ResponseType.None,
Time = DateTimeOffset.Parse("datetime-value"),
},
Recurrence = null,
ReminderMinutesBeforeStart = 99,
IsOnlineMeeting = true,
OnlineMeetingProvider = OnlineMeetingProviderType.TeamsForBusiness,
IsReminderOn = true,
HideAttendees = false,
Categories = new List<string>
{
"Red category",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.Events["{event-id}"].PatchAsync(requestBody);
有关如何将 SDK 添加 到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档 。
mgc users events patch --user-id {user-id} --event-id {event-id} --body '{\
"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"]\
}\
'
有关如何将 SDK 添加 到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档 。
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewEvent()
originalStartTimeZone := "originalStartTimeZone-value"
requestBody.SetOriginalStartTimeZone(&originalStartTimeZone)
originalEndTimeZone := "originalEndTimeZone-value"
requestBody.SetOriginalEndTimeZone(&originalEndTimeZone)
responseStatus := graphmodels.NewResponseStatus()
response := graphmodels.NONE_RESPONSETYPE
responseStatus.SetResponse(&response)
time , err := time.Parse(time.RFC3339, "datetime-value")
responseStatus.SetTime(&time)
requestBody.SetResponseStatus(responseStatus)
recurrence := null
requestBody.SetRecurrence(&recurrence)
reminderMinutesBeforeStart := int32(99)
requestBody.SetReminderMinutesBeforeStart(&reminderMinutesBeforeStart)
isOnlineMeeting := true
requestBody.SetIsOnlineMeeting(&isOnlineMeeting)
onlineMeetingProvider := graphmodels.TEAMSFORBUSINESS_ONLINEMEETINGPROVIDERTYPE
requestBody.SetOnlineMeetingProvider(&onlineMeetingProvider)
isReminderOn := true
requestBody.SetIsReminderOn(&isReminderOn)
hideAttendees := false
requestBody.SetHideAttendees(&hideAttendees)
categories := []string {
"Red category",
}
requestBody.SetCategories(categories)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
events, err := graphClient.Me().Events().ByEventId("event-id").Patch(context.Background(), requestBody, nil)
有关如何将 SDK 添加 到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档 。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Event event = new Event();
event.setOriginalStartTimeZone("originalStartTimeZone-value");
event.setOriginalEndTimeZone("originalEndTimeZone-value");
ResponseStatus responseStatus = new ResponseStatus();
responseStatus.setResponse(ResponseType.None);
OffsetDateTime time = OffsetDateTime.parse("datetime-value");
responseStatus.setTime(time);
event.setResponseStatus(responseStatus);
event.setRecurrence(null);
event.setReminderMinutesBeforeStart(99);
event.setIsOnlineMeeting(true);
event.setOnlineMeetingProvider(OnlineMeetingProviderType.TeamsForBusiness);
event.setIsReminderOn(true);
event.setHideAttendees(false);
LinkedList<String> categories = new LinkedList<String>();
categories.add("Red category");
event.setCategories(categories);
Event result = graphClient.me().events().byEventId("{event-id}").patch(event);
有关如何将 SDK 添加 到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档 。
const options = {
authProvider,
};
const client = Client.init(options);
const event = {
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']
};
await client.api('/me/events/{id}')
.update(event);
有关如何将 SDK 添加 到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档 。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Event;
use Microsoft\Graph\Generated\Models\ResponseStatus;
use Microsoft\Graph\Generated\Models\ResponseType;
use Microsoft\Graph\Generated\Models\OnlineMeetingProviderType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Event();
$requestBody->setOriginalStartTimeZone('originalStartTimeZone-value');
$requestBody->setOriginalEndTimeZone('originalEndTimeZone-value');
$responseStatus = new ResponseStatus();
$responseStatus->setResponse(new ResponseType('none'));
$responseStatus->setTime(new \DateTime('datetime-value'));
$requestBody->setResponseStatus($responseStatus);
$requestBody->setRecurrence(null);
$requestBody->setReminderMinutesBeforeStart(99);
$requestBody->setIsOnlineMeeting(true);
$requestBody->setOnlineMeetingProvider(new OnlineMeetingProviderType('teamsForBusiness'));
$requestBody->setIsReminderOn(true);
$requestBody->setHideAttendees(false);
$requestBody->setCategories(['Red category', ]);
$result = $graphServiceClient->me()->events()->byEventId('event-id')->patch($requestBody)->wait();
有关如何将 SDK 添加 到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档 。
Import-Module Microsoft.Graph.Calendar
$params = @{
originalStartTimeZone = "originalStartTimeZone-value"
originalEndTimeZone = "originalEndTimeZone-value"
responseStatus = @{
response = ""
time = [System.DateTime]::Parse("datetime-value")
}
recurrence = $null
reminderMinutesBeforeStart = 99
isOnlineMeeting = $true
onlineMeetingProvider = "teamsForBusiness"
isReminderOn = $true
hideAttendees = $false
categories = @(
"Red category"
)
}
# A UPN can also be used as -UserId.
Update-MgUserEvent -UserId $userId -EventId $eventId -BodyParameter $params
有关如何将 SDK 添加 到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档 。
from msgraph import GraphServiceClient
from msgraph.generated.models.event import Event
from msgraph.generated.models.response_status import ResponseStatus
from msgraph.generated.models.response_type import ResponseType
from msgraph.generated.models.online_meeting_provider_type import OnlineMeetingProviderType
graph_client = GraphServiceClient(credentials, scopes)
request_body = Event(
original_start_time_zone = "originalStartTimeZone-value",
original_end_time_zone = "originalEndTimeZone-value",
response_status = ResponseStatus(
response = ResponseType.None,
time = "datetime-value",
),
recurrence = None,
reminder_minutes_before_start = 99,
is_online_meeting = True,
online_meeting_provider = OnlineMeetingProviderType.TeamsForBusiness,
is_reminder_on = True,
hide_attendees = False,
categories = [
"Red category",
],
)
result = await graph_client.me.events.by_event_id('event-id').patch(request_body)
有关如何将 SDK 添加 到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档 。
响应
以下示例显示了相应的响应。 注意:为了提高可读性,可能缩短了此处显示的响应对象。
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"
}
}
相关内容