Compartilhar ou delegar um calendário no OutlookShare or delegate a calendar in Outlook

No Outlook, o proprietário do calendário pode compartilhá-lo com outro usuário.In Outlook, a calendar owner can share the calendar with another user. O proprietário pode especificar quais informações em eventos não particulares podem ser visualizadas e pode conceder acesso de gravação para os usuários na mesma organização.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.

O proprietário também pode delegar outro usuário a gerenciar reuniões no calendário_principal_ do proprietário.The owner can also delegate another user to manage meetings in the owner's primary calendar. Delegados são sharees que podem visualizar todas as informações e ter acesso de gravação a eventos não privados.Delegates are sharees who can view all information in and have write access to non-private events. Eles também recebem solicitações de reunião e respostas, além de responder a solicitações de reunião em nome do proprietário.They also receive meeting requests and responses, and respond to meeting requests on behalf of the owner. Além disso, o proprietário pode conceder permissões explícitas a delegados para exibir os eventos particulares do proprietário no calendário.Additionally, the owner can give explicit permissions to delegates to view the owner's private events on the calendar.

Antes que o compartilhamento ou delegação de calendário entre em vigor, o proprietário envia um sharee ou delega um convite e o sharee ou o delegado aceita o convite ou adiciona explicitamente o calendário compartilhado ou delegado para acesso.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. O convite e a adição de um calendário compartilhado ou delegado ocorrem em um cliente do Outlook.The invitation and adding a shared or delegated calendar occur in an Outlook client.

Depois de configurar o compartilhamento ou a delegação no Outlook, os aplicativos poderão usar a API do Microsoft Graph para gerenciar o compartilhamento e a delegação.After sharing or delegation is set up in Outlook, apps can then use the Microsoft Graph API to manage the sharing and delegation.

O restante deste artigo baseia-se no exemplo a seguir:The rest of this article is based on the following example scenario:

  • Alex Rodrigues delegou a Sara Melo seu calendário principal e também permitiu Sara para visualizar eventos privados nesse calendário.Alex Wilber has delegated Megan Bowen to his primary calendar, and also permitted Megan to view private events in that calendar.
  • Alex compartilhou no calendário o evento "festa das crianças" com Adele Vance e Sara Melo, e atribuiu Adele e a Sara permissões read para todos os detalhes de eventos não privados no calendário "festas das crianças" e o status de disponibilidade para eventos privados.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.

Este artigo descreve programaticamente a execução das seguintes tarefas com um calendário compartilhado ou delegado:This article describes programmatically carrying out the following tasks with a shared or delegated calendar:

Os aplicativos também podem fazer o seguinte usando a API que geralmente está disponível:Apps can also do the following using API that is generally available:

Observação

As propriedades e API para compartilhamento de calendário e delegação, conforme descrito neste tópico, estão disponíveis atualmente no ponto de extremidade v 1.0, com exceção das propriedades de calendário IsShared e 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. Essas duas propriedades são expostas somente no ponto de extremidade beta.These two properties are exposed in only the beta endpoint.

Obtenha informações de calendário sobre compartilhamento, delegados e permissões permitidas e atualize permissões individuais.Get calendar information about sharees and delegates, and update individual permissions

Nesta seção:In this section:

Todos os calendários estão associados a um conjunto de objetos calendarPermission, cada um deles descreve um compartilhamento ou delegado e a permissão associada que o proprietário do calendário configurou.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. A enumeração calendarRoleType define o intervalo de permissões que o Microsoft Graph dá suporte:The calendarRoleType enumeration defines the range of permissions that Microsoft Graph supports:

  • none Esse valor se aplica somente a My Organization que não tem permissões para o calendário.none This value applies to only My Organization which does not have any permissions to the calendar. Isso não se aplica a usuários individuais, pois somente os usuários com permissões estão associados a um objeto calendarPermission para o calendário.It doesn't apply to individual users, as only users with permissions are associated with a calendarPermission object for the calendar.
  • freeBusyRead O sharee pode exibir o status de disponibilidade do proprietário, mas não outros detalhes no calendário.freeBusyRead The sharee can view the owner's free/busy status, but not other details on the calendar.
  • limitedRead O sharee pode exibir o status de disponibilidade do proprietário e os títulos e locais de eventos não privados no calendário.limitedRead The sharee can view the owner's free/busy status, and the titles and locations of non-private events on the calendar.
  • read O sharee pode visualizar o status de disponibilidade do proprietário em eventos privados e todos os detalhes de eventos não privados no calendário.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 O sharee pode visualizar o status de disponibilidade do proprietário em eventos privados e pode exibir todos os detalhes e editar (criar, atualizar ou excluir) eventos não privados no calendário.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 O delegado pode visualizar o status de disponibilidade do proprietário em eventos privados e tem write acesso a eventos não privados no calendário.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 O delegado pode visualizar o status de disponibilidade do proprietário em eventos privados e tem acesso write a eventos não privados no calendário.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.

O calendário principal de um usuário sempre é compartilhado com a "Minha Organização", que representa os usuários na mesma organização do proprietário.The primary calendar of a user is always shared with "My Organization", which represents the users in the same organization as the owner. Por padrão, eles podem ler o status de disponibilidade do proprietário no calendário e ter a permissão freeBusyRead.By default, they can read the owner's free/busy status on that calendar and have the freeBusyRead permission.

Proprietário do calendário: obter informações e permissões de compartilhamento e delegaçãoCalendar owner: Get sharing or delegation information and permissions

O exemplo a seguir mostra, com o consentimento de Alex ou administrador, como obter os objetos calendarPermission associados ao calendário principal de Alex.The following example shows with the consent of Alex or administrator, how to get the calendarPermission objects associated with Alex' primary calendar. A solicitação retorna dois objetos de permissão:The request returns two such permission objects:

  • O primeiro objeto calendarPermission é atribuído ao delegado, Sara, e tem os seguintes valores de propriedade:The first calendarPermission object is assigned to the delegate, Megan, and has the following property values:

    • isRemovable está definida como true, o que permite a cancelamento de uma delegação.isRemovable is set to true, providing Alex the option to cancel the delegation.
    • isInsideOrganization é verdadeiro, pois somente os usuários na mesma organização podem ser delegados.isInsideOrganization is true as only users in the same organization can be delegates.
    • a função de Sara é delegateWithPrivateEventAccess, conforme configurado por Alex.role for Megan is delegateWithPrivateEventAccess, as set up by Alex.
    • allowedRoles inclui os tipos de função delegateWithoutPrivateEventAccessedelegateWithPrivateEventAccess que oferecem suporte à delegação.allowedRoles includes the role types delegateWithoutPrivateEventAccess and delegateWithPrivateEventAccess that support delegation.
    • emailAddress especifica Sara.emailAddress specifies Megan.
  • O segundo objeto calendarPermission é um objeto padrão atribuído a "My Organization" e tem os seguintes valores de propriedade:The second calendarPermission object is a default object assigned to "My Organization", and has the following property values:

    • isRemovable está definido como falso, uma vez que o calendário principal é sempre compartilhado com a organização do proprietário.isRemovable is set to false, since the primary calendar is always shared with the owner's organization.
    • isInsideOrganization é verdadeiro.isInsideOrganization is true.
    • a funçãoéfreeBusyRead, a configuração padrão para "My Organization".role is freeBusyRead, the default setting for "My Organization".
    • emailAddress especifica a subpropriedade name como "My Organization"; o endereçode "My Organization" é nulo.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"
            }
        }
    ]
}

Proprietário do calendário: atualizar permissões para um sharee existente ou delegado em um calendárioCalendar owner: Update permissions for an existing sharee or delegate on a calendar

Com o consentimento de Alex ou do administrador, você pode atualizar as permissões atribuídas a um compartilhamento ou delegado existente (especificado pela propriedade função), contanto que as novas permissões sejam compatíveis com allowedRoles configurado inicialmente para o sharee ou o delegado desse calendário.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.

Com exceção da propriedade função, você não pode atualizar outras propriedades de um sharee ou delegado existente.Aside from the role property, you cannot update other properties of an existing sharee or delegate. Alterar o valor da propriedade emailAddress exige a exclusão do compartilhamento ou do representante e a configuração de uma nova instância do calendarPermission novamente.Changing the emailAddress property value requires deleting the sharee or delegate and setting up a new instance of calendarPermission again.

O exemplo a seguir atualiza a propriedade função, alterando a permissão de um compartilhamento existente, Adele, de read a write para o calendário personalizado "festas das crianças".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"
    }
}

Obter propriedades de um calendário compartilhado ou delegadoGet properties of a shared or delegated calendar

Nesta seção:In this section:

Lembrando deste exemplo, Alex delegou seu calendário principal e concedeu à delegada, Sara Melo, a permissão para exibir itens de calendário marcados como particulares.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. Esta seção mostra as propriedades do calendário delegado, primeiro a partir da perspectiva de e com o consentimento do proprietário, Alex, da perspectiva de e com o consentimento da delegada, Sara.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. O consentimento do administrador também funciona para todos os casos.Consent from the administrator also works for each case.

Proprietário do calendário: Obter propriedades de um calendário compartilhado ou delegadoCalendar owner: Get properties of a shared or delegated calendar

O exemplo a seguir obtém as propriedades do calendário principal da perspectiva do proprietário, Alex.The following example gets the properties of the primary calendar from the perspective of the owner, Alex.

Observe as seguintes propriedades de Alex:Note the following properties on Alex' behalf:

  • canshare é verdadeiro, pois Alex é o proprietário.canShare is true as Alex is the owner.
  • canViewPrivateItems é verdadeiro, uma vez que Alex é o proprietário.canViewPrivateItems is true since Alex is the owner.
  • isShared é definido como verdadeiro, uma vez que o Alex configurou um delegado para este calendário.isShared is set to true, as Alex has set up a delegate for this calendar.
  • isSharedWithMe é sempre falso para o proprietário do calendário.isSharedWithMe is always false for the calendar owner.
  • owner mostra Alex como proprietário.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"
    }
}

Compartilhar ou delegar: obter propriedades de calendário compartilhado ou delegadoSharee or delegate: Get properties of shared or delegated calendar

O exemplo a seguir obtém as propriedades do mesmo calendário da perspectiva do representante, Sara.The following example gets the properties of the same calendar from the perspective of the delegate, Megan.

Observe as seguintes propriedades:Note the following properties:

  • nome do calendário é, por padrão, o nome de exibição do proprietário.name of the calendar is by default the owner's display name. Nesse caso, é "Alex Rodrigues", já que o calendário de Alex, foi delegado a Sara.In this case, it's "Alex Wilber", since this is Alex' calendar delegated to Megan.
  • canShare é falso, uma vez que Sara não é a proprietária do calendário.canShare is false, since Megan is not the owner of this calendar.
  • canViewPrivateItems é verdadeiro para a delegada Sara, conforme configurado por Alex.canViewPrivateItems is true for the delegate Megan, as set up by Alex. Para um sharee que não seja um delegado essa propriedade será sempre falsa.For a sharee that is not a delegate, this property is always false.
  • isShared é falso.isShared is false. Esta propriedade indica apenas ao proprietário do calendário se o calendário foi compartilhado ou delegado.This property indicates only to a calendar owner whether the calendar has been shared or delegated.
  • A propriedadeisSharedWithMe é verdadeira, uma vez que Sara é uma delegada.isSharedWithMe property is true, since Megan is a delegate.
  • CanEdit é verdadeiro, uma vez que os delegados, incluindo Sara, têm acesso de gravação.canEdit is true, since delegates, including Megan, have write access.
  • owner está definido como Alex.owner is set to Alex.

Observação

Um compartilhamento ou representante só pode personalizar a propriedade nome de um calendário compartilhado/delegado.A sharee or delegate can customize only the name property of a shared/delegated calendar. A atualização é visível apenas para eles mesmos; o proprietário do calendário não vê essas alterações no nome do calendário.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"
    }
}

Obtenha ou defina a configuração de caixa de correio para receber solicitações de reunião e respostasGet or set mailbox setting to receive meeting requests and responses

Nesta seção:In this section:

Dependendo do nível de delegação que um proprietário de calendário prefere, o proprietário poderá especificar quem deve receber solicitações de reunião e respostas para gerenciar as reuniões no calendário.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.

Programaticamente, você pode obter ou definir a propriedade delegateMeetingMessageDeliveryOptions do proprietário do calendário mailboxSettings para especificar para quem o Outlook deve direcionar as instânciaseventMessageRequest e 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

    O Outlook para direcionar as instânciaseventMessageRequest e eventMessageResponse para delegados.Outlook to direct eventMessageRequest and eventMessageResponse instances to only delegates. Esta é a configuração padrão.This is the default setting. O proprietário pode ver as respostas a uma reunião ou responder a um convite através do evento correspondente no calendário delegado.The owner can see responses to a meeting or respond to an invitation through the corresponding event in the delegated calendar.

  • sendToDelegateAndInformationToPrincipal

    O Outlook direciona as instânciaseventMessageRequest e eventMessageResponse para delegados e para o proprietário do calendário.Outlook to direct eventMessageRequest and eventMessageResponse instances to delegates and the calendar owner. Somente os representantes veem a opção de aceitar ou recusar uma solicitação de reunião, e a notificação enviada ao proprietário aparece como uma mensagem de e-mail normal.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. O proprietário ainda pode responder à reunião, abrindo o evento no calendário delegado e respondendo.The owner can still respond to the meeting by opening the event in the delegated calendar and responding.

  • sendToDelegateAndPrincipal

    O Outlook direciona as instânciaseventMessageRequest e eventMessageResponse para delegados e para o proprietário do calendário, ou seja, que podem responder à solicitação de reunião.Outlook to direct eventMessageRequest and eventMessageResponse instances to delegates and the calendar owner, either of whom can respond to the meeting request.

Essa é uma configuração para toda a caixa de correio; portanto, a mesma configuração se aplica a todos os delegados do proprietário da caixa de correio.This is a mailbox-wide setting, so the same setting applies to all delegates of the mailbox owner.

Obter a configuração de entrega de delegação para a caixa de correio de um usuárioGet delegation delivery setting for a user's mailbox

O exemplo a seguir obtém mailboxSettings de um proprietário de calendário que permite a solicitação de reunião direta do Outlook e respostas a somente delegados de calendário, ou seja, delegateMeetingMessageDeliveryOptions está definida como sendToDelegateOnly.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"
        }
    }
}

Definir a configuração de entrega de delegação para a caixa de correio de um usuárioSet delegation delivery setting for a user's mailbox

O exemplo a seguir atualiza a propriedade delegateMeetingMessageDeliveryOptions para sendToDelegateAndPrincipal, para que o Outlook solicite solicitações de reunião e respostas do calendário delegado a todos os delegados e o proprietário.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"
}

Exclua um compartilhamento ou um representante de um calendário.Delete a sharee or delegate of a calendar

No exemplo a seguir, Alex exclui Sara no compartilhamento do calendário de "festas das crianças".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

Próximas etapasNext steps

Saiba mais sobre:Find out more about: