Como Criar Fórmula no Notion para Gerar Regra de Recorrência ICalendar
🔍 WiseChecker

Como Criar Fórmula no Notion para Gerar Regra de Recorrência ICalendar

Você quer gerar uma string RRULE do iCalendar diretamente em um banco de dados do Notion para que eventos exportados se repitam corretamente em aplicativos de calendário como Google Calendar ou Outlook. As fórmulas do Notion podem construir strings de texto, mas não possuem um construtor nativo de RRULE. Este artigo mostra como combinar propriedades do Notion e funções de fórmula para gerar uma regra de recorrência válida.

Uma RRULE define a frequência com que um evento se repete: diariamente, semanalmente, mensalmente ou anualmente, com condições opcionais de término. Ao construir a regra em uma fórmula, você pode automatizar exportações de eventos do Notion sem edição manual. Você aprenderá a sintaxe exata da fórmula para cada frequência de recorrência e como lidar com casos comuns.

Após a leitura, você será capaz de criar um banco de dados do Notion que gera uma RRULE pronta para uso para qualquer agendamento personalizado. A fórmula usa propriedades para frequência, intervalo e data de término. Você pode copiar os blocos de código diretamente para o campo de fórmula do Notion.

Principais Conclusões: Construindo Fórmulas RRULE no Notion

  • Propriedade de fórmula com funções concat e if: Combina partes estáticas da RRULE com valores dinâmicos de propriedades para frequência, intervalo e data de término.
  • Propriedade Select para frequência: Use uma propriedade Select com opções Diário, Semanal, Mensal, Anual para controlar a parte FREQ da RRULE.
  • Propriedade Date para data de término: Uma propriedade Date chamada “Data de Término” fornece o valor UNTIL formatado como YYYYMMDDTHHMMSS.

ADVERTISEMENT

Como as Fórmulas do Notion Geram Strings RRULE

Uma RRULE do iCalendar é uma string de texto simples que começa com “RRULE:” seguida por pares chave-valor separados por ponto e vírgula. O par obrigatório é FREQ, que pode ser DAILY, WEEKLY, MONTHLY ou YEARLY. Pares opcionais incluem INTERVAL (padrão 1), UNTIL (data e hora de término em UTC), COUNT (número de ocorrências) e BYDAY (dias da semana).

As fórmulas do Notion podem processar números, datas e texto usando funções como concat, if, formatDate e replace. Para construir uma RRULE, você precisa de pelo menos três propriedades no banco de dados:

  • Frequência (Select): Opções Diário, Semanal, Mensal, Anual
  • Intervalo (Number): Quantas unidades entre recorrências, por exemplo 2 para a cada duas semanas
  • Data de Término (Date): Quando a recorrência para

A fórmula combina esses valores em uma única saída de texto. Você também pode adicionar uma propriedade BYDAY para regras semanais que se repetem em dias específicos da semana. A fórmula deve lidar com casos em que propriedades opcionais estão vazias, por exemplo, quando o intervalo é 1 ou nenhuma data de término é definida.

Fórmula para RRULEs Diárias, Semanais, Mensais e Anuais

As fórmulas a seguir assumem que seu banco de dados tem exatamente estes nomes de propriedade: Frequência (Select), Intervalo (Number), Data de Término (Date) e, opcionalmente, Dias (Multi-select com opções de dias da semana como Seg, Ter, Qua).

RRULE Básica com Frequência, Intervalo e Data de Término

Esta fórmula gera uma RRULE que termina em uma data específica. Ela usa formatDate para converter a Data de Término no formato UTC exigido pelo padrão: YYYYMMDDTHHMMSSZ.

  1. Crie a propriedade de fórmula
    Adicione uma nova propriedade Formula ao seu banco de dados e nomeie-a como “RRULE”.
  2. Insira a fórmula
    Cole este código no editor de fórmulas:
    concat("RRULE:FREQ=", prop("Frequência"), ";INTERVAL=", if(empty(prop("Intervalo")), "1", format(prop("Intervalo"))), if(empty(prop("Data de Término")), "", concat(";UNTIL=", replaceAll(replaceAll(formatDate(prop("Data de Término"), "YYYYMMDDTHHmmss"), " ", "T"), "-|:", ""), "Z")))
  3. Teste com dados de exemplo
    Defina Frequência como “Semanal”, Intervalo como 2 e Data de Término como uma data futura. A fórmula deve gerar algo como RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=20251231T235959Z.

Adicionando BYDAY para Recorrência Semanal em Dias Específicos

Se você tem uma propriedade Multi-select chamada Dias com opções de dias da semana, pode anexar uma parte BYDAY. A fórmula converte os dias selecionados para os códigos padrão de duas letras (MO, TU, WE, TH, FR, SA, SU).

  1. Adicione uma propriedade Dias
    Crie uma propriedade Multi-select chamada “Dias” e adicione todas as sete opções de dias da semana como valores de seleção.
  2. Atualize a fórmula RRULE
    Substitua a fórmula acima por esta versão que inclui BYDAY:
    let(
      diasLista, map(prop("Dias"), atual, 
        if(atual == "Seg", "MO", 
          if(atual == "Ter", "TU", 
            if(atual == "Qua", "WE", 
              if(atual == "Qui", "TH", 
                if(atual == "Sex", "FR", 
                  if(atual == "Sáb", "SA", 
                    if(atual == "Dom", "SU", "")))))))),
      diasStr, if(empty(diasLista), "", concat(";BYDAY=", join(diasLista, ","))),
      concat("RRULE:FREQ=", prop("Frequência"), ";INTERVAL=", if(empty(prop("Intervalo")), "1", format(prop("Intervalo"))), diasStr, if(empty(prop("Data de Término")), "", concat(";UNTIL=", replaceAll(replaceAll(formatDate(prop("Data de Término"), "YYYYMMDDTHHmmss"), " ", "T"), "-|:", ""), "Z")))
    )
  3. Selecione dias para um evento semanal
    Para uma reunião toda segunda e quarta, selecione Seg e Qua na propriedade Dias. A fórmula gerará RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE;UNTIL=20251231T235959Z.

ADVERTISEMENT

Se o Notion Ainda Tiver Problemas Após a Correção Principal

A Fórmula Retorna “RRULE:FREQ=” sem Frequência

Isso acontece quando a propriedade Frequência está vazia ou contém um valor que não corresponde às opções esperadas. Abra a propriedade Frequência e verifique se ela é do tipo Select, não Text. A fórmula espera strings exatas como “DAILY” ou “WEEKLY”. Se a propriedade estiver vazia, a fórmula gera uma regra incompleta. Adicione um valor padrão envolvendo a Frequência em uma instrução if: if(empty(prop("Frequência")), "DAILY", prop("Frequência")).

Formato da Data UNTIL Está Errado

O valor UNTIL deve estar no formato UTC sem hífens ou dois pontos. Se você vir algo como UNTIL=2025-12-31T23:59:59, a função replaceAll não removeu os traços. Verifique se a string de formato em formatDate usa YYYYMMDDTHHmmss com letras maiúsculas para ano, mês, dia, hora, minuto e segundo. A chamada replaceAll remove hífens e dois pontos. Se o formato incluir um espaço entre data e hora, o replaceAll também remove espaços.

Valores BYDAY Não Aparecem

Se a propriedade Dias estiver vazia ou os nomes dos dias não corresponderem às condições if, a parte BYDAY ficará em branco. Verifique se as opções Multi-select são exatamente “Seg”, “Ter”, “Qua”, “Qui”, “Sex”, “Sáb”, “Dom” com a primeira letra maiúscula. A fórmula diferencia maiúsculas de minúsculas. Alternativamente, use uma fórmula que converta qualquer texto para maiúsculas com upper.

Componente Descrição Exemplo
FREQ Frequência de recorrência da propriedade Frequência WEEKLY
INTERVAL Número de unidades entre recorrências 2
BYDAY Códigos dos dias da semana da propriedade Dias MO,WE
UNTIL Data e hora de término no formato UTC 20251231T235959Z

A tabela acima mostra os quatro principais componentes da RRULE que sua fórmula pode gerar. Cada componente é opcional, exceto FREQ. Se você omitir INTERVAL, o padrão é 1. Se omitir UNTIL, a recorrência nunca termina. Sempre teste a string de saída em um validador iCalendar ou importando para um aplicativo de calendário.

Agora você pode gerar uma regra de recorrência iCalendar completa a partir do seu banco de dados do Notion usando fórmulas. O segredo é estruturar suas propriedades corretamente e usar concat e if para lidar com valores opcionais. Para agendamentos avançados, adicione uma propriedade COUNT e inclua-a na fórmula com concat(";COUNT=", format(prop("Contagem"))). Essa abordagem economiza tempo ao exportar eventos para outros sistemas de calendário.

ADVERTISEMENT