A exportação JSON guarda três coisas para as quais o CSV não tem coluna
Publicado a 09/09/2026 · 3 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
Ambas as exportações leem o mesmo .ics com o mesmo analisador e depois divergem no que conseguem levar. O CSV escreve oito colunas fixas — resumo, início, fim, local, descrição, organizador, estado, uid — porque uma folha de cálculo é um retângulo e cada evento tem de preencher o mesmo. O JSON escreve cada evento como um objeto: um campo que só alguns eventos têm aparece simplesmente nesses. Na prática, três coisas sobrevivem ao JSON e não ao CSV: tzid, o fuso nomeado em que um início foi escrito; allDay, o marcador que diz que uma data é um dia inteiro e não um instante; e rrule, a regra de recorrência. Uma reunião semanal exportada para JSON volta com "rrule": "FREQ=WEEKLY;BYDAY=MO;COUNT=12" anexo, e uma entrada de Natal com "allDay": true. Nenhum tem para onde ir numa tabela. Escolhe o CSV para ler e ordenar; escolhe o JSON quando o for consumir um script, uma rotina de importação ou outro calendário.
Mesmo ficheiro, mesmo analisador, duas saídas. A folha de cálculo recebe oito colunas; o JSON recebe ainda o fuso nomeado, o indicador de dia inteiro e a regra de recorrência.
Um retângulo contra uma forma
Um CSV tem de fixar as suas colunas antes de escrever a primeira linha, e todas as seguintes têm exatamente essas. É uma força quando queres ordenar por data de início ou contar eventos por local — uma folha de cálculo faz isso num instante e um ninho de objetos não. Torna-se fraqueza assim que os dados são irregulares, e os dados de calendário são-no por natureza: quase nenhum evento tem recorrência, alguns têm; quase todos têm fuso, os de dia inteiro não.
Há uma segunda diferença, mais discreta, a conhecer quando um script lê a saída. No CSV um campo vazio é uma célula vazia sempre presente; no JSON um campo opcional sem valor pode faltar por completo no objeto. Escreve o teu leitor de modo que uma chave ausente e uma cadeia vazia sejam tratadas igual e nenhuma das exportações te surpreenderá.
| Propriedade | No CSV | No JSON |
|---|---|---|
| Título, início, fim, uid | Sim, quatro das oito colunas | Sim |
| Fuso nomeado | Sem coluna | "tzid": "Europe/Paris" |
| Dia inteiro em vez de um instante | Sem coluna | "allDay": true |
| Regra de recorrência | Sem coluna | "rrule": "FREQ=WEEKLY;BYDAY=MO;COUNT=12" |
| Um campo vazio | Uma célula vazia, sempre presente | Uma cadeia vazia, ou a chave falta |
Perguntas frequentes
- Posso voltar a transformar o JSON em calendário?
- Não diretamente aqui — o lado da importação recebe CSV — mas o JSON é o que convém dar a um script que escreva .ics por si, precisamente porque guarda ainda o fuso, o indicador de dia inteiro e a regra. Se só queres mover um calendário sem o alterar, não passes por nenhuma das exportações: juntar ficheiros .ics guarda tudo e evita a questão.
- O JSON desdobra os eventos recorrentes?
- Não, e não deveria: leva a regra em vez disso, o que é estritamente mais informação. Um objeto com um rrule de FREQ=WEEKLY;COUNT=12 diz-te ao mesmo tempo que há doze ocorrências e como se espaçam, ao passo que doze objetos desdobrados te dariam as datas perdendo o facto de andarem juntas. Desdobrar é trabalho de quem consome o ficheiro.
- Qual devo arquivar?
- O próprio .ics. Ambas as exportações são leituras dele, e uma leitura deixa sempre algo de fora — o JSON deixa participantes, alarmes e anexos, tal como o CSV deixa o fuso e a regra. Guarda o original como referência e gera a exportação de que precisares quando precisares.
Artigos que podem interessar-lhe
Todos os guias →Ferramentas relacionadas
Fontes
Detetaste um erro neste artigo?