Outlook で予定表を共有または委任するShare or delegate a calendar in Outlook

Outlook では、予定表の所有者が別のユーザーと予定表を共有できます。In Outlook, a calendar owner can share the calendar with another user. 所有者は、非公開でないイベントのうち表示可能にする情報を指定して、同じ組織内のユーザーに予定表への書き込みアクセス権限を付与できます。The owner can specify which information in non-private events is viewable, and can give write access to the calendar to users in the same organization.

また、所有者は、所有者の_プライマリ_予定表にある会議の管理を別のユーザーに委任することもできます。The owner can also delegate another user to manage meetings in the owner's primary calendar. 代理人は、非公開でないイベントの情報をすべて表示できる共有相手であり、そのイベントへの書き込みアクセス権限が付与されています。Delegates are sharees who can view all information in and have write access to non-private events. 会議出席依頼と返信を受信することも、所有者の代理として会議出席依頼に応答することもできます。They also receive meeting requests and responses, and respond to meeting requests on behalf of the owner. さらに、所有者は予定表にある所有者の_非公開_イベントを表示するアクセス許可を代理人に明示的に付与することもできます。Additionally, the owner can give explicit permissions to delegates to view the owner's private events on the calendar.

予定表の共有または委任は、まず、所有者が共有相手または代理人に招待を送信して共有相手または代理人が招待を受諾するか、アクセスについて共有または委任する予定表を明示的に追加することで有効になります。Before calendar sharing or delegation can take effect, the owner sends a sharee or delegate an invitation, and the sharee or delegate accepts the invitation, or, explicitly adds the shared or delegated calendar for access. 招待と共有または委任する予定表の追加は、Outlook クライアントで実施します。The invitation and adding a shared or delegated calendar occur in an Outlook client.

Outlook で共有または委任をセットアップすると、アプリは共有および委任を管理するために Microsoft Graph API を使用できるようになります。After sharing or delegation is set up in Outlook, apps can then use the Microsoft Graph API to manage the sharing and delegation.

ここからは、次のシナリオ例に基づいて説明を続けます。The rest of this article is based on the following example scenario:

  • Alex Wilber は、自分のプライマリ予定表を Megan Bowen に委任しています。また、その予定表にある非公開イベントの表示を Megan に許可しています。Alex Wilber has delegated Megan Bowen to his primary calendar, and also permitted Megan to view private events in that calendar.
  • Alex は「子供たちのパーティー」予定表を Adele Vance および Megan Bowen と共有しています。また、「子供たちのパーティー」予定表のうち非公開でないイベントのすべての詳細項目と、非公開イベントの空き時間状態に対する read 権限を Adele と Megan の両方に付与しています。Alex shared a "Kids parties" calendar with Adele Vance and Megan Bowen, and gave both Adele and Megan read permissions to all the details of non-private events on the "Kids parties" calendar, and free/busy status for private events.

この記事では、共有または委任した予定表について、次のタスクをプログラムで実行する方法について説明します。This article describes programmatically carrying out the following tasks with a shared or delegated calendar:

アプリでは、一般公開されている API を使用して次の操作を実行することも可能です。Apps can also do the following using API that is generally available:

注意

このトピックで説明されているように、予定表の共有および委任のためのプロパティと API は、現在は v2.0 エンドポイントで使用できます。ただし、calendar プロパティisSharedおよびIssharedwithmeは例外です。The properties and API for calendar sharing and delegating as described in this topic are currently available in the v1.0 endpoint, with the exception of the calendar properties isShared and isSharedWithMe. これらの2つのプロパティは、ベータ版のエンドポイントでのみ公開されます。These two properties are exposed in only the beta endpoint.

共有相手または代理人に関する情報を取得し、個別のアクセス許可を更新するGet calendar information about sharees and delegates, and update individual permissions

このセクションで説明する項目:In this section:

それぞれの予定表には、calendarPermission オブジェクトのコレクションが関連付けられています。それぞれのオブジェクトには、共有相手または代理人と、それに関連付けられている予定表の所有者が設定したアクセス許可が記述されています。Each calendar is associated with a collection of calendarPermission objects, each of which describes a sharee or delegate and the associated permission that the calendar owner has set up. calendarRoleType 列挙型では、Microsoft Graph がサポートするアクセス許可の範囲を定義します。The calendarRoleType enumeration defines the range of permissions that Microsoft Graph supports:

  • none: この値は、予定表に対する一切のアクセス許可を持たない My Organization のみが該当します。none This value applies to only My Organization which does not have any permissions to the calendar. アクセス許可を持つユーザーのみが予定表の calendarPermission オブジェクトに関連付けられるため、個別のユーザーは該当しません。It doesn't apply to individual users, as only users with permissions are associated with a calendarPermission object for the calendar.
  • freeBusyRead: 共有相手は所有者の空き時間状態を表示できますが、それ以外の予定表の詳細項目は表示できません。freeBusyRead The sharee can view the owner's free/busy status, but not other details on the calendar.
  • limitedRead: 共有相手は、所有者の空き時間状態を表示できます。また、予定表の非公開でないイベントのタイトルと場所も表示できます。limitedRead The sharee can view the owner's free/busy status, and the titles and locations of non-private events on the calendar.
  • read: 共有相手は、所有者の非公開イベントの空き時間状態を表示できます。また、予定表の非公開でないイベントのすべての詳細項目も表示できます。read The sharee can view the owner's free/busy status in private events, and all the details of non-private events on the calendar.
  • write: 共有相手は、所有者の非公開イベントの空き時間状態を表示できます。また、予定表の非公開でないイベントのすべての詳細項目を表示して編集 (作成、更新、または削除) できます。write The sharee can view the owner's free/busy status in private events, and can view all the details and edit (create, update, or delete) non-private events on the calendar.
  • delegateWithoutPrivateEventAccess: _代理人_は、所有者の非公開イベントの空き時間状態を表示できます。また、予定表の非公開でないイベントへの write アクセス権を持ちます。delegateWithoutPrivateEventAccess The delegate can view the owner's free/busy status in private events, and has write access to non-private events on the calendar.
  • delegateWithPrivateEventAccess: _代理人_は、所有者の非公開および非公開でないイベントの詳細項目を表示できます。また、予定表のすべてのイベントへの write アクセス権を持ちます。delegateWithPrivateEventAccess The delegate can view details of the owner's private and non-private events, and has write access to all the events on the calendar.

ユーザーのプライマリ予定表は、常に、所有者と同じ組織内のユーザーを表す "自分の所属組織" と共有されます。The primary calendar of a user is always shared with "My Organization", which represents the users in the same organization as the owner. 既定では、そうしたユーザーはその予定表にある所有者の空き時間状態の読み取りが可能で、freeBusyRead アクセス許可を持ちます。By default, they can read the owner's free/busy status on that calendar and have the freeBusyRead permission.

予定表の所有者: 共有または委任の情報とアクセス許可を取得するCalendar owner: Get sharing or delegation information and permissions

次の例は、Alex または管理者の同意の下に、Alex のプライマリ予定表に関連付けられた calendarPermission オブジェクトを取得する方法を示しています。The following example shows with the consent of Alex or administrator, how to get the calendarPermission objects associated with Alex' primary calendar. この要求により、そのような 2 つの permission オブジェクトが返されます。The request returns two such permission objects:

  • 最初の calendarPermission オブジェクトは、代理人の Megan に割り当てられているもので、次のプロパティ値が設定されています。The first calendarPermission object is assigned to the delegate, Megan, and has the following property values:

    • isRemovable は true に設定されています (そのため、Alex は委任を取り消すオプションを選択できます)。isRemovable is set to true, providing Alex the option to cancel the delegation.
    • isInsideOrganization は true に設定されています (同じ組織内のユーザーのみが代理人になれるため)。isInsideOrganization is true as only users in the same organization can be delegates.
    • Megan の roledelegateWithPrivateEventAccess です (Alex による設定)。role for Megan is delegateWithPrivateEventAccess, as set up by Alex.
    • allowedRoles には、委任をサポートするロールの種類 delegateWithoutPrivateEventAccessdelegateWithPrivateEventAccess が含まれています。allowedRoles includes the role types delegateWithoutPrivateEventAccess and delegateWithPrivateEventAccess that support delegation.
    • emailAddress は Megan を指定しています。emailAddress specifies Megan.
  • 2 番目の calendarPermission オブジェクトは、"自分の所属組織" に関連付けられている既定のオブジェクトであり、次のプロパティ値が設定されています。The second calendarPermission object is a default object assigned to "My Organization", and has the following property values:

    • isRemovable は false に設定されています (プライマリ予定表は、常に所有者の組織に関連付けられているため)。isRemovable is set to false, since the primary calendar is always shared with the owner's organization.
    • isInsideOrganization は true です。isInsideOrganization is true.
    • rolefreeBusyRead です ("自分の所属組織" の既定の設定)。role is freeBusyRead, the default setting for "My Organization".
    • emailAddress は "自分の所属組織" として name プロパティを指定しています。既定では、"自分の所属組織" の address は Null になっています。emailAddress specifies the name sub-property as "My Organization"; address for "My Organization" is by default null.
GET https://graph.microsoft.com/beta/users/AlexW@contoso.OnMicrosoft.com/calendar/calendarPermissions
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.OnMicrosoft.com"
            }
        },
        {
            "id": "RGVmYXVsdA==",
            "isRemovable": false,
            "isInsideOrganization": true,
            "role": "freeBusyRead",
            "allowedRoles": [
                "none",
                "freeBusyRead",
                "limitedRead",
                "read",
                "write"
            ],
            "emailAddress": {
                "name": "My Organization"
            }
        }
    ]
}

予定表の所有者: 既存の共有相手または代理人の予定表に対するアクセス許可を更新するCalendar owner: Update permissions for an existing sharee or delegate on a calendar

Alex または管理者の同意の下に、既存の共有相手または代理人に割り当てられたアクセス許可 (role プロパティで指定されているもの) を更新できます。ただし、新しいアクセス許可は、その予定表の共有相手または代理人に最初に設定した allowedRoles でサポートされるものに限定されます。With the consent of Alex or administrator, you can update the permissions assigned to an existing sharee or delegate (specified by the role property), as long as the new permissions are supported by those allowedRoles set up initially for the sharee or delegate for that calendar.

既存の共有相手または代理人のプロパティは、role プロパティ以外は更新できません。Aside from the role property, you cannot update other properties of an existing sharee or delegate. emailAddress プロパティ値を変更するには、共有相手または代理人を削除して、calendarPermission の新しいインスタンスの再設定が必要になります。Changing the emailAddress property value requires deleting the sharee or delegate and setting up a new instance of calendarPermission again.

次の例では、既存の共有相手 Adele の role プロパティを更新して、カスタムの予定表「子供たちのパーティー」に対するアクセス許可を read から write に変更します。The following example updates the role property, changing the permission of an existing sharee, Adele, from read to write for the custom calendar "Kids parties".

PATCH https://graph.microsoft.com/beta/users/AlexW@contoso.OnMicrosoft.com/calendars/AAMkADAwAABf02bAAAA=/calendarPermissions/L289RXhjaGFuZ2VMYWJQWRlbGVW
Content-type: application/json

{
  "role": "write"
}
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.OnMicrosoft.com"
    }
}

共有または委任した予定表のプロパティを取得するGet properties of a shared or delegated calendar

このセクションで説明する項目:In this section:

この例で前述したように、Alex は自分のプライマリ予定表を委任して、代理人の Megan Bowen に非公開のマークが付いた予定表アイテムを表示する権限を付与しています。Recalling in this example, Alex has delegated his primary calendar and given the delegate, Megan Bowen, the permission to view calendar items that are marked private. このセクションでは、委任されている予定表のプロパティを示します。まず、所有者 Alex の立場から所有者の同意を得たときのプロパティを示し、その後で、代理人 Megan の立場から代理人の同意を得たときのプロパティを示します。This section shows the properties of the delegated calendar, first from the perspective of and with the consent of the owner, Alex, and then from the perspective of and with the consent of the delegate, Megan. 管理者からの同意があると、どちらの場合も正しい結果が得られます。Consent from the administrator also works for each case.

予定表の所有者: 共有または委任した予定表のプロパティを取得するCalendar owner: Get properties of a shared or delegated calendar

次の例では、所有者 Alex の立場からプライマリ予定表のプロパティを取得します。The following example gets the properties of the primary calendar from the perspective of the owner, Alex.

次のプロパティは Alex の立場である点に注意してください。Note the following properties on Alex' behalf:

  • canShare は true です (Alex が所有者であるため)。canShare is true as Alex is the owner.
  • canViewPrivateItems は true です (Alex が所有者であるため)。canViewPrivateItems is true since Alex is the owner.
  • isShared は true に設定されています (この予定表の委任を Alex が設定したため)。isShared is set to true, as Alex has set up a delegate for this calendar.
  • isSharedWithMe は、予定表の所有者に対して常に false になります。isSharedWithMe is always false for the calendar owner.
  • owner は、所有者としての Alex を示しています。owner shows Alex as the owner.
GET https://graph.microsoft.com/beta/users/AlexW@contoso.OnMicrosoft.com/calendar
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.OnMicrosoft.com"
    }
}

共有相手または代理人: 共有または委任された予定表のプロパティを取得するSharee or delegate: Get properties of shared or delegated calendar

次の例では、同じ予定表のプロパティを代理人 Megan の立場から取得します。The following example gets the properties of the same calendar from the perspective of the delegate, Megan.

次のプロパティに注意してください。Note the following properties:

  • 予定表の name は、既定で所有者の表示名になります。name of the calendar is by default the owner's display name. この場合、"Alex Wilber" になります (この予定表は、Megan に委任した Alex の予定表であるため)。In this case, it's "Alex Wilber", since this is Alex' calendar delegated to Megan.
  • canShare は false です (Megan は、この予定表の所有者でないため)。canShare is false, since Megan is not the owner of this calendar.
  • 代理人の Megan の場合、canViewPrivateItems は true になります (Alex が設定したため)。canViewPrivateItems is true for the delegate Megan, as set up by Alex. 代理人ではない共有相手の場合、このプロパティは常に false になります。For a sharee that is not a delegate, this property is always false.
  • isShared は false です。isShared is false. このプロパティは、予定表の_所有者_に対してのみ、予定表が共有または委任されているかどうかを示します。This property indicates only to a calendar owner whether the calendar has been shared or delegated.
  • isSharedWithMe プロパティは true です (Megan が代理人のため)。isSharedWithMe property is true, since Megan is a delegate.
  • canEdit は true です (Megan を含む代理人には書き込みアクセス権限があるため)。canEdit is true, since delegates, including Megan, have write access.
  • owner は Alex に設定されています。owner is set to Alex.

注意

共有相手または代理人は、共有または委任された予定表の name プロパティのみをカスタマイズできます。A sharee or delegate can customize only the name property of a shared/delegated calendar. その更新内容は自分にのみ表示されます。予定表所有者は、こうした予定表名の変更を確認できません。The update is visible only to themselves; the calendar owner does not see such calendar name changes.

GET https://graph.microsoft.com/beta/users/meganb@contoso.OnMicrosoft.com/calendars/AAMkADlAABhbftjAAA=
HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('meganb%40contoso.OnMicrosoft.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.OnMicrosoft.com"
    }
}

会議出席依頼と返信を受信するためのメールボックス設定を取得または設定するGet or set mailbox setting to receive meeting requests and responses

このセクションで説明する項目:In this section:

予定表所有者が選択する委任のレベルによって、所有者は予定表の会議を管理するために会議出席依頼と返信を受信するユーザーを指定できます。Depending on the level of delegation a calendar owner prefers, the owner can specify who should receive meeting requests and responses to manage meetings on the calendar.

プログラムによって、予定表所有者の mailboxSettingsdelegateMeetingMessageDeliveryOptions プロパティを取得または設定できます。このプロパティでは、Outlook で eventMessageRequest インスタンスと eventMessageResponse インスタンスを転送する相手を指定します。Programmatically, you can get or set the delegateMeetingMessageDeliveryOptions property of the calendar owner's mailboxSettings to specify to whom Outlook should direct eventMessageRequest and eventMessageResponse instances:

  • sendToDelegateOnly

    Outlook は、eventMessageRequest インスタンスと eventMessageResponse インスタンスを代理人にのみ転送します。Outlook to direct eventMessageRequest and eventMessageResponse instances to only delegates. これは、既定の設定です。This is the default setting. 所有者は、委任した予定表の対応するイベントで会議に対する応答または招待状に対する返信を確認できます。The owner can see responses to a meeting or respond to an invitation through the corresponding event in the delegated calendar.

  • sendToDelegateAndInformationToPrincipal

    Outlook は、eventMessageRequest インスタンスと eventMessageResponse インスタンスを代理人と予定表の所有者に転送します。Outlook to direct eventMessageRequest and eventMessageResponse instances to delegates and the calendar owner. 会議出席依頼を承諾または辞退するオプションは、代理人にのみ表示されます。所有者への通知は、通常の電子メール メッセージのように表示されます。Only the delegates see the option to accept or decline a meeting request, and the notification sent to the owner appears like a normal email message. 委任した予定表のイベントを開いて返信することで、所有者が会議について応答することもできます。The owner can still respond to the meeting by opening the event in the delegated calendar and responding.

  • sendToDelegateAndPrincipal

    Outlook は、eventMessageRequest インスタンスと eventMessageResponse インスタンスを代理人と予定表所有者に転送します。その両者が、会議出席依頼に返信できます。Outlook to direct eventMessageRequest and eventMessageResponse instances to delegates and the calendar owner, either of whom can respond to the meeting request.

これは、メールボックス規模の設定であるため、同じ設定がメールボックス所有者のすべての代理人に適用されます。This is a mailbox-wide setting, so the same setting applies to all delegates of the mailbox owner.

ユーザーのメールボックスの委任配信設定を取得するGet delegation delivery setting for a user's mailbox

次の例では、予定表所有者の mailboxSettings を取得します。この所有者は、会議出席依頼と返信を予定表の代理人にのみ転送するように Outlook を設定しています (つまり、delegateMeetingMessageDeliveryOptionssendToDelegateOnly に設定されています)。The following example gets the mailboxSettings of a calendar owner who lets Outlook direct meeting requests and responses to only calendar delegates; that is, delegateMeetingMessageDeliveryOptions is set to sendToDelegateOnly.

GET https://graph.microsoft.com/beta/users/AlexW@contoso.OnMicrosoft.com/mailboxsettings
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"
        }
    }
}

ユーザーのメールボックスの委任配信設定を設定するSet delegation delivery setting for a user's mailbox

次の例では、delegateMeetingMessageDeliveryOptions プロパティを sendToDelegateAndPrincipal に更新して、委任した予定表の会議出席依頼と返信がすべての代理人と所有者に転送されるように Outlook を設定します。The following example updates the delegateMeetingMessageDeliveryOptions property to sendToDelegateAndPrincipal, to have Outlook direct meeting requests and responses of the delegated calendar to all delegates and the owner.

PATCH https://graph.microsoft.com/beta/users/AlexW@contoso.OnMicrosoft.com/mailboxsettings
Content-type: application/json

{
  "delegateMeetingMessageDeliveryOptions": "sendToDelegateAndPrincipal"
}
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"
}

予定表の共有相手または代理人を削除するDelete a sharee or delegate of a calendar

次の例では、Alex が「子供たちのパーティー」予定表の共有相手としての Megan を削除します。In the following example, Alex deletes Megan as a sharee of the "Kids parties" calendar.

DELETE https://graph.microsoft.com/beta/users/AlexW@contoso.OnMicrosoft.com/calendars/AAMkADAwAABf02bAAAA=/calendarPermissions/L289RXhjaGFuZ2VMYWJTWVnYW5C
HTTP/1.1 204 No Content

次の手順Next steps

詳細情報:Find out more about: