Outlook で予定表を共有または委任する
[アーティクル]
03/21/2024
9 人の共同作成者
フィードバック
この記事の内容
Outlook では、予定表の所有者が別のユーザーと予定表を共有できます。 所有者は、非公開でないイベントのうち表示可能にする情報を指定して、同じ組織内のユーザーに予定表への書き込みアクセス権限を付与できます。
また、所有者は、所有者のプライマリ 予定表にある会議の管理を別のユーザーに委任することもできます。 デリゲートは、すべての情報を表示でき、プライベート以外のイベントへの書き込みアクセス権を持つ共有受信者です。 会議出席依頼と返信を受信することも、所有者の代理として会議出席依頼に応答することもできます。 さらに、所有者は予定表にある所有者の非公開 イベントを表示するアクセス許可を代理人に明示的に付与することもできます。
予定表の共有または委任を有効にする前に、所有者は共有受信者を送信するか招待を委任し、共有受信者または代理人が招待を受け入れるか、共有または委任された予定表をアクセス用に明示的に追加します。 招待と共有または委任する予定表の追加は、Outlook クライアントで実施します。
Outlook で共有または委任をセットアップすると、アプリは共有および委任を管理するために Microsoft Graph API を使用できるようになります。
ここからは、次のシナリオ例に基づいて説明を続けます。
Alex Wilber は、自分のプライマリ予定表を Megan Bowen に委任しています。また、その予定表にある非公開イベントの表示を Megan に許可しています。
Alex は「子供たちのパーティー」予定表を Adele Vance および Megan Bowen と共有しています。また、「子供たちのパーティー」予定表のうち非公開でないイベントのすべての詳細項目と、非公開イベントの空き時間状態に対する read
権限を Adele と Megan の両方に付与しています。
この記事では、共有または委任した予定表について、次のタスクをプログラムで実行する方法について説明します。
アプリでは、一般公開されている API を使用して次の操作を実行することも可能です。
注:
このトピックで説明されている予定表の共有と委任のプロパティと API は、予定表のプロパティ isShared と isSharedWithMe を除いて、現在 v1.0 エンドポイントで使用できます。 これらの 2 つのプロパティは、ベータ エンドポイントでのみ公開されます。
このセクションで説明する項目:
各予定表は calendarPermission オブジェクトのコレクションに関連付けられます。各オブジェクトには、共有の受信者または代理人と、予定表の所有者が設定した関連するアクセス許可が記述されています。 calendarRoleType 列挙型では、Microsoft Graph がサポートするアクセス許可の範囲を定義します。
none
この値は、予定表に対するアクセス許可がない場合にのみ My Organization
適用されます。 アクセス許可を持つユーザーのみが予定表の calendarPermission オブジェクトに関連付けられるため、個別のユーザーは該当しません。
freeBusyRead
共有受信者は、所有者の空き時間情報の状態を表示できますが、予定表のその他の詳細は表示できません。
limitedRead
共有受信者は、所有者の空き時間情報の状態と、予定表のプライベート以外のイベントのタイトルと場所を表示できます。
read
共有受信者は、プライベート イベントの所有者の空き時間情報と、予定表上のプライベート以外のイベントのすべての詳細を表示できます。
write
共有受信者は、プライベート イベントで所有者の空き時間情報を表示したり、予定表のすべての詳細を表示したり、予定表のプライベート以外のイベントを編集 (作成、更新、または削除) したりできます。
delegateWithoutPrivateEventAccess
: 代理人 は、所有者の非公開イベントの空き時間状態を表示できます。また、予定表の非公開でないイベントへの write
アクセス権を持ちます。
delegateWithPrivateEventAccess
: 代理人 は、所有者の非公開および非公開でないイベントの詳細項目を表示できます。また、予定表のすべてのイベントへの write
アクセス権を持ちます。
ユーザーのプライマリ予定表は、常に、所有者と同じ組織内のユーザーを表す "自分の所属組織" と共有されます。 既定では、そうしたユーザーはその予定表にある所有者の空き時間状態の読み取りが可能で、freeBusyRead
アクセス許可を持ちます。
次の例は、Alex または管理者の同意の下に、Alex のプライマリ予定表に関連付けられた calendarPermission オブジェクトを取得する方法を示しています。 この要求により、そのような 2 つの permission オブジェクトが返されます。
Microsoft Graph のアクセス許可
この操作には、必要に応じて、最も特権の少ない委任またはアプリケーションのアクセス許可 Calendars.Read
を使用します。 詳細については、「予定表のアクセス許可 」を参照してください。
GET https://graph.microsoft.com/beta/users/AlexW@contoso.com/calendar/calendarPermissions
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].Calendar.CalendarPermissions.GetAsync();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
calendarPermissions, err := graphClient.Users().ByUserId("user-id").Calendar().CalendarPermissions().Get(context.Background(), nil)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
CalendarPermissionCollectionResponse result = graphClient.users().byUserId("{user-id}").calendar().calendarPermissions().get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
let calendarPermissions = await client.api('/users/AlexW@contoso.com/calendar/calendarPermissions')
.version('beta')
.get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->users()->byUserId('user-id')->calendar()->calendarPermissions()->get()->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
graph_client = GraphServiceClient(credentials, scopes)
result = await graph_client.users.by_user_id('user-id').calendar.calendar_permissions.get()
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('64339082-ed84-4b0b-b4ab-004ae54f3747')/calendar/calendarPermissions",
"value": [
{
"id": "L289RXhjaGFuZ2VMYWJTWVnYW5C",
"isRemovable": true,
"isInsideOrganization": true,
"role": "delegateWithPrivateEventAccess",
"allowedRoles": [
"freeBusyRead",
"limitedRead",
"read",
"write",
"delegateWithoutPrivateEventAccess",
"delegateWithPrivateEventAccess"
],
"emailAddress": {
"name": "Megan Bowen",
"address": "MeganB@contoso.com"
}
},
{
"id": "RGVmYXVsdA==",
"isRemovable": false,
"isInsideOrganization": true,
"role": "freeBusyRead",
"allowedRoles": [
"none",
"freeBusyRead",
"limitedRead",
"read",
"write"
],
"emailAddress": {
"name": "My Organization"
}
}
]
}
予定表の所有者: 予定表の既存の共有受信者または代理人のアクセス許可を更新する
Alex または管理者の同意を得て、既存の共有受信者または代理人 ( ロール プロパティで指定) に割り当てられたアクセス許可を更新できます。その予定表の共有受信者または代理人に対して最初に設定された allowedRoles によって新しいアクセス許可がサポートされている限り、
ロール プロパティとは別に、既存の共有受信者または代理人の他のプロパティを更新することはできません。 emailAddress プロパティの値を変更するには、共有受信者または代理人を削除し、calendarPermission の新しいインスタンスをもう一度設定する必要があります。
このセクションの例では、 ロール プロパティを更新し、カスタム予定表 "キッズ パーティー" の既存の共有受信者 Adele のアクセス許可を から read
に write
変更します。
Microsoft Graph のアクセス許可
この操作には、必要に応じて、最も特権の少ない委任またはアプリケーションのアクセス許可 Calendars.ReadWrite
を使用します。 詳細については、「予定表のアクセス許可 」を参照してください。
PATCH https://graph.microsoft.com/beta/users/AlexW@contoso.com/calendars/AAMkADAwAABf02bAAAA=/calendarPermissions/L289RXhjaGFuZ2VMYWJQWRlbGVW
Content-type: application/json
{
"role": "write"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new CalendarPermission
{
Role = CalendarRoleType.Write,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].Calendars["{calendar-id}"].CalendarPermissions["{calendarPermission-id}"].PatchAsync(requestBody);
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc-beta users calendars calendar-permissions patch --user-id {user-id} --calendar-id {calendar-id} --calendar-permission-id {calendarPermission-id} --body '{\
"role": "write"\
}\
'
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestBody := graphmodels.NewCalendarPermission()
role := graphmodels.WRITE_CALENDARROLETYPE
requestBody.SetRole(&role)
calendarPermissions, err := graphClient.Users().ByUserId("user-id").Calendars().ByCalendarId("calendar-id").CalendarPermissions().ByCalendarPermissionId("calendarPermission-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);
CalendarPermission calendarPermission = new CalendarPermission();
calendarPermission.setRole(CalendarRoleType.Write);
CalendarPermission result = graphClient.users().byUserId("{user-id}").calendars().byCalendarId("{calendar-id}").calendarPermissions().byCalendarPermissionId("{calendarPermission-id}").patch(calendarPermission);
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
const calendarPermission = {
role: 'write'
};
await client.api('/users/AlexW@contoso.com/calendars/AAMkADAwAABf02bAAAA=/calendarPermissions/L289RXhjaGFuZ2VMYWJQWRlbGVW')
.version('beta')
.update(calendarPermission);
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\CalendarPermission;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new CalendarPermission();
$requestBody->setRole(new CalendarRoleType('write'));
$result = $graphServiceClient->users()->byUserId('user-id')->calendars()->byCalendarId('calendar-id')->calendarPermissions()->byCalendarPermissionId('calendarPermission-id')->patch($requestBody)->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
from msgraph.generated.models.calendar_permission import CalendarPermission
graph_client = GraphServiceClient(credentials, scopes)
request_body = CalendarPermission(
role = CalendarRoleType.Write,
)
result = await graph_client.users.by_user_id('user-id').calendars.by_calendar_id('calendar-id').calendar_permissions.by_calendar_permission_id('calendarPermission-id').patch(request_body)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('64339082-ed84-4b0b-b4ab-004ae54f3747')/calendars('AAMkADAwAABf02bAAAA%3D')/calendarPermissions/$entity",
"id": "L289RXhjaGFuZ2VMYWJQWRlbGVW",
"isRemovable": true,
"isInsideOrganization": true,
"role": "write",
"allowedRoles": [
"freeBusyRead",
"limitedRead",
"read",
"write"
],
"emailAddress": {
"name": "Adele Vance",
"address": "AdeleV@contoso.com"
}
}
共有または委任した予定表のプロパティを取得する
このセクションで説明する項目:
この例で前述したように、Alex は自分のプライマリ予定表を委任して、代理人の Megan Bowen に非公開のマークが付いた予定表アイテムを表示する権限を付与しています。
このセクションでは、委任されている予定表のプロパティを示します。まず、所有者 Alex の立場から所有者の同意を得たときのプロパティを示し、その後で、代理人 Megan の立場から代理人の同意を得たときのプロパティを示します。 管理者からの同意があると、どちらの場合も正しい結果が得られます。
予定表の所有者: 共有または委任した予定表のプロパティを取得する
このセクションの例では、所有者 Alex の立場からプライマリ予定表のプロパティを取得します。
次のプロパティは Alex の立場である点に注意してください。
canShare は true です (Alex が所有者であるため)。
canViewPrivateItems は true です (Alex が所有者であるため)。
isShared は true に設定されています (この予定表の委任を Alex が設定したため)。
isSharedWithMe は、予定表の所有者に対して常に false になります。
owner は、所有者としての Alex を示しています。
Microsoft Graph のアクセス許可
この操作には、必要に応じて、最も特権の少ない委任またはアプリケーションのアクセス許可 Calendars.Read
を使用します。 詳細については、「予定表のアクセス許可 」を参照してください。
GET https://graph.microsoft.com/beta/users/AlexW@contoso.com/calendar
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].Calendar.GetAsync();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
calendar, err := graphClient.Users().ByUserId("user-id").Calendar().Get(context.Background(), nil)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Calendar result = graphClient.users().byUserId("{user-id}").calendar().get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
let calendar = await client.api('/users/AlexW@contoso.com/calendar')
.version('beta')
.get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->users()->byUserId('user-id')->calendar()->get()->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
graph_client = GraphServiceClient(credentials, scopes)
result = await graph_client.users.by_user_id('user-id').calendar.get()
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('64339082-ed84-4b0b-b4ab-004ae54f3747')/calendar/$entity",
"id": "AQMkADAw7QAAAJfygAAAA==",
"name": "Calendar",
"color": "auto",
"hexColor": "",
"changeKey": "NEXywgsVrkeNsFsyVyRrtAAAAAACOg==",
"canShare": true,
"canViewPrivateItems": true,
"isShared": true,
"isSharedWithMe": false,
"canEdit": true,
"allowedOnlineMeetingProviders": [
"teamsForBusiness"
],
"defaultOnlineMeetingProvider": "teamsForBusiness",
"isTallyingResponses": true,
"isRemovable": false,
"owner": {
"name": "Alex Wilber",
"address": "AlexW@contoso.com"
}
}
受信者または代理人を共有する: 共有または委任された予定表のプロパティを取得する
このセクションの例では、同じ予定表のプロパティを代理人 Megan の立場から取得します。
次のプロパティに注意してください。
予定表の name は、既定で所有者の表示名になります。 この場合、"Alex Wilber" になります (この予定表は、Megan に委任した Alex の予定表であるため)。
canShare は false です (Megan は、この予定表の所有者でないため)。
代理人の Megan の場合、canViewPrivateItems は true になります (Alex が設定したため)。 代理人ではない共有相手の場合、このプロパティは常に false になります。
isShared は false です。 このプロパティは、予定表の所有者 に対してのみ、予定表が共有または委任されているかどうかを示します。
isSharedWithMe プロパティは true です (Megan が代理人のため)。
canEdit は true です (Megan を含む代理人には書き込みアクセス権限があるため)。
owner は Alex に設定されています。
注:
共有相手または代理人は、共有または委任された予定表の name プロパティのみをカスタマイズできます。 その更新内容は自分にのみ表示されます。予定表所有者は、こうした予定表名の変更を確認できません。
Microsoft Graph のアクセス許可
この操作には、必要に応じて、最も特権の少ない委任されたアクセス許可 Calendars.Read.Shared
またはアプリケーションのアクセス許可 Calendars.Read
を使用します。 詳細については、「予定表のアクセス許可 」を参照してください。
GET https://graph.microsoft.com/beta/users/meganb@contoso.com/calendars/AAMkADlAABhbftjAAA=
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].Calendars["{calendar-id}"].GetAsync();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc-beta users calendars get --user-id {user-id} --calendar-id {calendar-id}
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
calendars, err := graphClient.Users().ByUserId("user-id").Calendars().ByCalendarId("calendar-id").Get(context.Background(), nil)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Calendar result = graphClient.users().byUserId("{user-id}").calendars().byCalendarId("{calendar-id}").get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
let calendar = await client.api('/users/meganb@contoso.com/calendars/AAMkADlAABhbftjAAA=')
.version('beta')
.get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->users()->byUserId('user-id')->calendars()->byCalendarId('calendar-id')->get()->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
graph_client = GraphServiceClient(credentials, scopes)
result = await graph_client.users.by_user_id('user-id').calendars.by_calendar_id('calendar-id').get()
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('meganb%40contoso.com')/calendars/$entity",
"id": "AAMkADlAABhbftjAAA=",
"name": "Alex Wilber",
"color": "auto",
"hexColor": "",
"changeKey": "E6LznKWmX0KTsAD9qRJjeAAAYWo3EQ==",
"canShare": false,
"canViewPrivateItems": true,
"isShared": false,
"isSharedWithMe": true,
"canEdit": true,
"allowedOnlineMeetingProviders": [
"teamsForBusiness"
],
"defaultOnlineMeetingProvider": "teamsForBusiness",
"isTallyingResponses": true,
"isRemovable": true,
"owner": {
"name": "Alex Wilber",
"address": "AlexW@contoso.com"
}
}
会議出席依頼と返信を受信するためのメールボックス設定を取得または設定する
このセクションで説明する項目:
予定表所有者が選択する委任のレベルによって、所有者は予定表の会議を管理するために会議出席依頼と返信を受信するユーザーを指定できます。
プログラムによって、予定表所有者の mailboxSettings の delegateMeetingMessageDeliveryOptions プロパティを取得または設定できます。このプロパティでは、Outlook で eventMessageRequest インスタンスと eventMessageResponse インスタンスを転送する相手を指定します。
sendToDelegateOnly
Outlook は、eventMessageRequest インスタンスと eventMessageResponse インスタンスを代理人にのみ転送します。 これは、既定の設定です。 所有者は、委任した予定表の対応するイベント で会議に対する応答または招待状に対する返信を確認できます。
sendToDelegateAndInformationToPrincipal
Outlook は、eventMessageRequest インスタンスと eventMessageResponse インスタンスを代理人と予定表の所有者に転送します。 会議出席依頼を承諾または辞退するオプションは、代理人にのみ表示されます。所有者への通知は、通常の電子メール メッセージのように表示されます。 委任した予定表のイベント を開いて返信することで、所有者が会議について応答することもできます。
sendToDelegateAndPrincipal
Outlook は、eventMessageRequest インスタンスと eventMessageResponse インスタンスを代理人と予定表所有者に転送します。その両者が、会議出席依頼に返信できます。
これは、メールボックス規模の設定であるため、同じ設定がメールボックス所有者のすべての代理人に適用されます。
ユーザーのメールボックスの委任配信設定を取得する
このセクションの例では、予定表所有者の mailboxSettings を取得します。この所有者は、会議出席依頼と返信を予定表の代理人にのみ転送するように Outlook を設定しています (つまり、delegateMeetingMessageDeliveryOptions が sendToDelegateOnly
に設定されています)。
Microsoft Graph のアクセス許可
この操作には、必要に応じて、最も特権の少ない委任またはアプリケーションのアクセス許可 MailboxSettings.Read
を使用します。 メールボックスのアクセス許可の詳細については、「メールのアクセス許可 」を参照してください。
GET https://graph.microsoft.com/beta/users/AlexW@contoso.com/mailboxsettings
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].MailboxSettings.GetAsync();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
mailboxSettings, err := graphClient.Users().ByUserId("user-id").MailboxSettings().Get(context.Background(), nil)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
MailboxSettings result = graphClient.users().byUserId("{user-id}").mailboxSettings().get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
let mailboxSettings = await client.api('/users/AlexW@contoso.com/mailboxsettings')
.version('beta')
.get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->users()->byUserId('user-id')->mailboxSettings()->get()->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
graph_client = GraphServiceClient(credentials, scopes)
result = await graph_client.users.by_user_id('user-id').mailbox_settings.get()
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('64339082-ed84-4b0b-b4ab-004ae54f3747')/mailboxSettings",
"archiveFolder": "AQMkADAwAGVQAAAKfowAAAA==",
"timeZone": "Pacific Standard Time",
"delegateMeetingMessageDeliveryOptions": "sendToDelegateOnly",
"dateFormat": "M/d/yyyy",
"timeFormat": "h:mm tt",
"automaticRepliesSetting": {
"status": "disabled",
"externalAudience": "all",
"internalReplyMessage": "",
"externalReplyMessage": "",
"scheduledStartDateTime": {
"dateTime": "2019-12-24T05:00:00.0000000",
"timeZone": "UTC"
},
"scheduledEndDateTime": {
"dateTime": "2019-12-25T05:00:00.0000000",
"timeZone": "UTC"
}
},
"language": {
"locale": "en-US",
"displayName": "English (United States)"
},
"workingHours": {
"daysOfWeek": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "08:00:00.0000000",
"endTime": "17:00:00.0000000",
"timeZone": {
"name": "Pacific Standard Time"
}
}
}
ユーザーのメールボックスの委任配信設定を設定する
このセクションの例では、delegateMeetingMessageDeliveryOptions プロパティを sendToDelegateAndPrincipal
に更新して、委任した予定表の会議出席依頼と返信がすべての代理人と所有者に転送されるように Outlook を設定します。
Microsoft Graph のアクセス許可
この操作には、必要に応じて、最も特権の少ない委任またはアプリケーションのアクセス許可 MailboxSettings.ReadWrite
を使用します。 メールボックスのアクセス許可の詳細については、「メールのアクセス許可 」を参照してください。
PATCH https://graph.microsoft.com/beta/users/AlexW@contoso.com/mailboxsettings
Content-type: application/json
{
"delegateMeetingMessageDeliveryOptions": "sendToDelegateAndPrincipal"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new MailboxSettings
{
DelegateMeetingMessageDeliveryOptions = DelegateMeetingMessageDeliveryOptions.SendToDelegateAndPrincipal,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].MailboxSettings.PatchAsync(requestBody);
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc-beta users mailbox-settings patch --user-id {user-id} --body '{\
"delegateMeetingMessageDeliveryOptions": "sendToDelegateAndPrincipal"\
}\
'
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestBody := graphmodels.NewMailboxSettings()
delegateMeetingMessageDeliveryOptions := graphmodels.SENDTODELEGATEANDPRINCIPAL_DELEGATEMEETINGMESSAGEDELIVERYOPTIONS
requestBody.SetDelegateMeetingMessageDeliveryOptions(&delegateMeetingMessageDeliveryOptions)
mailboxSettings, err := graphClient.Users().ByUserId("user-id").MailboxSettings().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);
MailboxSettings mailboxSettings = new MailboxSettings();
mailboxSettings.setDelegateMeetingMessageDeliveryOptions(DelegateMeetingMessageDeliveryOptions.SendToDelegateAndPrincipal);
MailboxSettings result = graphClient.users().byUserId("{user-id}").mailboxSettings().patch(mailboxSettings);
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
const mailboxSettings = {
delegateMeetingMessageDeliveryOptions: 'sendToDelegateAndPrincipal'
};
await client.api('/users/AlexW@contoso.com/mailboxsettings')
.version('beta')
.update(mailboxSettings);
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\MailboxSettings;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new MailboxSettings();
$requestBody->setDelegateMeetingMessageDeliveryOptions(new DelegateMeetingMessageDeliveryOptions('sendToDelegateAndPrincipal'));
$result = $graphServiceClient->users()->byUserId('user-id')->mailboxSettings()->patch($requestBody)->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
Import-Module Microsoft.Graph.Beta.Users
$params = @{
delegateMeetingMessageDeliveryOptions = "sendToDelegateAndPrincipal"
}
Update-MgBetaUserMailboxSetting -UserId $userId -BodyParameter $params
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
from msgraph.generated.models.mailbox_settings import MailboxSettings
graph_client = GraphServiceClient(credentials, scopes)
request_body = MailboxSettings(
delegate_meeting_message_delivery_options = DelegateMeetingMessageDeliveryOptions.SendToDelegateAndPrincipal,
)
result = await graph_client.users.by_user_id('user-id').mailbox_settings.patch(request_body)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('64339082-ed84-4b0b-b4ab-004ae54f3747')/mailboxSettings",
"delegateMeetingMessageDeliveryOptions": "sendToDelegateAndPrincipal"
}
予定表の共有相手または代理人を削除する
以下の例では、Alex が「子供たちのパーティー」予定表の共有相手としての Megan を削除します。
Microsoft Graph のアクセス許可
この操作には、必要に応じて、最も特権の少ない委任またはアプリケーションのアクセス許可 Calendars.ReadWrite
を使用します。 詳細については、「予定表のアクセス許可 」を参照してください。
DELETE https://graph.microsoft.com/beta/users/AlexW@contoso.com/calendars/AAMkADAwAABf02bAAAA=/calendarPermissions/L289RXhjaGFuZ2VMYWJTWVnYW5C
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.Users["{user-id}"].Calendars["{calendar-id}"].CalendarPermissions["{calendarPermission-id}"].DeleteAsync();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc-beta users calendars calendar-permissions delete --user-id {user-id} --calendar-id {calendar-id} --calendar-permission-id {calendarPermission-id}
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
graphClient.Users().ByUserId("user-id").Calendars().ByCalendarId("calendar-id").CalendarPermissions().ByCalendarPermissionId("calendarPermission-id").Delete(context.Background(), nil)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
graphClient.users().byUserId("{user-id}").calendars().byCalendarId("{calendar-id}").calendarPermissions().byCalendarPermissionId("{calendarPermission-id}").delete();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
await client.api('/users/AlexW@contoso.com/calendars/AAMkADAwAABf02bAAAA=/calendarPermissions/L289RXhjaGFuZ2VMYWJTWVnYW5C')
.version('beta')
.delete();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$graphServiceClient->users()->byUserId('user-id')->calendars()->byCalendarId('calendar-id')->calendarPermissions()->byCalendarPermissionId('calendarPermission-id')->delete()->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
graph_client = GraphServiceClient(credentials, scopes)
await graph_client.users.by_user_id('user-id').calendars.by_calendar_id('calendar-id').calendar_permissions.by_calendar_permission_id('calendarPermission-id').delete()
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
HTTP/1.1 204 No Content
関連コンテンツ