Um evento recorrente é uma linha do CSV, não doze
Publicado a 07/09/2026 · 5 min de leitura · Ferramentas de ficheiros
Daniel Okonkwo — Programador front-end e redator de Tecnologia na OneKitly
Desempenho web · Formatos de ficheiro
Verificado a partir de 3 fontes
O iCalendar não guarda as ocorrências de um evento repetido. Guarda um único VEVENT e uma regra de recorrência — RRULE:FREQ=WEEKLY;BYDAY=TU;COUNT=12 — e é cada aplicação de calendário que desdobra essa regra no ecrã. Passando o conversor por um ficheiro com quatro VEVENT, um deles essa reunião semanal de doze ocorrências, saem quatro linhas: as doze terças não estão em lado nenhum do ficheiro. O CSV tem oito colunas — resumo, início, fim, local, descrição, organizador, estado, uid — e nenhuma é uma regra de recorrência: a série só sobrevive pela sua primeira data. Se precisares de uma linha por ocorrência, desdobra a série no calendário e exporta o resultado; se precisares de guardar a regra, fica em iCalendar e usa o visualizador .ics ou a exportação JSON, que a transmitem intacta.
Um ficheiro .ics guarda uma reunião semanal uma só vez, com uma regra anexa. Ao exportar para CSV obténs uma linha para toda a série — é o ficheiro a ser honesto, não o conversor a perder linhas.
O que contém realmente um ficheiro de calendário
Abre um .ics num editor de texto: é uma lista de blocos, cada um de BEGIN:VEVENT a END:VEVENT, com um início, um fim, um título e mais algumas propriedades. Um compromisso repetido é um desses blocos mais uma única linha, RRULE, que diz como se repete. Doze pontos semanais são doze linhas no ecrã e um bloco em disco, e as doze datas são calculadas por aquilo que as mostra.
Esse desenho é o que permite a um calendário guardar um aniversário repetido para sempre em algumas dezenas de bytes, e o que faz com que mover uma só ocorrência de uma série seja uma propriedade à parte, RECURRENCE-ID, em vez da edição de uma linha. É também o que impede um conversor de inventar as ocorrências sem se tornar ele próprio um motor de calendário — com os anos bissextos, os saltos de hora de verão e as datas de exceção que isso implica.
As oito colunas, e o que fica de fora
A exportação escreve resumo, início, fim, local, descrição, organizador, estado e uid — por essa ordem, uma linha por VEVENT. Uma folha de cálculo é um retângulo, e tudo o que um evento carrega que não seja um valor único por evento não tem para onde ir: a regra de recorrência, os alarmes, a lista de participantes, os anexos, o fuso em que o início foi escrito. Guarda o .ics se algum desses elementos importar; o CSV serve para ler, ordenar e contar, não para arquivar.
Conseguir uma linha por ocorrência, quando é mesmo preciso
Pede ao calendário para fazer o desdobramento: só ele conhece as tuas datas de exceção. No Google Agenda, no Outlook e no Calendário da Apple o caminho fiável é o mesmo: passa para a vista de lista ou agenda sobre o período que te interessa, seleciona o intervalo e exporta ou imprime isso — uma vista já está desdobrada, por isso o que sai dela é uma linha por ocorrência. Exportar o calendário em si devolve-te a forma compacta, regra incluída.
O outro sentido também vale a pena conhecer: se construíres um .ics a partir de uma folha onde já escreveste cada data, obténs exatamente os eventos que listaste, sem regra anexa. É em geral o que se quer para um calendário de sessões pontuais, e é uma má forma de guardar uma reunião semanal permanente, que serão então doze elementos distintos a mover se a hora mudar.
| Evento do ficheiro | Escrito como | Linhas no CSV | Perdido pelo CSV |
|---|---|---|---|
| Reunião de equipa, 7 set., 14:00-15:30 Paris | DTSTART;TZID=Europe/Paris | 1 | O fuso nomeado |
| Natal, dia inteiro | DTSTART;VALUE=DATE | 1 | Que é um dia, não um instante |
| Ponto semanal, 12 terças | RRULE:FREQ=WEEKLY;COUNT=12 | 1, não 12 | A própria regra |
| Pontual, título dobrado em duas linhas | Dobrado segundo a RFC 5545 | 1 | Nada |
Perguntas frequentes
- O meu CSV tem menos linhas do que o calendário mostra. O conversor está avariado?
- Quase de certeza que não — conta os teus eventos repetidos. Cada um é um único VEVENT no ficheiro por muitas vezes que apareça no ecrã, por isso um calendário que mostra 60 compromissos pode ser um ficheiro com 12. Abre o .ics no visualizador e compara o seu número de eventos com o número de linhas do CSV: se coincidirem, nada se perdeu na conversão.
- Posso editar o CSV e voltar a transformá-lo em calendário?
- Sim, e essa ida e volta é a razão de ser das duas ferramentas — mas volta como eventos pontuais. Uma série exportada numa linha e reimportada é um compromisso único: a regra nunca esteve na folha. Edita aí títulos, horários e locais à vontade; refaz as recorrências no calendário depois.
- Que ferramenta conserva a regra de recorrência?
- O visualizador .ics e a exportação JSON mostram-na, e a fusão de ficheiros .ics conserva-a, porque os três ficam dentro do iCalendar. Só o CSV a deixa cair, e apenas porque uma coluna de folha de cálculo não a pode levar. Se o teu trabalho é inspecionar ou mover calendários mais do que contá-los, prefere esses três e guarda o CSV para quando quiseres mesmo uma tabela.
- O meu calendário é enviado para algum lado?
- Não. O ficheiro é lido no teu navegador e o CSV é construído aí; nada sai da máquina. Isso conta mais para um calendário do que para a maioria dos ficheiros, porque uma agenda é um mapa de quem encontras e onde estás — precisamente o género de coisa que convém converter sem a entregar a um servidor.
Artigos que podem interessar-lhe
Todos os guias →Ferramentas relacionadas
Fontes
Detetaste um erro neste artigo?