Gerador de datas recorrentes
Transforme uma data de início e uma regra de recorrência na lista completa e ordenada de datas — diária, semanal, mensal ou anual, com padrões do enésimo e do último dia da semana. Veja a RRULE equivalente e imprima ou compartilhe o cronograma.
Calculadora
Cronograma
Toda semana · —
Sobre esta calculadora
Este gerador expande uma data de início e uma regra de recorrência na lista completa e ordenada de datas que ela produz, exibindo essa lista como um cronograma que você pode imprimir ou compartilhar. O modelo de regra segue o padrão RRULE do iCalendar (RFC 5545): uma frequência (diária, semanal, mensal ou anual), um intervalo N ("a cada N unidades"), uma seleção opcional de dias da semana para regras semanais, um padrão mensal (o mesmo dia do mês, um "enésimo dia da semana" como a 3ª sexta-feira, ou o último dia da semana) e uma condição de término — após um número de ocorrências ou até uma data de fim inclusive. Cada data é exibida com seu dia da semana e no formato ISO 8601 (YYYY-MM-DD), acompanhada da cadeia RRULE equivalente que você pode inserir em um aplicativo de calendário.
Como ler seus resultados
O cabeçalho mostra o número de datas que a regra produz, com a primeira data, a última data e o intervalo em dias. Abaixo, o cronograma lista cada ocorrência em ordem — sua posição, dia da semana e data ISO — e o gráfico "Ocorrências por mês" mostra como as datas se distribuem no calendário. A linha RRULE cinza é a mesma regra escrita em sintaxe RFC 5545 (por exemplo RRULE:FREQ=MONTHLY;BYDAY=3FR;COUNT=12 para "a 3ª sexta-feira de cada mês, doze vezes"). As datas são calculadas em UTC para que a lista nunca se desvie um dia por uma mudança de horário, e a série é limitada a 500 datas — se uma regra geraria mais, você verá as primeiras 500 com uma nota.
Como é calculado
O motor lê a data de início em UTC (Date.UTC) para que nenhuma transição de horário de verão possa mover um dia. Para regras diárias, mensais e anuais, percorre um índice de ocorrência i = 0, 1, 2 … e constrói datas candidatas: diário adiciona i × intervalo dias; mensal avança i × intervalo meses e mantém o dia do mês de início (pulando meses que não o têm), resolve o enésimo dia da semana ou resolve o último dia da semana; anual avança i × intervalo anos sobre o mês e dia de início (pulando 29 de fevereiro em anos comuns). Regras semanais são ancoradas na segunda-feira da semana de início e avançam de intervalo em intervalo semanas, emitindo cada dia da semana selecionado. Qualquer candidato anterior à data de início é ignorado; qualquer dia de calendário inexistente é ignorado; a geração para no número solicitado, na data UNTIL inclusiva ou no limite de 500 datas. O resultado também inclui as datas agrupadas por mês calendário e a cadeia RRULE RFC 5545 equivalente. O cálculo é uma função pura sem acesso ao relógio ou à rede.
Exemplo prático
Defina a data de início como 1º de janeiro de 2026, escolha Mensal, o padrão "enésimo dia da semana", a 3ª sexta-feira, e termine após 3 ocorrências.
O gerador retorna 2026-01-16, 2026-02-20 e 2026-03-20 — a 3ª sexta-feira de cada mês — e a linha RRULE indica RRULE:FREQ=MONTHLY;BYDAY=3FR;COUNT=3. Como apenas datas na data de início ou posteriores são emitidas, a 3ª sexta-feira de janeiro (o dia 16) é a primeira entrada.
Perguntas frequentes
Para que serve a cadeia RRULE?
RRULE é a sintaxe de regra de recorrência da RFC 5545, o padrão iCalendar que alimenta o Google Calendar, Apple Calendar, Outlook e a maioria das ferramentas de agendamento. O gerador escreve sua regra em uma única linha RRULE (FREQ, INTERVAL, BYDAY, COUNT ou UNTIL) para que você possa colá-la em um evento de calendário ou arquivo .ics e reproduzir exatamente a mesma série.
Como são tratadas as datas impossíveis como o dia 31 ou 29 de fevereiro?
Elas são ignoradas, nunca adiantadas — exatamente como especifica a RFC 5545. Uma regra mensal de "mesmo dia" iniciando no dia 31 só dispara em meses que têm um dia 31 (portanto, fevereiro, abril, junho, setembro e novembro são pulados). Uma regra anual no dia 29 de fevereiro só ocorre em anos bissextos. O gerador nunca desloca silenciosamente uma data ausente para o dia 1 ou o dia 28.
Em que isso difere do localizador do enésimo dia da semana do mês?
O localizador de enésimo dia responde a uma única pergunta — qual é a data da, por exemplo, 3ª quinta-feira de um mês. Este gerador emite toda a série recorrente: a 3ª quinta-feira de cada mês para tantas ocorrências (ou até qualquer data de fim) que você solicitar, mais a RRULE equivalente e um cronograma imprimível.
Há um limite de quantas datas ele gera?
Sim — a série é estritamente limitada a 500 datas. Se você escolher "até uma data" e a regra produziria mais de 500 ocorrências, o gerador retorna as primeiras 500 e sinaliza que a regra continua além do intervalo exibido. A contagem por ocorrências ("após N") também é limitada a 500.
Em qual fuso horário estão as datas?
As datas são datas de calendário sem hora do dia ou fuso horário — são calculadas em UTC para que a aritmética seja estável. Uma regra semanal com vários dias da semana é ancorada na segunda-feira da semana da data de início (o início de semana padrão da RFC 5545), e apenas datas a partir da sua data de início aparecem na lista.
Cenários populares
Fontes
Revisado pela equipe do YouCalc · Última revisão
Notou algo na tradução, no cálculo, ou quer fazer uma sugestão? Conte para a gente.