Calendários e EWS no Exchange

Saiba mais sobre calendários, pastas de calendário e itens, compromissos e reuniões no Exchange.

Você provavelmente está familiarizado com muitos dos recursos do calendário em clientes de email como o Outlook, que permitem acompanhar compromissos, agendar reuniões, verificar a disponibilidade das pessoas, convidar participantes e alterar ou cancelar reuniões.

Os recursos relacionados ao calendário no Exchange são um pouco diferentes do que você vê em um cliente como o Outlook. Em vez de exibir informações, o EWS no Exchange permite que você faça coisas como criar, armazenar, enviar ou alterar informações. Para usar o EWS para trabalhar com calendários, você precisará estar familiarizado com conceitos como armazenamento de informações, tempo, recorrência e fluxo de mensagens. Mais especificamente, você precisará estar familiarizado com o seguinte:

  • Pastas de calendário, itens de calendário e exibições de calendário

  • Solicitações de reunião, respostas, agendamento, participantes, recursos, salas e disponibilidade

  • Durações de tempo, fusos horários e horários de início e término de reuniões e compromissos

  • Séries recorrentes, padrões de recorrência, exceções e compromissos e reuniões de instância única

Felizmente, o EWS e a API Gerenciada do EWS fornecem um conjunto avançado de operações e métodos que permitem executar uma ampla gama de tarefas relacionadas ao calendário. Por exemplo, usando a API Gerenciada do EWS, você pode criar uma reunião e enviar convites aos participantes com apenas algumas linhas de código, conforme mostrado no exemplo a seguir.

            Appointment meeting = new Appointment(service);
            // Set the properties on the meeting object to create the meeting.
            meeting.Subject = "Team building exercise";
            meeting.Body = "Let's learn to really work as a team and then have lunch!";
            meeting.Start = DateTime.Now.AddDays(2);
            meeting.End = meeting.Start.AddHours(2);
            meeting.Location = "Conference Room 12";
            meeting.RequiredAttendees.Add("Mack.Chaves@contoso.com");
            meeting.RequiredAttendees.Add("Sadie.Daniels@contoso.com");
            meeting.OptionalAttendees.Add("Magdalena.Kemp@contoso.com");
            meeting.ReminderMinutesBeforeStart = 60;
            // Send the meeting request
            meeting.Save(SendInvitationsMode.SendToAllAndSaveCopy);

Pastas de calendário e itens de calendário

As pastas de calendário contêm itens de calendário. As pastas de calendário têm uma classe de pasta de IPF. Nomeação e pode incluir apenas os itens definidos pela propriedade API Gerenciada do ItemClass EWS, que está associada a um objeto Classe de Nomeação ou ao elemento EWS CalendarItemType .

Os itens em uma pasta Calendário são um pouco diferentes dos itens em outras pastas em uma caixa de correio porque ocorrências em uma série recorrente e exceções a uma série recorrente não são itens reais na caixa de correio, mas sim são armazenados internamente como anexos a um mestre recorrente. Portanto, para recuperar todos os compromissos em um determinado intervalo de datas, você precisa usar uma exibição de calendário. Para saber mais sobre como recuperar compromissos e exibições de calendário, confira Obter compromissos e reuniões usando o EWS no Exchange.

Reuniões e compromissos

A diferença essencial entre reuniões e compromissos é que as reuniões têm participantes e os compromissos não. Internamente, o Exchange usa o mesmo objeto para reuniões e compromissos. Você usa a classe de Compromisso da API Gerenciada do EWS ou o elemento CalendarItem do EWS para trabalhar com reuniões e compromissos.

Tanto compromissos quanto reuniões podem ser instâncias individuais ou parte de uma série recorrente, mas como os compromissos não incluem participantes, salas ou recursos, eles não exigem que uma mensagem seja enviada.

Como as reuniões incluem enviar e responder a solicitações e atualizações, elas envolvem mais do que apenas acessar itens em uma pasta Calendário. Eles também têm um fluxo de trabalho associado. As reuniões devem ser agendadas quando os participantes estiverem disponíveis e também podem envolver a reserva de uma sala de reunião ou recursos como um projetor ou outros equipamentos.

Normalmente, o fluxo de trabalho da reunião envolve as seguintes etapas:

  1. Uma reunião é criada e preenchida com informações como hora de início e término, localização e um corpo de mensagem.
  2. Uma lista de possíveis participantes, recursos e salas é criada.
  3. O status de disponibilidade dos participantes é verificado.
  4. Uma solicitação de reunião é enviada aos participantes.
  5. Os participantes respondem à reunião com a intenção de participar ou não. Os participantes também podem propor um novo horário para a reunião.
  6. As reuniões podem ser canceladas ou atualizadas, que normalmente disparam novas mensagens a serem enviadas aos participantes.

Calendários e hora

A funcionalidade relacionada ao tempo é essencial para o calendário. Compromissos e reuniões têm horários de início e término, durações e outras propriedades relacionadas ao tempo, como a hora em que uma mensagem é criada, enviada e recebida. Compromissos e reuniões existentes podem ser recuperados de uma pasta Calendário com base em um horário de início e término. As séries recorrentes têm inícios e términos. E as reuniões ocorrem dentro de um determinado fuso horário, que é cada vez mais importante em uma economia global.

Os tempos são armazenados internamente em um servidor do Exchange em UTC (Tempo Universal Coordenado). O Exchange os converte em fuso horário local com base nas configurações do cliente. As propriedades DateTime são escopo para o fuso horário local do computador.

Série recorrente

Uma série recorrente de compromissos ou reuniões é composta por um mestre recorrente, um conjunto de itens de ocorrência e, opcionalmente, um conjunto de itens de exceção. As informações de recorrência são armazenadas no item mestre recorrente. O elemento EWS RecurringMasterItemId está associado a ocorrências e exceções em uma série ou você pode usar o método Appointment.BindToRecurringMaster EWS Managed API para obter o mestre recorrente. Usando uma instância de uma série, você pode encontrar todos os elementos e informações associados à série.

Observe que as propriedades de recorrência existem em todos os itens de calendário, mas elas são preenchidas apenas em itens mestres recorrentes. Além de um índice de todas as ocorrências em uma série, o mestre recorrente tem uma referência a ocorrências modificadas e excluídas e ao padrão de recorrência de uma série (por exemplo, diária, semanal, mensal ou anual).

Nesta seção

Confira também