命名空间: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 文档。
# Code snippets are only available for the latest version. Current version is 1.x
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
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
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"
}
}
相关内容