Uma regra de recorrência é um programa, não uma data
RRULE:FREQ=MONTHLY;BYDAY=-1FR;COUNT=12 não contém uma única data. Contém instruções para as produzir, e a única forma honesta de responder a quando é que isto acontece mesmo é executá-las. Esta ferramenta executa-as.
O que é aplicado
Tudo o que consta do RFC 5545 §3.3.10: FREQ, INTERVAL, COUNT, UNTIL, WKST, as nove partes BY* incluindo ordinais negativos como -1FR («a última sexta-feira»), e BYSETPOS. Por cima da regra, EXDATE retira datas e RDATE acrescenta-as — e cada linha diz de qual das duas veio, porque uma data que só existe porque alguém a acrescentou à mão é coisa diferente de uma que a regra gerou.
Por que a coluna do desvio UTC importa
Uma reunião semanal das 09:00 continua às 09:00 quando os relógios mudam. O instante desloca-se uma hora; a leitura do relógio de parede não. É isso que o RFC 5545 exige, e é isso que um ingénuo «somar 7 × 86 400 000 milissegundos» erra duas vezes por ano. Por isso cada ocorrência mostra as duas leituras lado a lado: a hora local e o instante UTC real com o desvio que o produziu. Quando duas ocorrências têm desvios diferentes, a ferramenta di-lo explicitamente.
Os fusos são resolvidos pela base IANA do seu navegador quando o TZID é um nome de fuso verdadeiro, e pelo bloco VTIMEZONE dentro do ficheiro caso contrário — é assim que nomes inventados pela Microsoft como Romance Standard Time continuam a resolver corretamente. Quando nenhum dos dois funciona, o desvio é mostrado como desconhecido em vez de ser silenciosamente tomado por UTC.
Limites, ditos com clareza
Uma regra infinita é expandida até ao limite que definir e o resultado é marcado como truncado. Uma regra com restrições impossíveis — FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=30 é legal e nunca pode coincidir com um dia real — não produz nada, e a ferramenta diz porquê em vez de mostrar uma tabela vazia.
Privacidade
Tudo corre no seu navegador. Nenhum ficheiro de calendário é enviado e nada aqui contacta a rede.
Tiny Online Tools







