Visor de calendarios ICS

Pega un archivo .ics o elige uno del disco y pulsa Analizar calendario: las entradas, las propiedades del calendario y todos los problemas encontrados se quedan en la página y pueden copiarse o descargarse como JSON.

Se ejecuta localmente en tu navegador
·
Calendario
Events and tasks

Cómo leer un archivo de calendario sin subirlo

Pega un archivo .ics en el cuadro o elige uno del disco —hasta 5 MB, con el tamaño junto al nombre— y pulsa Analizar calendario. El calendario se lee en la pestaña, así que no se envía a ningún sitio, y la exportación JSON funciona igual. El resumen indica el calendario, su PRODID y su versión y cuenta los eventos, las tareas y los problemas encontrados; cada entrada aparece debajo como una tarjeta con su fecha, su lugar, su regla RRULE y su descripción.

Basta con que el archivo se parezca a iCalendar. Las líneas se despliegan primero, de modo que una línea de continuación que empieza por espacio o tabulador se une a la anterior; los nombres de propiedad pueden ir en minúsculas; CN="Doe; John" conserva el punto y coma dentro del parámetro entrecomillado; y \, \; \n y \\ se decodifican antes de mostrar el valor. Una línea que el analizador no puede dividir en propiedad y valor se informa con su número en lugar de detener todo el archivo.

  1. Pega el texto del calendario o elige un archivo .ics local: la zona de arrastre y el campo de archivo cargan el texto en el cuadro.
  2. Pulsa Analizar calendario. Los eventos y las tareas se cuentan, se dibujan como tarjetas y se escriben en el resultado.
  3. Lee la fila Problemas. Los campos UID, DTSTART o SUMMARY ausentes, un DTEND anterior a DTSTART, una fecha que el visor no puede leer, un END sin su BEGIN y las líneas que no se pudieron dividir se enumeran uno por uno, cada uno con su evento, su tarea o su número de línea.
  4. Copia el JSON o descárgalo para llevarte el resultado como calendar.json: las propiedades del calendario, cada evento y tarea —los componentes anidados como VALARM se mantienen en components—, la lista de problemas y el número de líneas leídas. Sin resultado, ambos botones lo avisan.

Qué comprueba el analizador y dónde se detiene

Fechas, zonas horarias y días completos

Se leen cuatro formas de fecha: 20260901T090000Z como UTC, 20260901T090000 como hora local flotante, 20260901 como fecha de día completo y un valor con zona mediante el parámetro TZID. El nombre de la zona se imprime junto al valor —DTSTART;TZID=America/New_York:20260901T090000 se muestra como 2026-09-01 09:00:00 (America/New_York)— y la hora queda tal como está escrita, porque la página no tiene base de datos de zonas horarias para convertirla. Un valor que no encaje en ninguna de esas formas se indica en la fila Problemas con el nombre de la propiedad y el texto original.

Los días completos se muestran como fechas. Un evento sin DTSTART muestra un guion en el lugar de la fecha y la lista de problemas nombra el campo ausente.

Eventos, tareas y el resultado JSON

VEVENT y VTODO se separan: la tarjeta de un evento lleva su intervalo de fechas, el lugar, la regla RRULE y la descripción; la de una tarea, su fecha de vencimiento. Una propiedad repetida conserva todos sus valores (dos líneas ATTENDEE se exportan como matriz) y los componentes anidados como VALARM viajan con su componente padre bajo components en el JSON.

RRULE se exporta como texto y no se expande: una regla semanal con COUNT=6 sigue siendo un solo evento con la regla escrita completa.

Dónde se detienen las comprobaciones

Esto es un lector con una lista corta de comprobaciones, no una prueba de conformidad. Comprueba los campos mencionados y la forma del archivo; no recorre la RFC 5545 propiedad por propiedad, no descarga una URL de suscripción y no repara un archivo dañado. Lo que no puede leer o dividir queda indicado con el número de línea o la entrada de la que procede, de modo que un archivo que se analiza a medias puede corregirse justo donde falla.

Herramientas recientes: