Agendar compromissos repetidos como eventos recorrentes no Outlook
Eventos recorrentes são uma parte importante do calendário do Outlook. Seja uma reunião semanal individual com seu gerente ou uma reunião de revisão de toda a divisão que ocorre na segunda terça-feira de cada mês, eventos recorrentes permitem que o evento seja criado uma fez e que o servidor preencha o restante da série.
O principal dado que permite que os eventos recorrentes sejam "expandidos" em ocorrências individuais é a regra de recorrência. A regra especifica a frequência de repetição do evento e sua duração. As regras de recorrência modelam as APIs REST do Outlook na propriedade recorrência do recurso de evento.
Cada recorrência é composta de duas partes: o padrão de recorrência (frequência) e o intervalo de recorrência (duração).
Padrões de recorrência
A primeira parte de uma recorrência é o padrão. Ele especifica a frequência com que o evento se repete. Por exemplo, um evento pode repetir "a cada 3 dias", "todas as quintas-feiras" ou "em 22 de julho todos os anos". Um padrão é representado na API pelo recurso recorrênciaPattern.
Dependendo do tipo de padrão, determinados campos do recurrencePattern são obrigatórios, opcionais ou ignorados.
Observação
Mesmo que um campo seja ignorado, ele ainda é validado. Se um campo tiver um conjunto fixo de valores possíveis, usar um valor fora do conjunto permitido causa um erro, mesmo que esse campo seja ignorado.
Vamos dar uma olhada em cada um dos tipos de possíveis de padrão.
Diariamente
O padrão de recorrência diária faz com que um evento se repita com base em um número de dias entre cada ocorrência.
Propriedades relevantes
Propriedade | Relevância | Descrição |
---|---|---|
intervalo | Obrigatório | Especifica o número de dias entre cada ocorrência. |
type | Obrigatório | Tem que ser definida como daily . |
Exemplos
Repita esse evento todos os dias
"pattern": { "type": "daily", "interval": 1 }
Repita esse evento a cada 3 dias
"pattern": { "type": "daily", "interval": 3 }
Semanalmente
O padrão de recorrência semanal faz com que um evento se repita no mesmo dia ou dias da semana, com base no número de semanas entre cada conjunto de ocorrências.
Propriedades relevantes
Propriedade | Relevância | Descrição |
---|---|---|
daysOfWeek | Obrigatório | Especifica em quais dias da semana o evento ocorre. |
firstDayOfWeek | Opcional | Especifica qual dia é considerado o primeiro dia da semana. Valor padrão: Sunday . |
intervalo | Obrigatório | Especifica o número de semanas entre cada conjunto de ocorrências. |
type | Obrigatório | Tem que ser definida como weekly . |
Exemplos
Repita esse evento toda quinta-feira
"pattern": { "type": "weekly", "interval": 1, "daysOfWeek": [ "Thursday" ] }
Repita esse evento em segundas e terças alternadas
"pattern": { "type": "weekly", "interval": 2, "daysOfWeek": [ "Monday", "Tuesday" ] }
Mensal absoluto
O padrão mensal absoluto faz com que um evento se repita no mesmo dia do mês (por exemplo, dia 15), com base no número de meses entre cada ocorrência.
Propriedades relevantes
Propriedade | Relevância | Descrição |
---|---|---|
dayOfMonth | Obrigatório | Especifica em quais dias do mês o evento ocorre. |
intervalo | Obrigatório | Especifica o número de meses entre cada ocorrência. |
type | Obrigatório | Tem que ser definida como absoluteMonthly . |
Exemplos
Repita esse evento no 15º dia de cada mês
"pattern": { "type": "absoluteMonthly", "interval": 1, "dayOfMonth": 15 }
Repita esse evento trimestralmente (a cada 3 meses) no dia 7
"pattern": { "type": "absoluteMonthly", "interval": 3, "dayOfMonth": 7 }
Mensal relativo
O padrão mensal relativo faz com que um evento se repita no mesmo dia da semana na mesma posição relativa do mês, com base no número de meses entre cada ocorrência. Por exemplo, "toda segunda quarta-feira do mês".
Propriedades relevantes
Propriedade | Relevância | Descrição |
---|---|---|
daysOfWeek | Obrigatório | Especifica em quais dias da semana o evento pode ocorrer. Eventos mensais relativos apenas ocorrerem uma vez por mês, portanto, se mais de um valor for especificado, o evento ocorrerá no primeiro dia que satisfaz o padrão. |
índice | Opcional | Especifica em qual instância dos dias permitidos especificados em daysOfsWeek o evento ocorre, contando a partir da primeira instância no mês. Valores possíveis: first , second , third , fourth e last . Valor padrão: first . |
intervalo | Obrigatório | Especifica o número de meses entre cada ocorrência. |
type | Obrigatório | Tem que ser definida como relativeMonthly . |
Exemplos
Repita esse evento na segunda quarta-feira de cada mês
"pattern": { "type": "relativeMonthly", "interval": 1, "daysOfWeek": [ "Wednesday" ], "index": "second" }
Repita esse evento na primeira quinta ou sexta-feira de cada mês
"pattern": { "type": "relativeMonthly", "interval": 1, "daysOfWeek": [ "Thursday", "Friday" ], "index": "first" }
Anual absoluto
O padrão anual absoluto faz com que um evento se repita no mesmo mês e dia (por exemplo, dia 15 de abril), com base no número de anos entre cada ocorrência.
Propriedades relevantes
Propriedade | Relevância | Descrição |
---|---|---|
dayOfMonth | Obrigatório | Especifica em quais dias do mês o evento ocorre. |
Mês | Obrigatório | Especifica em qual mês o evento ocorre. |
intervalo | Obrigatório | Especifica o número de anos entre cada ocorrência. |
type | Obrigatório | Tem que ser definida como absoluteYearly . |
Exemplo
Repita esse evento em 15 de abril todo ano
"pattern": { "type": "absoluteYearly", "interval": 1, "dayOfMonth": 15, "month": 4 }
Anual relativo
O padrão anual relativo faz com que um evento se repita no mesmo dia da semana na mesma posição relativa de um mês específico, com base no número de anos entre cada ocorrência. Por exemplo, "toda última quarta-feira de novembro".
Propriedades relevantes
Propriedade | Relevância | Descrição |
---|---|---|
daysOfWeek | Obrigatório | Especifica em quais dias da semana o evento pode ocorrer. Eventos anuais relativos apenas ocorrerem uma vez por ano, portanto, se mais de um valor for especificado, o evento ocorrerá no primeiro dia que satisfaz o padrão. |
índice | Opcional | Especifica em qual instância dos dias permitidos especificados em daysOfsWeek o evento ocorre, contando a partir da primeira instância no mês. Valores possíveis: first , second , third , fourth e last . Valor padrão: first . |
Mês | Obrigatório | Especifica em qual mês o evento ocorre. |
intervalo | Obrigatório | Especifica o número de anos entre cada ocorrência. |
type | Obrigatório | Tem que ser definida como relativeYearly . |
Exemplos
Repita esse evento na última quarta-feira de novembro a cada ano
"pattern": { "type": "relativeYearly", "interval": 1, "daysOfWeek": [ "Wednesday" ], "index": "last", "month": 11 }
Intervalos de recorrência
A segunda parte de uma recorrência é o intervalo. Especifica por quanto tempo o padrão se repete. Por exemplo, um evento poderia terminar após 10 ocorrências, em uma data específica ou poderia não ter fim. Um intervalo é representado na API pelo recurso recurrenceRange.
Dependendo do tipo de intervalo, determinados campos do recurrenceRange são obrigatórios ou ignorados.
Observação
Mesmo que um campo seja ignorado, ele ainda é validado. Se um campo tiver um conjunto fixo de valores possíveis, usar um valor fora do conjunto permitido causa um erro, mesmo que esse campo seja ignorado.
Vamos dar uma olhada em cada um dos tipos de possíveis de intervalo.
Intervalo numerado
O intervalo numerado faz com que um evento ocorra um número fixo de vezes (com base no padrão) de uma data de início.
Propriedades relevantes
Propriedade | Relevância | Descrição |
---|---|---|
numberOfOccurrences | Obrigatório | Especifica o número de ocorrências. Deve ser um número inteiro positivo. |
recurrenceTimeZone | Opcional | Especifica o fuso horário para a propriedade startDate. Se a propriedade não for especificada, será usado o fuso horário do evento. |
startDate | Obrigatório | Especifica a data para começar a aplicar o padrão. O valor de startDate DEVE corresponder ao valor da data da propriedade iniciar no recurso de evento. Observação: Esta primeira ocorrência da reunião poderá não ocorrer nessa data se ela não se encaixar no padrão. |
type | Obrigatório | Tem que ser definida como numbered . |
Exemplos
Repita esse evento 10 vezes
"range": { "type": "numbered", "startDate": "2017-04-02", "numberOfOccurrences": 10 }
Intervalo de datas de término
O intervalo de datas de término faz com que um evento ocorra em todos os dias que se encaixem no padrão aplicável entre uma data de início e uma data de término.
Propriedades relevantes
Propriedade | Relevância | Descrição |
---|---|---|
endDate | Obrigatório | Especifica a data para parar de aplicar o padrão. Observação: Esta última ocorrência da reunião pode não ocorrer nessa data se ela não se encaixar no padrão. |
recurrenceTimeZone | Opcional | Especifica o fuso horário das propriedades startDate e endDate. Se a propriedade não for especificada, será usado o fuso horário do evento. |
startDate | Obrigatório | Especifica a data para começar a aplicar o padrão. O valor de startDate DEVE corresponder ao valor da data da propriedade iniciar no recurso de evento. Observação: Esta primeira ocorrência da reunião poderá não ocorrer nessa data se ela não se encaixar no padrão. |
type | Obrigatório | Tem que ser definida como endDate. |
Exemplos
Repita esse evento de 1.º de julho de 2017 a 31 de julho de 2017
"range": { "type": "endDate", "startDate": "2017-07-01", "endDate": "2017-07-31" }
Intervalo sem término
O intervalo sem término faz com que um evento ocorra em todos os dias que se encaixem no padrão aplicável após uma data de início.
Propriedades relevantes
Propriedade | Relevância | Descrição |
---|---|---|
recurrenceTimeZone | Opcional | Especifica o fuso horário para a propriedade startDate. Se a propriedade não for especificada, será usado o fuso horário do evento. |
startDate | Obrigatório | Especifica a data para começar a aplicar o padrão. O valor de startDate DEVE corresponder ao valor da data da propriedade iniciar no recurso de evento. Observação: Esta primeira ocorrência da reunião poderá não ocorrer nessa data se ela não se encaixar no padrão. |
type | Obrigatório | Tem que ser definida como noEnd . |
Exemplos
Repita esse evento de 15 de maio de 2017 para sempre
"range": { "type": "noEnd", "startDate": "2017-05-15" }
Usando padrões e intervalos para criar eventos recorrentes
Agora que já vimos padrões e intervalos separadamente, vamos analisar como eles funcionam juntos e como eles interagem com as propriedades iniciar e encerrar do evento.
Criando uma regra de recorrência
Para criar uma regra de recorrência, você deve especificar um padrão e um intervalo. Qualquer tipo de padrão pode funcionar com qualquer tipo de intervalo. Eis alguns exemplos.
Exemplos
Reunião das 13h às 13h30 toda segunda-feira a partir de 4 de setembro de 2017 até o final do ano
- O requisito "toda segunda-feira" requisito é atendido facilmente pelo tipo de padrão de recorrência
weekly
. - O requisito "até o final do ano" indica um tipo de intervalo de recorrência
endDate
.
"recurrence": { "pattern": { "type": "weekly", "interval": 1, "daysOfWeek": [ "Monday" ] }, "range": { "type": "endDate", "startDate": "2017-09-04", "endDate": "2017-12-31" } }
Como 31 de dezembro de 2017 é um domingo, a última ocorrência dessa série será na segunda-feira, dia 25 de dezembro.
- O requisito "toda segunda-feira" requisito é atendido facilmente pelo tipo de padrão de recorrência
Reunião das 14h às 15h na primeira quinta-feira de cada mês a partir de 29 de agosto de 2017
- O requisito "primeira quinta-feira de cada mês" pode ser cumprido usando um padrão mensal relativo. A parte "cada mês" indica que o intervalo deve ser definido como
2
. - Por não existir um requisito de data de término, um tipo de intervalo
noEnd
pode ser usado.
"recurrence": { "pattern": { "type": "relativeMonthly", "interval": 2, "daysOfWeek": [ "Thursday" ], "index": "first" }, "range": { "type": "noEnd", "startDate": "2017-08-29" } }
Como o valor de starDate é após a primeira quinta-feira de agosto, a primeira ocorrência dessa série será em setembro.
- O requisito "primeira quinta-feira de cada mês" pode ser cumprido usando um padrão mensal relativo. A parte "cada mês" indica que o intervalo deve ser definido como
Conteúdo relacionado
- Veja mais detalhes em integração com o calendário do Outlook.
- Visualize outros exemplos de eventos recorrentes na referência da API do calendário: