Título, local, data e hora, fuso horário, repetição, convidados, alertas e notas — depois descarregue o ficheiro .ics ou abra-o diretamente no calendário. Também pode colar uma agenda ou anexar um documento ou uma fotografia para criar vários eventos de uma vez.
Como faço um evento de calendário se repetir toda semana ou todo mês?
Uma repetição é uma linha no arquivo .ics: RRULE:FREQ=WEEKLY, com INTERVAL para cada segundo ou terceiro período e COUNT ou UNTIL para encerrar a série. O formulário do ICS Maker define a frequência (diária, semanal, mensal, anual), o intervalo e se a série nunca termina, para após um número de ocorrências ou vai até uma data — e grava a RRULE no arquivo baixado, que o calendário leitor expande sozinho, de modo que uma série de qualquer duração continua sendo um arquivo pequeno. Escolher um dia específico não está no formulário e é uma edição de uma linha no arquivo: FREQ=MONTHLY;BYMONTHDAY=-1 para o último dia do mês, BYDAY=1MO para a primeira segunda-feira, BYDAY=MO,TU,WE,TH,FR apenas para dias úteis. Esta página lista doze dessas regras para colar.
A regra dentro do arquivo
Uma repetição é uma linha: RRULE:FREQ=WEEKLY. Os calendários a leem e geram as ocorrências por conta própria, por isso um evento recorrente continua sendo um arquivo pequeno, não importa por quanto tempo dure. A regra também pode carregar um intervalo (INTERVAL=2 para quinzenal), uma data de término (UNTIL) ou um limite (COUNT).
O construtor escreve tudo isso. Escolha uma frequência, defina o intervalo — a cada 2 semanas, a cada 3 meses — e decida se a série nunca termina, para após um número de ocorrências ou vai até uma data. A linha que ele produz é padrão, então o calendário que abre o arquivo cria exatamente a série descrita.
Regras de repetição para colar
O formulário cobre frequência, intervalo e como a série termina. Escolher um dia específico — o último dia do mês, a primeira segunda-feira, apenas dias úteis — é uma edição de uma linha no arquivo depois de baixá-lo: abra-o em um editor de texto e substitua a linha RRULE: por uma destas. As partes vêm todas da RFC 5545, então Google Calendar, Outlook, Apple Calendar e Thunderbird as leem todas da mesma forma.
- Toda semana, no mesmo dia
RRULE:FREQ=WEEKLY- A cada duas semanas (quinzenal)
RRULE:FREQ=WEEKLY;INTERVAL=2- Todo dia útil, de segunda a sexta
RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR- O dia 1º de todo mês
RRULE:FREQ=MONTHLY;BYMONTHDAY=1- O último dia de todo mês
RRULE:FREQ=MONTHLY;BYMONTHDAY=-1- A primeira segunda-feira de todo mês
RRULE:FREQ=MONTHLY;BYDAY=1MO- A última sexta-feira de todo mês
RRULE:FREQ=MONTHLY;BYDAY=-1FR- O último dia útil de todo mês
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1- A cada três meses (trimestral)
RRULE:FREQ=MONTHLY;INTERVAL=3- Todo ano, na data de início
RRULE:FREQ=YEARLY- Doze vezes e depois parar
RRULE:FREQ=MONTHLY;COUNT=12- Semanalmente até uma data fixa
RRULE:FREQ=WEEKLY;UNTIL=20261231T235959Z
Como as partes se encaixam
FREQ é a única parte obrigatória; tudo o mais a restringe. INTERVAL pula períodos, então FREQ=WEEKLY;INTERVAL=2 é a cada duas semanas, em vez de a cada dois dias. BYDAY usa códigos de duas letras para os dias da semana, e um número na frente de um deles escolhe uma ocorrência dentro do mês — 1MO é a primeira segunda-feira, -1FR a última sexta-feira. BYMONTHDAY conta datas em vez disso, e conta de trás para frente a partir do final quando negativo, o que é o que torna BYMONTHDAY=-1 a forma confiável de dizer "o último dia". BYSETPOS escolhe entre o que o restante da regra combinou em cada período, então uma lista de dias úteis com BYSETPOS=-1 cai no último dia útil.
Qual frequência escolher
Semanal é ancorada ao dia da semana escolhido para o início, mensal à data. Um evento mensal no dia 31 é a armadilha clássica: meses sem esse dia são pulados pela maioria dos calendários em vez de movidos, então use BYMONTHDAY=-1 quando quiser dizer o último dia de todo mês, em vez de iniciar a série no dia 31 e torcer.
Perguntas
- Como faço para parar um evento recorrente?
- Defina "Repetição termina" para um número de vezes ou para uma última data, e o arquivo carrega COUNT ou UNTIL de acordo. Deixe em Nunca e a série continua até você encerrá-la no seu próprio calendário, que sempre pode editar uma série que importou.
- Qual é a diferença entre COUNT e UNTIL?
- COUNT interrompe a série após um número de ocorrências — COUNT=12 dá doze e nada mais, sejam quais forem as datas resultantes. UNTIL a interrompe em um momento no tempo, escrito como um carimbo de data/hora UTC como UNTIL=20261231T235959Z, e qualquer ocorrência que cairia depois dele simplesmente não acontece. Ambos fazem o mesmo trabalho a partir de extremidades opostas, e a RFC 5545 não permite os dois na mesma regra.
- Posso fazer um evento se repetir a cada duas semanas?
- Sim — escolha Semanal e defina o intervalo como 2. O arquivo recebe INTERVAL=2 em sua regra de repetição, que todo calendário interpreta como quinzenal. O mesmo funciona para a cada 3 dias, a cada 6 meses, e assim por diante.
- Como faço para repetir no último dia de todo mês?
- Use FREQ=MONTHLY;BYMONTHDAY=-1, que é uma edição manual no arquivo baixado — o formulário define a frequência, o intervalo e o fim, mas não qual dia do mês é escolhido. Números negativos contam de trás para frente a partir do final, então cai no dia 28, 29, 30 ou 31, conforme cada mês exigir. Iniciar uma série mensal no dia 31 é o erro comum: a maioria dos calendários pula os meses que não têm dia 31 em vez de mover o evento.
- Como faço para pular uma ocorrência de uma série?
- Adicione uma linha EXDATE ao lado da RRULE, listando o horário de início da ocorrência a remover — EXDATE:20261225T090000Z remove essa instância e mantém as demais. Para movê-la em vez de excluí-la, combine o EXDATE com um segundo VEVENT que tenha o mesmo UID e um RECURRENCE-ID apontando para o horário original.
- A repetição sobreviverá ao ser importada no Outlook ou no Google?
- Sim. RRULE faz parte da RFC 5545, e ambos a leem, assim como o Apple Calendar e o Thunderbird. Eles expandem a série na importação em vez de armazenar cada ocorrência.