イベントを更新する
-
[アーティクル]
-
-
名前空間: microsoft.graph
イベント オブジェクトのプロパティを更新する。
特定のプロパティを更新するための注意事項
対応するプロパティを更新する場合は、次の動作または推奨事項に注意してください。
attendees プロパティと会議の更新
- リクエスト本文に attendees プロパティのみを含むイベント更新は、変更された出席者のみに会議更新を送信します。
- 配布リストのメンバーとして指定された出席者を削除するイベント更新は、すべての出席者に会議の更新を送信します。
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 |
Attendee |
イベントの参加者のコレクションです。 |
| body |
ItemBody |
イベントに関連付けられたメッセージの本文。 |
| categories |
String collection |
イベントに関連付けられたカテゴリ。 |
| end |
DateTimeTimeZone |
イベントが終了する日付、時刻、タイムゾーン。 |
| hideAttendees |
Boolean |
true に設定すると、各出席者は会議出席依頼と会議の 管理 リストにのみ表示されます。規定値は FALSE です。 |
| importance |
String |
イベントの重要度。 使用可能な値: low、normal、high。 |
| isAllDay |
Boolean |
イベントが一日中続く場合に、true に設定します。 |
| isOnlineMeeting |
Boolean |
このイベントにオンライン会議情報がある場合は True、そうでない場合は false。 既定値は false です。 オプション。 |
| isReminderOn |
Boolean |
ユーザーにイベントを通知するアラートを設定する場合は、true に設定します。 |
| location |
Location |
イベントの場所。 |
| 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。 |
| 開始 |
DateTimeTimeZone |
イベントの開始日、時間、タイム ゾーン。 |
| subject |
String |
イベントの件名行のテキスト。 |
イベント リソースは 拡張機能をサポートしているため、PATCH 操作を使用して、既存の イベント インスタンスで拡張機能のカスタム プロパティにあるアプリ固有のデータを追加、更新、または削除することができます。
アップデートする イベント が複数の出席者が含まれる定期的で主要なイベントである場合、インスタンス別にそれぞれに更新され、主要な系列と更新された各インスタンスごとに複数の通知メールが送信されます。
応答
成功した場合、このメソッドは 200 OK 応答コードと、応答本文で、更新された event オブジェクトを返します。
注: この方法は、エラー コードErrorOccurrenceCrossingBoundary で HTTP 400 無効な要求の応答を返すことができます。そして、次のエラー メッセージが表示されます: 変更したアイテムが、隣接するアイテムと交差または重複しています。 定期的な予定の例外にある 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"]
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var @event = 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"
}
};
await graphClient.Me.Events["{event-id}"]
.Request()
.UpdateAsync(@event);
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var @event = 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"
}
};
await graphClient.Me.Events["{event-id}"]
.Request()
.UpdateAsync(@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);
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 のドキュメントを参照してください。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
Event event = new Event();
event.originalStartTimeZone = "originalStartTimeZone-value";
event.originalEndTimeZone = "originalEndTimeZone-value";
ResponseStatus responseStatus = new ResponseStatus();
responseStatus.response = ResponseType.NONE;
responseStatus.time = OffsetDateTimeSerializer.deserialize("datetime-value");
event.responseStatus = responseStatus;
event.recurrence = null;
event.reminderMinutesBeforeStart = 99;
event.isOnlineMeeting = true;
event.onlineMeetingProvider = OnlineMeetingProviderType.TEAMS_FOR_BUSINESS;
event.isReminderOn = true;
event.hideAttendees = false;
LinkedList<String> categoriesList = new LinkedList<String>();
categoriesList.add("Red category");
event.categories = categoriesList;
graphClient.me().events("{id}")
.buildRequest()
.patch(event);
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
Event event = new Event();
event.originalStartTimeZone = "originalStartTimeZone-value";
event.originalEndTimeZone = "originalEndTimeZone-value";
ResponseStatus responseStatus = new ResponseStatus();
responseStatus.response = ResponseType.NONE;
responseStatus.time = OffsetDateTimeSerializer.deserialize("datetime-value");
event.responseStatus = responseStatus;
event.recurrence = null;
event.reminderMinutesBeforeStart = 99;
event.isOnlineMeeting = true;
event.onlineMeetingProvider = OnlineMeetingProviderType.TEAMS_FOR_BUSINESS;
event.isReminderOn = true;
event.hideAttendees = false;
LinkedList<String> categoriesList = new LinkedList<String>();
categoriesList.add("Red category");
event.categories = categoriesList;
graphClient.me().events("{id}")
.buildRequest()
.patch(event);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewEvent()
originalStartTimeZone := "originalStartTimeZone-value"
requestBody.SetOriginalStartTimeZone(&originalStartTimeZone)
originalEndTimeZone := "originalEndTimeZone-value"
requestBody.SetOriginalEndTimeZone(&originalEndTimeZone)
responseStatus := msgraphsdk.NewResponseStatus()
requestBody.SetResponseStatus(responseStatus)
response := ""
responseStatus.SetResponse(&response)
time, err := time.Parse(time.RFC3339, "datetime-value")
responseStatus.SetTime(&time)
requestBody.SetRecurrence(nil)
reminderMinutesBeforeStart := int32(99)
requestBody.SetReminderMinutesBeforeStart(&reminderMinutesBeforeStart)
isOnlineMeeting := true
requestBody.SetIsOnlineMeeting(&isOnlineMeeting)
onlineMeetingProvider := "teamsForBusiness"
requestBody.SetOnlineMeetingProvider(&onlineMeetingProvider)
isReminderOn := true
requestBody.SetIsReminderOn(&isReminderOn)
hideAttendees := false
requestBody.SetHideAttendees(&hideAttendees)
requestBody.SetCategories( []String {
"Red category",
}
eventId := "event-id"
graphClient.Me().EventsById(&eventId).Patch(requestBody)
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 のドキュメントを参照してください。
応答
以下に応答の例を示します。注: ここに示す応答オブジェクトは、読みやすさのために短縮されている可能性があります。
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"
}
}
関連項目