Freigeben oder Delegieren eines Kalenders in Outlook

In Outlook kann ein Kalenderbesitzer den Kalender für einen anderen Benutzer freigeben. Der Besitzer kann festlegen, welche Informationen bei nicht privaten Ereignissen angezeigt werden, und er kann Benutzern in derselben Organisation Schreibzugriff auf den Kalender gewähren.

Der Besitzer kann auch einen anderen Benutzer mit der Verwaltung von Besprechungen im primären Kalender des Besitzers beauftragen. Delegaten sind Freigabeempfänger, die alle Informationen in anzeigen können und Schreibzugriff auf nicht private Ereignisse haben. Sie erhalten auch Besprechungsanfragen und -antworten und können Besprechungsanfragen im Namen des Besitzers beantworten. Außerdem kann der Besitzer den Stellvertreter die ausdrückliche Erlaubnis erteilen, die privaten Ereignisse des Besitzers im Kalender einzusehen.

Bevor die Kalenderfreigabe oder -delegierung wirksam werden kann, sendet der Besitzer einen Freigabeempfänger oder delegiert eine Einladung, und der Freigabeempfänger oder -delegat nimmt die Einladung an oder fügt explizit den freigegebenen oder delegierten Kalender für den Zugriff hinzu. Die Einladung und das Hinzufügen eines freigegebenen oder delegierten Kalenders erfolgen in einem Outlook-Client.

Nachdem die Freigabe oder Delegierung in Outlook eingerichtet wurde, können die Apps die Freigabe und Delegierung mit der Microsoft Graph-API verwalten.

Der Rest dieses Artikels basiert auf dem folgenden Beispielszenario:

  • Alex Wilber hat Megan Bowen zur Stellvertreterin für seinen primären Kalender gemacht und Megan auch erlaubt, private Ereignisse in diesem Kalender einzusehen.
  • Alex hat einen "Kinderpartys"-Kalender mit Adele Vance und Megan Bowen geteilt und sowohl Adele als auch Megan read-Berechtigungen für alle Einzelheiten der nicht privaten Ereignisse im Kalender "Kinderpartys" sowie für den Frei/Gebucht-Status für private Ereignisse erteilt.

Dieser Artikel beschreibt die programmatische Ausführung der folgenden Aufgaben mit einem freigegebenen oder delegierten Kalender:

Apps können über die allgemein verfügbare API auch Folgendes tun:

Hinweis

Die Eigenschaften und die API für die Freigabe und Delegierung von Kalendern, wie in diesem Thema beschrieben, sind derzeit im v1.0-Endpunkt verfügbar, mit Ausnahme der Kalendereigenschaften isShared and isSharedWithMe. Diese beiden Eigenschaften werden nur im Beta-Endpunkt verfügbar gemacht.

Abrufen von Kalenderinformationen zu Freigabeempfängern und Stellvertretungen und Aktualisieren einzelner Berechtigungen

In diesem Abschnitt:

Jeder Kalender ist einer Sammlung von calendarPermission-Objekten zugeordnet, von denen jedes einen Freigabeempfänger oder -delegaten und die zugehörige Berechtigung beschreibt, die der Kalenderbesitzer eingerichtet hat. Die calendarRoleType-Enumeration definiert den Bereich der Berechtigungen, die Microsoft Graph unterstützt:

  • none Dieser Wert gilt nur My Organization für , die über keine Berechtigungen für den Kalender verfügt. Er gilt nicht für einzelne Benutzer, da nur Benutzer mit Berechtigungen mit einem calendarPermission-Objekt für den Kalender verknüpft sind.
  • freeBusyReadDer Freigabeempfänger kann die Frei/Gebucht-status des Besitzers anzeigen, aber keine anderen Details im Kalender.
  • limitedReadDer Freigabeempfänger kann die Frei/Gebucht-status des Besitzers sowie die Titel und Speicherorte nicht privater Ereignisse im Kalender anzeigen.
  • readDer Freigabeempfänger kann die Frei/Gebucht-status des Besitzers in privaten Ereignissen sowie alle Details zu nicht privaten Ereignissen im Kalender anzeigen.
  • writeDer Freigabeempfänger kann die Frei/Gebucht-status des Besitzers in privaten Ereignissen anzeigen und alle Details anzeigen und nicht private Ereignisse im Kalender bearbeiten (erstellen, aktualisieren oder löschen).
  • delegateWithoutPrivateEventAccess Der Stellvertreter kann den Frei/Gebucht-Status des Besitzers für private Ereignisse anzeigen und hat write-Zugriff auf nicht private Ereignisse im Kalender.
  • delegateWithPrivateEventAccess Der Stellvertreter kann die Details der privaten und nicht privaten Ereignisse anzeigen und hat write-Zugriff auf alle Ereignisse im Kalender.

Der primäre Kalender eines Benutzers ist immer für "Meine Organisation" freigegeben, d. h. die Benutzer in der gleichen Organisation wie der Besitzer. Standardmäßig können diese Benutzer den Frei/Gebucht-Status des Besitzers in diesem Kalender lesen und verfügen über die freeBusyRead-Berechtigung.

Kalenderbesitzer: Abrufen von Informationen und Berechtigungen zu Freigaben oder Stellvertretungen

In diesem Beispiel wird mit der Zustimmung von Alex oder des Administrators gezeigt, wie calendarPermission-Objekte abgerufen werden, die mit dem primären Kalender von Alex verknüpft sind. Die Anforderung gibt zwei solche Berechtigungsobjekte zurück:

  • Das erste calendarPermission-Objekt wird der Stellvertreterin Megan zugewiesen und weist die folgenden Eigenschaftenwerte auf:

    • isRemovable ist auf "true" gesetzt, wodurch Alex die Möglichkeit hat, die Delegierung abzubrechen.
    • isInsideOrganization ist auf "true" gesetzt, da nur Benutzer in der gleichen Organisation Stellvertreter sein können.
    • role für Megan ist delegateWithPrivateEventAccess, wie von Alex eingerichtet.
    • allowedRoles enthält die Rollentypen delegateWithoutPrivateEventAccess und delegateWithPrivateEventAccess, die Stellvertretungen unterstützen.
    • emailAddress gibt " Megan" an.
  • Das zweite calendarPermission-Objekt ist ein Standardobjekt, das "Meine Organisation" zugewiesen ist und die folgenden Eigenschaftenwerte aufweist:

    • isRemovable ist auf "false" festgelegt, da der primäre Kalender immer für die Organisation des Besitzers freigegeben ist.
    • isInsideOrganization ist auf "true" gesetzt.
    • role ist auf freeBusyRead festgelegt, die Standardeinstellung für "Meine Organisation".
    • emailAddress gibt die name-Untereigenschaft als "Meine Organisation" an; address für "Meine Organisation" ist standardmäßig "Null".

Microsoft Graph-Berechtigungen

Verwenden Sie für diesen Vorgang die am wenigsten privilegierte delegierte Berechtigung oder die Anwendungsberechtigung (Calendars.Read) je nach Bedarf. Weitere Informationen finden Sie unter Kalenderberechtigungen.

GET https://graph.microsoft.com/beta/users/AlexW@contoso.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.com"
            }
        },
        {
            "id": "RGVmYXVsdA==",
            "isRemovable": false,
            "isInsideOrganization": true,
            "role": "freeBusyRead",
            "allowedRoles": [
                "none",
                "freeBusyRead",
                "limitedRead",
                "read",
                "write"
            ],
            "emailAddress": {
                "name": "My Organization"
            }
        }
    ]
}

Kalenderbesitzer: Aktualisieren der Berechtigungen für einen vorhandenen Freigabeempfänger oder -delegaten in einem Kalender

Mit Der Zustimmung von Alex oder administrator können Sie die Berechtigungen aktualisieren, die einem vorhandenen Freigabeempfänger oder -delegaten zugewiesen sind (angegeben durch die Rolleneigenschaft ), solange die neuen Berechtigungen von den allowedRoles unterstützt werden, die ursprünglich für den Freigabeempfänger oder Stellvertretung für diesen Kalender eingerichtet wurden.

Abgesehen von der Rolleneigenschaft können Sie keine anderen Eigenschaften eines vorhandenen Freigabeempfängers oder -delegaten aktualisieren. Wenn Sie den Wert der emailAddress-Eigenschaft ändern, müssen Sie den Freigabeempfänger oder -delegaten löschen und erneut eine neue instance von calendarPermission einrichten.

Das Beispiel in diesem Abschnitt aktualisiert die Rolleneigenschaft und ändert die Berechtigung des vorhandenen Freigabeempfängers Adele von readwrite in für den benutzerdefinierten Kalender "Kinderpartys".

Microsoft Graph-Berechtigungen

Verwenden Sie für diesen Vorgang die am wenigsten privilegierte delegierte Berechtigung oder die Anwendungsberechtigung (Calendars.ReadWrite) je nach Bedarf. Weitere Informationen finden Sie unter Kalenderberechtigungen.

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

Abrufen von Eigenschaften eines freigegebenen oder delegierten Kalenders

In diesem Abschnitt:

In diesem Beispiel hat Alex seinen primären Kalender delegiert und der Stellvertreterin, Megan Bowen, die Berechtigung erteilt, die als privat gekennzeichneten Kalendereinträge anzuzeigen. Dieser Abschnitt zeigt die Eigenschaften des delegierten Kalenders, zunächst aus der Perspektive und mit der Zustimmung des Besitzers, Alex, und dann aus der Perspektive und mit der Zustimmung der Stellvertreterin, Megan. Die Zustimmung des Administrators funktioniert für jeden Fall.

Kalenderbesitzer: Abrufen von Eigenschaften eines freigegebenen oder delegierten Kalenders

In dem Beispiel in diesem Abschnitt wird die Eigenschaften des primären Kalenders aus der Perspektive des Besitzers Alex abgerufen.

Beachten Sie die folgenden Eigenschaften im Namen von Alex:

  • canShare ist auf "true" gesetzt, da Alex der Besitzer ist.
  • canViewPrivateItems ist auf "true" gesetzt, da Alex der Besitzer ist.
  • isShared ist auf "true" gesetzt, da Alex einen Stellvertreter für diesen Kalender festgelegt hat.
  • isSharedWithMe ist für den Kalenderbesitzer auf "false" gesetzt.
  • owner zeigt Alex als Besitzer an.

Microsoft Graph-Berechtigungen

Verwenden Sie für diesen Vorgang die am wenigsten privilegierte delegierte Berechtigung oder die Anwendungsberechtigung (Calendars.Read) je nach Bedarf. Weitere Informationen finden Sie unter Kalenderberechtigungen.

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

Empfänger oder Delegaten freigeben: Abrufen der Eigenschaften eines freigegebenen oder delegierten Kalenders

In dem Beispiel in diesem Abschnitt wird die Eigenschaften desselben Kalenders aus der Perspektive der Stellvertreterin Megan abgerufen.

Beachten Sie die folgenden Eigenschaften:

  • name des Kalenders ist standardmäßig der Anzeigename des Besitzers. In diesem Fall ist es "Alex Wilber", da dies der Kalender von Alex ist, der an Megan delegiert wurde.
  • canShare ist auf "false" gesetzt, da Megan nicht die Besitzerin dieses Kalenders ist.
  • canViewPrivateItems ist für die Stellvertreterin Megan auf "true" gesetzt, wie von Alex konfiguriert. Für einen Freigabeempfänger, der kein Stellvertreter ist, ist diese Eigenschaft immer auf "false" festgelegt.
  • isShared ist auf "false" festgelegt. Diese Eigenschaft zeigt einem Kalenderbesitzer an, ob der Kalender freigegeben oder delegiert wurde.
  • Die Eigenschaft isSharedWithMe ist auf "true" gesetzt, da Megan eine Stellvertreterin ist.
  • canEdit ist auf "true" gesetzt, da Stellvertreter, wie Megan, Schreibzugriff haben.
  • owner ist auf "Alex" gesetzt.

Hinweis

Ein Freigabeempfänger oder Stellvertreter kann nur die Eigenschaft name eines freigegebenen/delegierten Kalenders anpassen. Die Aktualisierung ist nur für den jeweiligen Freigabeempfänger oder Stellvertreter selbst sichtbar; der Kalenderbesitzer sieht solche Kalendernamensänderungen nicht.

Microsoft Graph-Berechtigungen

Verwenden Sie für diesen Vorgang die am wenigsten privilegierte delegierte Berechtigung (Calendars.Read.Shared) oder die Anwendungsberechtigung (Calendars.Read) je nach Bedarf. Weitere Informationen finden Sie unter Kalenderberechtigungen.

GET https://graph.microsoft.com/beta/users/meganb@contoso.com/calendars/AAMkADlAABhbftjAAA=
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"
    }
}

Abrufen oder Festlegen von Postfacheinstellungen für den Empfang von Besprechungsanfragen und Antworten

In diesem Abschnitt:

Je nach dem Grad der Delegierung, den ein Kalenderbesitzer bevorzugt, kann er festlegen, wer Besprechungsanfragen und Antworten erhalten soll, um Besprechungen im Kalender zu verwalten.

Programmatisch können Sie die delegateMeetingMessageDeliveryOptions-Eigenschaft der MailboxSettings des Kalenderbesitzers abrufen oder festlegen, um anzugeben, an wen Outlook eventMessageRequest- und eventMessageResponse-Instanzen weiterleiten soll:

  • sendToDelegateOnly

    Outlook leitet eventMessageRequest- und eventMessageResponse-Instanzen nur an Stellvertreter weiter. Dies ist die Standardeinstellung. Der Besitzer kann Antworten auf eine Besprechung sehen oder auf eine Einladung über das entsprechende Ereignis im delegierten Kalender antworten.

  • sendToDelegateAndInformationToPrincipal

    Outlook leitet eventMessageRequest- und eventMessageResponse-Instanzen an Stellvertreter und den Kalenderbesitzer weiter. Die Option zum Annehmen oder Ablehnen einer Besprechungsanfrage wird nur den Stellvertretern angezeigt, und die den Besitzer gesendete Benachrichtigung wird wie eine normale E-Mail-Nachricht angezeigt. Der Besitzer kann dennoch auf die Besprechungsanfrage antworten, indem er das Ereignis im delegierten Kalender öffnet und darauf antwortet.

  • sendToDelegateAndPrincipal

    Outlook leitet eventMessageRequest- und eventMessageResponse-Instanzen an Stellvertreter und den Kalenderbesitzer weiter, von denen einer auf die Besprechungsanfrage antworten kann.

Dies ist eine postfachweite Einstellung, daher gilt die gleiche Einstellung für alle Stellvertreter des Postfachbesitzer.

Abrufen der Zustellungseinstellung für Delegierungen für das Postfach eines Benutzers

In dem Beispiel in diesem Abschnitt wird die mailboxSettings eines Kalenderbesitzers abgerufen, der Besprechungsanfragen und Antworten von Outlook nur an Kalenderstellvertreter weiterleiten lässt; d. h. delegateMeetingMessageDeliveryOptions ist auf sendToDelegateOnly festgelegt.

Microsoft Graph-Berechtigungen

Verwenden Sie für diesen Vorgang die am wenigsten privilegierte delegierte Berechtigung oder die Anwendungsberechtigung (MailboxSettings.Read) je nach Bedarf. Weitere Informationen zu Postfachberechtigungen finden Sie unter E-Mail-Berechtigungen.

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

Festlegen der Zustellungseinstellung für Delegierungen für das Postfach eines Benutzers

In dem Beispiel in diesem Abschnitt wird die Eigenschaft delegateMeetingMessageDeliveryOptions auf sendToDelegateAndPrincipal aktualisiert, damit Outlook Besprechungsanfragen und Antworten des delegierten Kalenders an alle Stellvertreter und den Besitzer weiterleiten kann.

Microsoft Graph-Berechtigungen

Verwenden Sie für diesen Vorgang die am wenigsten privilegierte delegierte Berechtigung oder die Anwendungsberechtigung (MailboxSettings.ReadWrite) je nach Bedarf. Weitere Informationen zu Postfachberechtigungen finden Sie unter E-Mail-Berechtigungen.

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

Löschen eines Freigabeempfängers oder Stellvertreters eines Kalenders

Im Beispiel unten löscht Alex Megan als Freigabeempfängerin des Kalenders "Kinderpartys".

Microsoft Graph-Berechtigungen

Verwenden Sie für diesen Vorgang die am wenigsten privilegierte delegierte Berechtigung oder die Anwendungsberechtigung (Calendars.ReadWrite) je nach Bedarf. Weitere Informationen finden Sie unter Kalenderberechtigungen.

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