Obter calendário do Outlook compartilhado ou delegado e seus eventosGet shared or delegated Outlook calendar and its events

No Outlook, um proprietário de calendário pode compartilhar um calendário com outros usuários e deixá-los exibir ou modificar eventos nesse calendário. o calendário compartilhado pode ser um calendário personalizado ou o calendário principal do proprietário, criado por ele..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. Os clientes também podem permitir que um representante aja em nome deles, para receber ou responder a solicitações de reunião ou então para criar ou alterar itens no calendário.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.

Programaticamente, o Microsoft Graph oferece suporte à leitura e à criação de eventos em calendários que foram compartilhadas por outros usuários, além de leitura de calendários compartilhados e atualização do nome do calendário para compartilhamento.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. O suporte também se aplica a calendários que foram delegados.The support also applies to calendars that have been delegated. O restante deste artigo descreve a leitura de eventos em um calendário compartilhado ou delegado.The rest of this article describes reading events in a shared or delegated calendar. Para obter eventos, consulteObter eventos do Outlook em um calendário compartilhado ou delegado.For creating events, refer to Create Outlook events in a shared or delegated calendar.

Compartilhamento: Obtenha um calendário compartilhado ou seus eventos diretamente da caixa de correio do proprietário do calendárioSharee: Get a shared calendar or its events directly from calendar owner's mailbox

Os três exemplos a seguir usam esse cenário: no Outlook, Alex compartilhou seu calendário principal com Sara e recebeu de Sara permissões de leitura.The three examples below use this scenario: in Outlook, Alex has shared his primary calendar with Megan and given Megan read permissions. Se Sara entrar no aplicativo e oferecer permissões delegadas (Calendars.Read.Shared ou Calendars.ReadWrite.Shared), em nome de Sara, seu aplicativo poderá acessar o calendário principal e seus eventos diretamente da caixa de correio.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.

Os três exemplos especificam a identidade do proprietário (Alex ' ID de usuário ou nome de usuário do usuário) e o atalho calendar.The three examples specify the owner's identity (Alex' user ID or user principal name) and the calendar shortcut. Eles acessam o calendário e as IDs de eventos que correspondem somente à caixa de correio do proprietário.They access calendar and event IDs that correspond to only the owner's mailbox. Especificar esses IDs de eventos e calendários na caixa de correio do compartilhamento (ID de usuário de Sara ou nome de usuário principal) retornaria um erro.Specifying these calendar and event IDs in the sharee's mailbox (Megan's user ID or user principal name) would return an error. Para usar o calendário e as IDs de eventos que correspondem à caixa de correio do compartilhamento, confira compartilhar: Obtenha calendário personalizado, compartilhado ou seus eventos na caixa de correio do compartilhamento.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.

Observação permissões de compartilhamento (Calendars.Read.Shared ou Calendars.ReadWrite.Shared) permitem a você ler ou escrever eventos em um calendário compartilhado ou representante.Note: The sharing permissions (Calendars.Read.Shared or Calendars.ReadWrite.Shared) allow you to read or write events in a shared or delegated calendar. Eles não têm suporte subscrever para alterar notificações em itens como pastas.They do not support subscribing to change notifications on items in such folders. Para configurar as assinaturas de notificação de alteração em eventos em um usuário compartilhado, representante ou qualquer outro usuário ou calendário de recursos no locatário, use a permissão de aplicativo 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.

Sara: Obtenha o calendário principal compartilhado diretamente da caixa de correio de AlexMegan: Get the shared, primary calendar directly from Alex' mailbox

Conectado como Sara, obtenha o calendário principal que Alex compartilhou com Sara, diretamente da caixa de correio de 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

Após a conclusão bem-sucedida, você receberá HTTP 200 OK e uma instância de calendário que representa calendário compartilhado, principal, na caixa de correio de Alex.On successful completion, you'll get HTTP 200 OK and a calendar instance that represents Alex' shared, primary calendar, in Alex' mailbox.

Sara: Obtenha o calendário principal compartilhado diretamente a partir da caixa de correio de AlexMegan: Get an event in the shared, primary calendar directly from Alex' mailbox

Conectado como Sara, seu aplicativo pode obter um evento específico no calendário principal que Alex compartilhou com Sara, diretamente da caixa de correio de 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}

Após a conclusão bem-sucedida, você receberá HTTP 200 OK e a instância de evento identificada por {id} do calendário principal de Alex, diretamente da caixa de correio de 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.

Sara: Obtenha todos os eventos no calendário principal compartilhado da caixa de correio de AlexMegan: Get all the events in the shared, primary calendar from Alex' mailbox

Conectado como Sara, obtenha todos os eventos no calendário principal que Alex compartilhou com Sara, diretamente da caixa de correio de 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

Após a conclusão bem-sucedida, você receberá HTTP 200 OK e uma coleção das instâncias de evento do calendário principal de Alex, diretamente da caixa de correio de Alex.On successful completion, you'll get HTTP 200 OK and a collection of event instances in Alex' primary calendar, directly from Alex' mailbox.

Os mesmos recursos GET se aplicam se a Alex tiver delegado o acesso a Sara ao calendário principal de Alex, ou se Alex tiver delegado a Sara a sua caixa de correio inteira.The same GET capabilities apply if Alex has delegated Megan access to Alex' primary calendar, or if Alex has delegated Megan his entire mailbox.

Se Alex não tiver compartilhado nem delegado o seu calendário principal com Sara, especificar a ID de usuário ou o nome de usuário da Alex nas operações de obter retornará um erro.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.

Compartilhamento: Obtenha calendário personalizado, compartilhado ou seus eventos da caixa de correio do compartilhamentoSharee: Get shared, custom calendar or its events from sharee's mailbox

Se Alex compartilhou um calendário personalizado (por exemplo, um calendário chamado "festas de crianças") com Adele e Adele tiver fornecido permissões delegadas (Calendars.Read ou Calendars.ReadWrite), seu aplicativo poderá obter os eventos ou o calendário do calendário da cópia local do Alex ", na caixa de email de Adele, conforme descrito abaixo.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. Conectado como Adele, use uma das seguintes solicitações para obter todos os calendários aos quais Adele tem acesso, incluindo o calendário personalizado compartilhado.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
    

    Uma resposta bem-sucedida inclui o código de resposta HTTP 200 e o conjunto de calendários que Adele tem acesso, incluindo o calendário ("festas das crianças") com o nome do proprietário como "Alex Rodrigues" como o segundo calendário na resposta.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. Para um compartilhamento, Adele, a propriedade canShare do calendário compartilhado é sempre falsa.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. Conectado como Adele, obtenha o calendário compartilhado ou obtenha um ou mais eventos no calendário compartilhado usando a segunda ID de calendário na resposta da etapa 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. As IDs do calendário compartilhado e seu evento correspondem à cópia local do calendário de Alex na caixa de correio de Adele.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
    

Após a conclusão bem-sucedida, você receberá HTTP 200 OK e o evento, os eventos ou o calendário solicitado que Alex compartilhou com Adele.On successful completion, you'll get HTTP 200 OK and the requested event, events, or calendar that Alex has shared with Adele.

Próximas etapasNext steps

Saiba mais sobre:Find out more about: