Compartilhar ou delegar um calendário no Outlook
No Outlook, o proprietário do calendário pode compartilhá-lo com outro usuário. 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.
O proprietário também pode delegar outro usuário a gerenciar reuniões no calendárioprincipal do proprietário. Os delegados são destinatários de compartilhamento que podem exibir todas as informações e ter acesso de gravação a eventos não privados. 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. 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.
Antes que o compartilhamento de calendário ou delegação possa entrar em vigor, o proprietário envia um destinatário de compartilhamento ou delega um convite, e o destinatário ou delegado de compartilhamento aceita o convite ou adiciona explicitamente o calendário compartilhado ou delegado para acesso. O convite e a adição de um calendário compartilhado ou delegado ocorrem em um cliente do Outlook.
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.
O restante deste artigo baseia-se no exemplo a seguir:
- Alex Rodrigues delegou a Sara Melo seu calendário principal e também permitiu Sara para visualizar eventos privados nesse calendário.
- 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.
Este artigo descreve programaticamente a execução das seguintes tarefas com um calendário compartilhado ou delegado:
- Obter informações de calendário sobre destinatários de compartilhamento, delegados e permissões permitidas e atualizar permissões individuais
- Obtenha as propriedades que descrevem o compartilhamento ou a delegação de calendário.
- Obtenha ou defina a configuração de caixa de correio para receber solicitações de reunião e respostas para um calendário delegado.
- Exclua um destinatário de compartilhamento ou um representante de um calendário.
Os aplicativos também podem fazer o seguinte usando a API que geralmente está disponível:
- Obter calendário do Outlook compartilhado ou delegado ou seus eventos
- Criar eventos do Outlook em um calendário compartilhado ou delegado
Observação
As propriedades e API para compartilhamento e delegação de calendário conforme descrito neste tópico estão disponíveis atualmente no ponto de extremidade v1.0, com exceção das propriedades de calendário isShared e isSharedWithMe. Essas duas propriedades são expostas apenas no ponto de extremidade beta.
Obter informações de calendário sobre destinatários e delegados de compartilhamento e atualizar permissões individuais
Nesta seção:
- Proprietário do calendário: obter informações e permissões de compartilhamento e delegação
- Proprietário do calendário: atualizar permissões para um destinatário ou delegado de compartilhamento existente em um calendário
Cada calendário está associado a uma coleção de objetos calendarPermission , cada um dos quais descreve um destinatário ou delegado de compartilhamento e a permissão associada que o proprietário do calendário configurou. A enumeração calendarRoleType define o intervalo de permissões que o Microsoft Graph dá suporte:
-
none
Esse valor se aplica somenteMy Organization
ao qual não há permissões para o calendário. 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. -
freeBusyRead
O destinatário do compartilhamento pode exibir o status gratuito/ocupado do proprietário, mas não outros detalhes sobre o calendário. -
limitedRead
O destinatário do compartilhamento pode exibir o status gratuito/ocupado do proprietário e os títulos e locais de eventos não privados no calendário. -
read
O destinatário do compartilhamento pode exibir o status gratuito/ocupado do proprietário em eventos privados e todos os detalhes de eventos não privados no calendário. -
write
O destinatário do compartilhamento pode exibir o status gratuito/ocupado 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. -
delegateWithoutPrivateEventAccess
O delegado pode visualizar o status de disponibilidade do proprietário em eventos privados e temwrite
acesso a eventos não privados no calendário. -
delegateWithPrivateEventAccess
O delegado pode visualizar o status de disponibilidade do proprietário em eventos privados e tem acessowrite
a eventos não privados no calendário.
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. Por padrão, eles podem ler o status de disponibilidade do proprietário no calendário e ter a permissão freeBusyRead
.
Proprietário do calendário: obter informações e permissões de compartilhamento e delegação
Este exemplo mostra com o consentimento de Alex ou administrador, como obter os objetos calendarPermission associados ao calendário principal de Alex. A solicitação retorna dois objetos de permissão:
O primeiro objeto calendarPermission é atribuído ao delegado, Sara, e tem os seguintes valores de propriedade:
- isRemovable está definida como true, o que permite a cancelamento de uma delegação.
- isInsideOrganization é verdadeiro, pois somente os usuários na mesma organização podem ser delegados.
-
a função de Sara é
delegateWithPrivateEventAccess
, conforme configurado por Alex. -
allowedRoles inclui os tipos de função
delegateWithoutPrivateEventAccess
edelegateWithPrivateEventAccess
que oferecem suporte à delegação. - emailAddress especifica Sara.
O segundo objeto calendarPermission é um objeto padrão atribuído a "My Organization" e tem os seguintes valores de propriedade:
- isRemovable está definido como falso, uma vez que o calendário principal é sempre compartilhado com a organização do proprietário.
- isInsideOrganization é verdadeiro.
-
a funçãoé
freeBusyRead
, a configuração padrão para "My Organization". - emailAddress especifica a subpropriedade name como "My Organization"; o endereçode "My Organization" é nulo.
Permissões do Microsoft Graph
Use a permissão delegada ou de aplicativo com menos privilégios, Calendars.Read
, conforme apropriado, para esta operação. Para obter mais informações, confira permissões de calendário.
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"
}
}
]
}
Proprietário do calendário: atualizar permissões para um destinatário ou delegado de compartilhamento existente em um calendário
Com o consentimento de Alex ou administrador, você pode atualizar as permissões atribuídas a um destinatário ou delegado de compartilhamento existente (especificado pela propriedade role ), desde que as novas permissões sejam compatíveis com as permissões configuradas inicialmente para o destinatário ou delegado de compartilhamento para esse calendário.
Além da propriedade role , você não pode atualizar outras propriedades de um destinatário ou delegado de compartilhamento existente. Alterar o valor da propriedade emailAddress requer a exclusão do destinatário ou delegado do compartilhamento e a configuração de uma nova instância de calendarPermission novamente.
O exemplo nesta seção atualiza a propriedade de função , alterando a permissão de um destinatário de compartilhamento existente, Adele, de read
para write
o calendário personalizado "Festas kids".
Permissões do Microsoft Graph
Use a permissão delegada ou de aplicativo com menos privilégios, Calendars.ReadWrite
, conforme apropriado, para esta operação. Para obter mais informações, confira permissões de calendário.
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"
}
}
Obter propriedades de um calendário compartilhado ou delegado
Nesta seção:
- Proprietário do calendário: Obter propriedades de um calendário compartilhado ou delegado
- destinatário ou delegado de compartilhamento: obter propriedades do calendário compartilhado ou delegado
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. 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. O consentimento do administrador também funciona para todos os casos.
Proprietário do calendário: Obter propriedades de um calendário compartilhado ou delegado
O exemplo nesta seção obtém as propriedades do calendário principal da perspectiva do proprietário, Alex.
Observe as seguintes propriedades de Alex:
- canshare é verdadeiro, pois Alex é o proprietário.
- canViewPrivateItems é verdadeiro, uma vez que Alex é o proprietário.
- isShared é definido como verdadeiro, uma vez que o Alex configurou um delegado para este calendário.
- isSharedWithMe é sempre falso para o proprietário do calendário.
- owner mostra Alex como proprietário.
Permissões do Microsoft Graph
Use a permissão delegada ou de aplicativo com menos privilégios, Calendars.Read
, conforme apropriado, para esta operação. Para obter mais informações, confira permissões de calendário.
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"
}
}
Compartilhar destinatário ou delegado: obter propriedades do calendário compartilhado ou delegado
O exemplo nesta seção obtém as propriedades do mesmo calendário da perspectiva da delegada, Sara.
Observe as seguintes propriedades:
- nome do calendário é, por padrão, o nome de exibição do proprietário. Nesse caso, é "Alex Rodrigues", já que o calendário de Alex, foi delegado a Sara.
- canShare é falso, uma vez que Sara não é a proprietária do calendário.
- canViewPrivateItems é verdadeiro para a delegada Sara, conforme configurado por Alex. Para um sharee que não seja um delegado essa propriedade será sempre falsa.
- isShared é falso. Esta propriedade indica apenas ao proprietário do calendário se o calendário foi compartilhado ou delegado.
- A propriedadeisSharedWithMe é verdadeira, uma vez que Sara é uma delegada.
- CanEdit é verdadeiro, uma vez que os delegados, incluindo Sara, têm acesso de gravação.
- owner está definido como Alex.
Observação
Um compartilhamento ou representante só pode personalizar a propriedade nome de um calendário compartilhado/delegado. 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.
Permissões do Microsoft Graph
Use a permissão delegada com menos privilégios, Calendars.Read.Shared
, ou permissão de aplicativo, Calendars.Read
, conforme apropriado, para esta operação. Para obter mais informações, confira permissões de calendário.
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"
}
}
Obtenha ou defina a configuração de caixa de correio para receber solicitações de reunião e respostas
Nesta seção:
- Obter a configuração de entrega de delegação para a caixa de correio de um usuário
- Definir a configuração de entrega de delegação para a caixa de correio de um usuário
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.
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:
sendToDelegateOnly
O Outlook para direcionar as instânciaseventMessageRequest e eventMessageResponse para delegados. Esta é a configuração padrão. 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.
sendToDelegateAndInformationToPrincipal
O Outlook direciona as instânciaseventMessageRequest e eventMessageResponse para delegados e para o proprietário do calendário. 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. O proprietário ainda pode responder à reunião, abrindo o evento no calendário delegado e respondendo.
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.
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.
Obter a configuração de entrega de delegação para a caixa de correio de um usuário
O exemplo nesta seção obtém as mailboxSettings de um proprietário de calendário que permite que o Outlook direcione solicitações e respostas de reunião apenas para delegados de calendário; ou seja, delegateMeetingMessageDeliveryOptions é definido como sendToDelegateOnly
.
Permissões do Microsoft Graph
Use a permissão delegada ou de aplicativo com menos privilégios, MailboxSettings.Read
, conforme apropriado, para esta operação. Para obter mais informações sobre permissões de caixa de correio, confira permissões de email.
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"
}
}
}
Definir a configuração de entrega de delegação para a caixa de correio de um usuário
O exemplo nesta seção atualiza a propriedade delegateMeetingMessageDeliveryOptions para sendToDelegateAndPrincipal
, para que o Outlook direcione solicitações de reunião e respostas do calendário delegado para todos os delegados e o proprietário.
Permissões do Microsoft Graph
Use a permissão delegada ou de aplicativo com menos privilégios, MailboxSettings.ReadWrite
, conforme apropriado, para esta operação. Para obter mais informações sobre permissões de caixa de correio, confira permissões de email.
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"
}
Exclua um compartilhamento ou um representante de um calendário.
No exemplo abaixo, Alex exclui Sara como um sharee do calendário "Festas infantis".
Permissões do Microsoft Graph
Use a permissão delegada ou de aplicativo com menos privilégios, Calendars.ReadWrite
, conforme apropriado, para esta operação. Para obter mais informações, confira permissões de calendário.
DELETE https://graph.microsoft.com/beta/users/AlexW@contoso.com/calendars/AAMkADAwAABf02bAAAA=/calendarPermissions/L289RXhjaGFuZ2VMYWJTWVnYW5C
HTTP/1.1 204 No Content
Conteúdo relacionado
- Compartilhar um calendário do Outlook com outras pessoas
- Permitir que outra pessoa gerencie o email e o calendário como delegado
- Compartilhar seu calendário no Outlook na Web
- Delegação de calendário no Outlook na Web
- Obter eventos do Outlook em um calendário compartilhado ou delegado
- Criar eventos do Outlook em um calendário compartilhado ou delegado