Outlook の予定表とそのイベントを共有または委任するGet shared or delegated Outlook calendar and its events

Outlook では、予定表の所有者は、予定表を他のユーザーと共有して、共有者に予定表のイベントを表示または変更させることができます。共有された予定表は、所有者のプライマリ予定表にしたり、所有者が作成したカスタムの予定表にすることができます。In Outlook, a calendar owner can share a calendar with other users and let them view or modify events in that calendar; the shared calendar can be the owner's primary calendar or a custom calendar created by the owner. 所有者は、プライマリ予定表に代理人を設定し、会議出席依頼の受信や返信、プライマリ予定表のアイテム作成と変更を、自分に代わって実行する許可を与えることもできます。The owner can also grant a delegate to their primary calendar and act on their behalf, to receive or respond to meeting requests, or create or change items in the primary calendar.

Microsoft Graph は、他のユーザーによって共有された予定表のイベントの読み書き、共有された予定表の表示、共有者用に予定表名の更新を行う機能をプログラムとしてサポートしています。Programmatically, Microsoft Graph supports reading and writing events in calendars that have been shared by other users, as well as reading the shared calendars, and updating the calendar name for sharees. サポートは、委任された予定表にも適用されます。The support also applies to calendars that have been delegated. この記事の残りの部分では、共有または委任された予定表のイベントの読み取りについて説明します。The rest of this article describes reading events in a shared or delegated calendar. イベントを作成する方法については、「共有または委任された予定表内の Outlook イベントを作成する」を参照してください。For creating events, refer to Create Outlook events in a shared or delegated calendar.

共有者: 共有された予定表やそのイベントを予定表の所有者のメールボックスから直接取得するSharee: Get a shared calendar or its events directly from calendar owner's mailbox

以下の 3 つの例では、次のシナリオを使用しています。Alex は Outlook で自分のプライマリ予定表を Megan と共有し、Megan に読み取りアクセス許可を与えました。The three examples below use this scenario: in Outlook, Alex has shared his primary calendar with Megan and given Megan read permissions. Megan がアプリにサインインしていて、委任されたアクセス許可 (Calendars.Read.Shared または Calendars.ReadWrite.Shared) をアプリに与えている場合は、Megan の代わりに、アプリが Alex のプライマリ予定表とそのイベントに Alex のメールボックスから直接アクセスできます。If Megan signs into your app and provides delegated permissions (Calendars.Read.Shared or Calendars.ReadWrite.Shared), on behalf of Megan, your app can access Alex' primary calendar and its events directly from Alex' mailbox.

以下の 3 つの例では、所有者の ID (Alex のユーザー ID またはユーザー プリンシパル名) と calendar ショートカットを指定しています。The three examples specify the owner's identity (Alex' user ID or user principal name) and the calendar shortcut. これらは所有者のメールボックスのみに対応する予定表とイベント ID にアクセスします。They access calendar and event IDs that correspond to only the owner's mailbox. 共有者のメールボックス (Megan のユーザー ID またはユーザー プリンシパル名) でこれらの予定表とイベント ID を指定すると、エラーが返されます。Specifying these calendar and event IDs in the sharee's mailbox (Megan's user ID or user principal name) would return an error. 共有者のメールボックスに対応する予定表とイベント ID を使用するには、「共有者: 共有されたカスタムの予定表、またはそのイベントを共有者のメールボックスから取得する」を参照してください。To use calendar and event IDs that correspond to the sharee's mailbox, see Sharee: Get shared, custom calendar or its events from sharee's mailbox.

: 共有アクセス許可 (Calendars.Read.Shared または Calendars.ReadWrite.Shared) が与えられると、共有または委任された予定表でイベントを読み書きできます。Note: The sharing permissions (Calendars.Read.Shared or Calendars.ReadWrite.Shared) allow you to read or write events in a shared or delegated calendar. そのようなフォルダーでアイテムの変更通知をサブスクライブすることはできません。They do not support subscribing to change notifications on items in such folders. テナントで共有カレンダー、委任カレンダー、その他のユーザーまたはリソース カレンダーに含まれているイベントに変更通知サブスクリプションを設定するには、アプリケーション アクセス許可の Calendars.Read を使用します。To set up change notification subscriptions on events in a shared, delegated, or any other user or resource calendar in the tenant, use the application permission, Calendars.Read.

Megan: 共有されたプライマリ予定表を Alex のメールボックスから直接取得するMegan: Get the shared, primary calendar directly from Alex' mailbox

Megan としてサインインし、Alex が Megan と共有したプライマリ予定表を Alex のメールボックスから直接取得します。Signed in as Megan, get the primary calendar that Alex has shared with Megan, directly from Alex' mailbox:

GET https://graph.microsoft.com/v1.0/users/{Alex-userId | Alex-userPrincipalName}/calendar

正常に終了すると、HTTP 200 OK となり、Alex のメールボックスの共有されたプライマリ予定表を表す calendar インスタンスを取得できます。On successful completion, you'll get HTTP 200 OK and a calendar instance that represents Alex' shared, primary calendar, in Alex' mailbox.

Megan: 共有されたプライマリ予定表のイベントを Alex のメールボックスから直接取得するMegan: Get an event in the shared, primary calendar directly from Alex' mailbox

Megan としてサインインし、アプリは Alex が Megan と共有したプライマリ予定表の特定のイベントを Alex のメールボックスから直接取得します。Signed in as Megan, your app can get a specific event in the primary calendar that Alex has shared with Megan, directly from Alex' mailbox:

GET https://graph.microsoft.com/v1.0/users/{Alex-userId | Alex-userPrincipalName}/calendar/events/{id}

正常に終了すると、HTTP 200 OK となり、Alex のプライマリ予定表で {id} によって識別されるイベント インスタンスを Alex のメールボックスから直接取得できます。On successful completion, you'll get HTTP 200 OK and the event instance identified by {id} in Alex' primary calendar, directly from Alex' mailbox.

Megan: 共有されたプライマリ予定表のすべてのイベントを Alex のメールボックスから取得するMegan: Get all the events in the shared, primary calendar from Alex' mailbox

Megan としてサインインし、Alex が Megan と共有したプライマリ予定表のすべてのイベントを Alex のメールボックスから直接取得します。Signed in as Megan, get all the events in the primary calendar that Alex has shared with Megan, directly from Alex' mailbox:

GET https://graph.microsoft.com/v1.0/users/{Alex-userId | Alex-userPrincipalName}/calendar/events

正常に終了すると、HTTP 200 OK となり、Alex のプライマリ予定表のイベント インスタンスのコレクションを Alex のメールボックスから直接取得できます。On successful completion, you'll get HTTP 200 OK and a collection of event instances in Alex' primary calendar, directly from Alex' mailbox.

Alex が自分のプライマリ予定表へのアクセスを Megan に委任している、または自分のメールボックス全体へのアクセスを Megan に委任している場合は、同じ GET 機能が適用されます。The same GET capabilities apply if Alex has delegated Megan access to Alex' primary calendar, or if Alex has delegated Megan his entire mailbox.

Alex が自分のプライマリ予定表を Megan と共有または委任していない場合、前述の GET 操作で Alex のユーザー ID またはユーザー プリンシパル名を指定すると、エラーが返されます。If Alex has not shared nor delegated his primary calendar with Megan, specifying Alex’s user ID or user principal name in the preceding GET operations will return an error.

共有者: 共有されたカスタムの予定表、またはそのイベントを共有者のメールボックスから取得するSharee: Get shared, custom calendar or its events from sharee's mailbox

Alex が_カスタム_の予定表 (たとえば "子供のパーティー" など) を Adele と共有し、Adele が委任されたアクセス許可 (Calendars.Read または Calendars.ReadWrite) をアプリに与えている場合、アプリは以下に説明するように、Adele のメールボックスにある Alex の予定表のローカル コピーからイベントや予定表を取得できます。If Alex has shared a custom calendar (as an example, a calendar named "Kids parties") with Adele, and Adele has provided delegated permissions (Calendars.Read or Calendars.ReadWrite), your app can get the events or calendar from the local copy of Alex' calendar in Adele's mailbox, as described below.

  1. Adele としてサインインし、次のいずれかの要求を使用して、Adele がアクセスできるすべての予定表 (共有されたカスタムの予定表を含む) を取得します。Signed in as Adele, use either of the following requests to get all the calendars that Adele has access to, including the shared custom calendar.

    GET https://graph.microsoft.com/v1.0/me/calendars
    GET https://graph.microsoft.com/v1.0/users/{Adele-userId | Adele-userPrincipalName}/calendars
    

    成功した応答には、応答コード HTTP 200 と、Adele がアクセスできる予定表のコレクションが含まれます。これには、応答の2 番目の予定表として所有者名が "Alex Wilber" である予定表 ("子供のパーティー") が含まれます。A successful response includes the response code HTTP 200, and the collection of calendars that Adele has access to, including the calendar ("Kids parties") that has the owner name as "Alex Wilber" as the second calendar in the response. 共有者 Adele にとって、共有された予定表の canShare プロパティは常に false です。For a sharee, Adele, the canShare property of the shared calendar is always false.

    HTTP/1.1 200 OK
    Content-type: application/json
    
    {
        "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('d3b9214b-dd8b-441d-b7dc-c446c9fa0e69')/calendars",
        "value": [
            {
                "id": "AQMkADU5NAAAJMjAAAAA==",
                "name": "Calendar",
                "color": "auto",
                "changeKey": "NDznl+Uh50WkanaCOKHkaQAAAAACXQ==",
                "canShare": true,
                "canViewPrivateItems": true,
                "canEdit": true,
                "owner": {
                    "name": "Adele Vance",
                    "address": "AdeleV@contoso.OnMicrosoft.com"
                }
            },
            {
                "id": "AAMkADAABf0JlyAAA=",
                "name": "Kids parties",
                "color": "lightYellow",
                "changeKey": "NDznl+Uh50WkanaCOKHkaQAAYumJRQ==",
                "canShare": false,
                "canViewPrivateItems": false,
                "canEdit": false,
                "owner": {
                    "name": "Alex Wilber",
                    "address": "AlexW@contoso.OnMicrosoft.com"
                }
            }
        ]
    }
    
  2. Adele としてサインインし、手順 1 の応答の 2 番目の予定表 ID を使用して、共有された予定表、または共有された予定表の 1 つ以上のイベントを取得します。Signed in as Adele, get the shared calendar, or get one or more events in the shared calendar, using the second calendar ID in the response from step 1. 共有された予定表とそのイベントの ID は、Adele のメールボックスの Alex の予定表のローカル コピーに対応しています。The IDs of the shared calendar and its event correspond to the local copy of Alex' calendar in Adele's mailbox.

    GET https://graph.microsoft.com/v1.0/me/calendars/AAMkADAABf0JlyAAA=
    GET https://graph.microsoft.com/v1.0/users/{Adele-userId | Adele-userPrincipalName}/calendars/AAMkADAABf0JlyAAA=
    
    GET https://graph.microsoft.com/v1.0/me/calendars/AAMkADAABf0JlyAAA=/events/{id}
    GET https://graph.microsoft.com/v1.0/users/{Adele-userId | Adele-userPrincipalName}/calendars/AAMkADAABf0JlyAAA=/events/{id}
    
    GET https://graph.microsoft.com/v1.0/me/calendars/AAMkADAABf0JlyAAA=/events
    GET https://graph.microsoft.com/v1.0/users/{Adele-userId | Adele-userPrincipalName}/calendars/AAMkADAABf0JlyAAA=/events
    

正常に終了すると、HTTP 200 OK となり、要求したイベント、複数のイベント、Alex が Adele と共有している予定表が取得されます。On successful completion, you'll get HTTP 200 OK and the requested event, events, or calendar that Alex has shared with Adele.

次の手順Next steps

詳細情報:Find out more about: