Abrufen von freigegebenen oder delegierten Outlook-Kalendern und darin enthaltenen Ereignissen
In Outlook kann ein Kalenderbesitzer einen Kalender für andere Benutzer freigeben und ihnen erlauben, Ereignisse in diesem Kalender anzuzeigen oder zu ändern. Der freigegebene Kalender kann der primäre Kalender des Besitzers oder ein vom Besitzer erstellter benutzerdefinierter Kalender sein. Der Eigentümer kann auch einen Delegierten für seinen primären Kalender ernennen und in seinem Namen handeln, um Meeting-Anfragen zu empfangen oder zu beantworten oder um Elemente im primären Kalender zu erstellen oder zu ändern.
Programmgesteuert unterstützt Microsoft Graph das Lesen und Schreiben von Ereignissen in Kalendern, die von anderen Benutzern freigegeben wurden, sowie das Lesen der freigegebenen Kalender und das Aktualisieren des Kalendernamens für Freigabeempfänger. Die Unterstützung gilt auch für Kalender, die delegiert wurden. Der Rest dieses Artikels beschreibt Leseereignisse in einem freigegebenen oder delegierten Kalender. Informationen zum Erstellen von Ereignissen finden Sie unter Erstellen von Outlook-Ereignissen in einem freigegebenen oder delegierten Kalender.
Empfänger freigeben: Abrufen eines freigegebenen Kalenders oder seiner Ereignisse direkt aus dem Postfach des Kalenderbesitzers
Die drei Beispiele unten verwenden dieses Szenario: In Outlook hat Alex seinen primären Kalender für Megan freigegeben und Megan Leseberechtigungen erteilt. Wenn Megan sich bei Ihrer App anmeldet und delegierte Berechtigungen bereitstellt (Calendars.Read.Shared oder Calendars.ReadWrite.Shared), im Namen von Megan, kann Ihre App direkt aus dem Postfach von Alex auf den primären Kalender von Alex und seine Ereignisse zugreifen.
Die drei Beispiele geben die Identität des Besitzers (Benutzer-ID oder Prinzipalname von Alex) und die calendar
-Verknüpfung an. Sie greifen auf Kalender- und Ereignis-IDs zu, die nur dem Postfach des Besitzers entsprechen. Das Angeben dieser Kalender- und Ereignis-IDs im Postfach des Freigabeempfängers (Benutzer-ID oder Benutzerprinzipalname von Megan) würde einen Fehler zurückgeben. Informationen zum Verwenden von Kalender- und Ereignis-IDs, die dem Postfach des Freigabeempfängers entsprechen, finden Sie unter Freigeben eines Empfängers: Abrufen eines freigegebenen, benutzerdefinierten Kalenders oder dessen Ereignisse aus dem Postfach des Freigabeempfängers.
Hinweis
Die Freigabeberechtigungen (Calendars.Read.Shared oder Calendars.ReadWrite.Shared) ermöglichen Ihnen das Lesen oder Schreiben von Ereignissen in einem freigegebenen oder delegierten Kalender. Das Abonnieren von Änderungsbenachrichtigungen wird für Elemente in solchen Ordnern nicht unterstützt. Verwenden Sie zum Einrichten von Änderungsbenachrichtigungsabonnements für Ereignisse in einem freigegebenen, delegierten oder einem anderen Benutzer- oder Ressourcenkalender im Mandanten die Berechtigung „Calendars.Read“.
Megan: den freigegebenen primären Kalender direkt aus dem Postfach von Alex abrufen
Angemeldet als Megan: Abrufen des primären Kalenders, den Alex mit Megan geteilt hat, direkt aus dem Postfach von Alex:
GET https://graph.microsoft.com/v1.0/users/{Alex-userId | Alex-userPrincipalName}/calendar
Nach erfolgreichem Abschluss erhalten Sie HTTP 200 OK und einen Kalender instance, der den freigegebenen primären Kalender von Alex in Alex' Postfach darstellt.
Megan: ein Ereignis im freigegebenen primären Kalender direkt aus dem Postfach von Alex abrufen
Angemeldet als Megan: Die App kann ein bestimmtes Ereignis im primären Kalender, den Alex mit Megan geteilt hat, direkt aus dem Postfach von Alex abrufen:
GET https://graph.microsoft.com/v1.0/users/{Alex-userId | Alex-userPrincipalName}/calendar/events/{id}
Nach erfolgreichem Abschluss erhalten Sie "HTTP 200 OK" und die event-Instanz mit der ID {id}
im primären Kalender von Alex, direkt aus dem Posteingang von Alex.
Megan: Alle Ereignisse im freigegebenen primären Kalender aus dem Postfach von Alex abrufen
Angemeldet als Megan: Abrufen aller Ereignisse im primären Kalender, den Alex mit Megan geteilt hat, direkt aus dem Postfach von Alex:
GET https://graph.microsoft.com/v1.0/users/{Alex-userId | Alex-userPrincipalName}/calendar/events
Nach erfolgreichem Abschluss erhalten Sie "HTTP 200 OK" und eine Sammlung von event-Instanzen im primären Kalender von Alex, direkt aus dem Posteingang von Alex.
Die gleichen GET-Funktionen gelten, wenn Alex den Zugriff auf seinen primären Kalender oder seine gesamte Mailbox an Megan delegiert hat.
Wenn Alex seinen primären Kalender nicht für Megan freigegeben oder delegiert hat, gibt die Angabe der Benutzer-ID oder des Benutzerprinzipalnamens von Alex in den vorherigen GET-Vorgängen einen Fehler zurück.
Empfänger freigeben: Abrufen eines freigegebenen, benutzerdefinierten Kalenders oder seiner Ereignisse aus dem Postfach des Freigabeempfängers
Wenn Alex einen benutzerdefinierten Kalender (z. B. einen Kalender namens "Kinderpartys") für Adele freigegeben hat, und Adele delegierte Berechtigungen (Calendars.Read oder Calendars.ReadWrite) bereitstellt hat, kann die App die Ereignisse oder den Kalender aus der lokalen Kopie des Kalenders von Alex im Postfach von Adele abrufen, wie nachfolgend beschrieben.
Angemeldet als Adele: Verwenden Sie eine der folgenden Anforderungen, um alle Kalender abzurufen, auf die Adele zugreifen kann, einschließlich des freigegebenen benutzerdefinierten Kalenders.
GET https://graph.microsoft.com/v1.0/me/calendars GET https://graph.microsoft.com/v1.0/users/{Adele-userId | Adele-userPrincipalName}/calendars
Eine erfolgreiche Antwort enthält den Antwortcode HTTP 200 und die Sammlung von Kalendern, auf die Adele zugreifen kann, einschließlich des Kalenders ("Kinderpartys") mit dem Besitzernamen "Alex Wilber" als zweiten Kalender in der Antwort. Für einen Freigabeempfänger Adele ist die canShare-Eigenschaft des freigegebenen Kalenders immer 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.com" } }, { "id": "AAMkADAABf0JlyAAA=", "name": "Kids parties", "color": "lightYellow", "changeKey": "NDznl+Uh50WkanaCOKHkaQAAYumJRQ==", "canShare": false, "canViewPrivateItems": false, "canEdit": false, "owner": { "name": "Alex Wilber", "address": "AlexW@contoso.com" } } ] }
Angemeldet als Adele: Abrufen des freigegebenen Kalenders oder Abrufen eines oder mehrerer Ereignisse im freigegebenen Kalender, unter Verwendung der zweiten Kalender-ID in der Antwort aus Schritt 1. Die IDs des freigegebenen Kalenders und dessen Ereignis entsprechen der lokalen Kopie des Kalenders von Alex im Postfach von Adele.
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
Nach erfolgreichem Abschluss erhalten Sie HTTP 200 OK und das angeforderte Ereignis, die Ereignisse oder den Kalender, die Alex für Adele freigegeben hat.