Convertir ICS a CSV

Aquí puedes convertir ICS a CSV gratis y sin cuenta: suelta el archivo arriba y en un par de segundos tienes el resultado listo para descargar. La conversión ocurre en tu propio navegador, así que el archivo no se sube nunca. Funciona igual en Windows, macOS y Linux que en iPhone y Android, y sigue funcionando aunque cortes la conexión.

  • Dónde se ejecuta En tu navegador. El archivo no se sube.
  • Reconstruido CSV funciona de otra manera que ICS. No es la degradación gradual de un códec con pérdida: lo que CSV puede expresar se reproduce fielmente, y lo que no tiene equivalente allí no sobrevive en absoluto.
  • Límite de tamaño Hasta 100 MB por archivo, gratis y sin cuenta.
  • Conviene saberlo Los campos repetidos —varios teléfonos, varios asistentes— se juntan en una celda en lugar de repartirse por columnas inventadas. Las reglas de repetición, las alarmas y los adjuntos no tienen sitio en una tabla y se quedan fuera.

Hasta 100 archivos a la vez. Mezclar formatos no es problema.

Lo que una hoja de cálculo sabe contar de una agenda

Una aplicación de calendario está hecha para mirar hacia delante y es malísima mirando hacia atrás en conjunto. Cuántas horas se fueron en un cliente el trimestre pasado. Qué reunión periódica ha engordado hasta catorce personas sin que nadie lo decidiera. Cuánto de una semana está ocupado antes de que alguien convoque nada. Si una sala se usó los días que estaba bloqueada. Ninguna de esas cosas es una vista del calendario y todas son una tabla dinámica.

La exportación existe, por tanto, para contarse. Ese encuadre decide cuáles de las cosas que esta conversión no puede hacer son graves: perder el color de un evento no es nada, y perder el hecho de que un evento se repetía lo es todo.

Una reunión semanal aparece una sola vez

Léelo antes de fiarte de ningún total. En el formato de calendario, una serie periódica se guarda como un único evento que lleva una regla de repetición: la reunión diaria del último año es un evento con una regla que dice «cada día laborable hasta tal fecha», más quizá un puñado de fechas añadidas y otro de excepciones para los días que se anuló.

Las columnas que salen aquí son las propiedades del evento en sí. La regla de repetición, las fechas añadidas y las excepciones no están entre ellas, así que la serie entera aporta exactamente una fila con los horarios de la primera ocurrencia. Un trimestre de reuniones diarias es una fila de media hora. Cualquier suma de duraciones se quedará corta por todo lo que las series consumieron de verdad, que en una agenda de trabajo normal es la mayor parte.

Desplegar la serie mientras todavía es un ICS

El arreglo está aguas arriba y es más fácil de lo que parece. Tanto Google Calendar como Outlook, cuando se les pide exportar o imprimir un intervalo de fechas en lugar de un calendario entero, escriben las ocurrencias individuales en vez de la regla. Exportar «este trimestre» da un archivo donde cada reunión es un evento propio y cada una acaba siendo una fila.

Donde eso no esté disponible, desplegar es tarea de un guion y no de una hoja de cálculo: la biblioteca icalendar de Python con dateutil, o un paquete equivalente en Node, recorren una serie entre dos fechas y devuelven las ocurrencias. En cualquier caso, hazlo mientras el archivo sigue siendo un ICS. En cuanto es una tabla la regla ya no está y nada puede reconstruirla, porque la tabla nunca la llevó.

Las nueve columnas que produce cada evento

Por orden: resumen, inicio, fin, ubicación, descripción, organizador, estado, identificador y asistentes. Cada evento genera una fila con las nueve, vacías donde el evento no tuviera esa propiedad, de modo que la tabla sale rectangular por desigual que fuera el origen.

Dos de ellas se ganan una mirada. El estado distingue entre confirmado, provisional y cancelado, y los cancelados producen fila igualmente: fíltralos antes de contar o un taller de un día que se anuló computará como tiempo empleado. Y el identificador es el código estable que asignó el calendario, la única manera fiable de eliminar duplicados cuando dos exportaciones se solapan; ordenar por él es mucho más seguro que cruzar por resumen y hora de inicio.

Unas celdas llevan Z y otras no llevan nada

Las marcas de tiempo se reescriben de la forma compacta del calendario a ISO 8601, así que algo como 20260301T080000Z sale como 2026-03-01T08:00:00Z, que cualquier hoja de cálculo reconoce. Lo que no se hace es ningún desplazamiento entre husos.

Un valor escrito en tiempo universal conserva su Z final. Un valor cualificado por un identificador de zona es local a esa zona, y se escribe tal cual, sin Z y sin desfase; el identificador de zona, además, se descarta. Convertirlo exigiría una base de datos de husos horarios, y suponer que todo es UTC movería cada cita una o varias horas. El resultado es una columna en la que unas celdas declaran su huso y otras no, y la tabla no dice en cuál estaban las segundas.

Cuando la agenda cruza el Atlántico

Para sumar duraciones eso es inofensivo, porque el inicio y el fin de un mismo evento comparten huso. Deja de serlo en cuanto el equipo está repartido: una convocatoria escrita desde Madrid y otra escrita desde Bogotá o desde Ciudad de México llegan a la misma tabla con la misma pinta y no significan la misma hora.

Y el desfase entre esos husos no es constante durante el año, porque la hora de verano no se aplica en todas partes ni en las mismas fechas. Es decir: dos filas del mismo calendario, separadas por cuatro meses, pueden necesitar correcciones distintas. Si vas a comparar horarios entre países, saca el huso del archivo original antes de convertir y guárdalo en una columna que añadas tú.

Los eventos de día completo terminan un día tarde

Un evento de día completo se escribe con fechas en lugar de marcas de tiempo, y se convierte en un 2026-03-01 limpio en las columnas de inicio y fin, sin parte horaria. Eso es inequívoco y ordena bien, que es más de lo que se puede decir de casi cualquier manejo de fechas.

La pega está en el formato y no en la conversión: para un valor de fecha, el final es exclusivo. Un evento de un día el día 3 se guarda empezando el 3 y terminando el 4, y un taller de tres días que empieza el 3 termina el 6. Resta un día antes de contarle un intervalo a una persona, y ten cuidado con cualquier fórmula que calcule duración: la aritmética es correcta para el formato y equivocada para la frase que alguien escribirá a partir de ella.

Eventos que declaran una duración en lugar de un final

El formato permite que un evento indique un inicio y una duración en vez de un inicio y un final, y algunos programas usan esa forma para todo. Solo la propiedad de final se asigna a una columna, así que esos eventos llegan con el inicio relleno y el final vacío.

Es un fallo silencioso más que dañino, y en una tabla grande se pasa por alto con facilidad porque las celdas vacías parecen datos opcionales. Si la columna de final está muy hueca, esa es la razón: ordena por ella y mira si los huecos se agrupan alrededor de un mismo origen. Recuperar el valor implica volver al ICS y leer la duración, que es trabajo de guion y no de hoja de cálculo.

Los asistentes llegan con nombre y en una sola celda

Una invitación guarda a cada asistente como una dirección en el valor y un nombre visible en un parámetro. Se conserva la mitad legible, así que la celda dice «Ana Ruiz» cuando la invitación traía nombre común y la dirección de correo cuando no. Varios asistentes se unen con punto y coma dentro de una única celda, y el organizador recibe el mismo trato en su propia columna.

Es una decisión deliberada frente a inventar nueve columnas numeradas, que truncarían al décimo invitado y dejarían ocho columnas vacías para todos los demás. Contar asistentes se convierte entonces en una fórmula sobre la celda: la longitud del texto menos la longitud sin los puntos y coma, más uno. Repartir la celda en filas es un paso de Power Query o un guion de dos líneas si necesitas una fila por persona.

Solo se leen eventos, así que una lista de tareas no da nada

El formato de calendario transporta más que citas. Las tareas son un bloque distinto, las anotaciones de diario otro, los intervalos de disponibilidad otro, y las alarmas viven dentro de los eventos. Aquí solo se leen los eventos.

Un archivo que contenga únicamente tareas se detiene diciendo que no se encontraron entradas de calendario, lo cual es exacto y no es un fallo: una exportación de una aplicación de recordatorios no es una agenda de citas aunque comparta la extensión. De los eventos que sí se leen se descartan las alarmas, los archivos adjuntos, las categorías, la respuesta de cada invitado y toda propiedad de extensión propietaria, por la misma razón que la periodicidad: una tabla no tiene forma para eso e inventar columnas sería peor que omitirlas.

Descripciones largas, saltos de línea y el momento de abrir el archivo

Hay una sutileza que decide si una tabla vale algo: el formato de calendario parte las líneas largas cada setenta y pico caracteres y las continúa con un espacio al principio de la siguiente. Aquí se vuelven a unir antes de leerlas, sin lo cual toda descripción larga y toda dirección postal aparecerían cortadas por la mitad y nadie sabría por qué.

Al abrir el resultado, importa en lugar de abrir directamente. En Excel, la ruta de datos desde texto, y pon en formato de texto las columnas de inicio, de fin y de identificador, o el programa reinterpretará las marcas de tiempo según la configuración del equipo y dejará de ordenarlas bien. Las descripciones de reuniones traen comas, comillas y saltos de línea reales: aquí van entre comillas con las internas dobladas, que es lo que lee cualquier importador serio y lo que no lee un corte por comas hecho a mano en una terminal.

Cómo convertir ICS a CSV

  1. Suelta tu archivo ICS en esta página, o haz clic para elegir uno.
  2. Elige CSV como destino. La conversión ocurre en tu navegador y el archivo no se sube.
  3. Descarga el archivo CSV terminado.

ICS frente a CSV: qué cambia

ICS frente a CSV
ICSCSV
Nombre completoiCalendarComma-Separated Values
Extensión de archivo.ics, .ical.csv
Tipo de mediotext/calendartext/csv
Publicado por primera vez19981972
EspecificaciónRFC 5545RFC 4180
LicenciaEstándar abiertoEstándar abierto
Situación actualVigenteVigente
Se abre en el navegadorNingún navegadorNingún navegador
Considerado en su lugarXLSX, JSON, Parquet

Abrir el resultado

Los programas de siempre no coinciden: ICS se abre en Google Calendar, Apple Calendar y Microsoft Outlook, y CSV en Microsoft Excel, LibreOffice Calc y pandas, así que quien reciba el resultado necesita alguno del segundo grupo.

Para qué sirve cada formato

ICS se publicó en 1998. Está recogido en RFC 5545, y conviene conocerlo si el archivo tiene que sobrevivir a la herramienta que lo escribió.

CSV es de 1972, recogido en RFC 4180. Microsoft Excel, LibreOffice Calc y pandas lo leen.

CSV se publicó en 1972 y ICS en 1998. El más antiguo suele ser el archivo más seguro para entregar; el más reciente hace lo mismo con menos bytes.

De ICS a CSV: preguntas frecuentes

¿Se sube a algún sitio mi archivo ICS?

No. Esta conversión ocurre por completo en tu navegador, así que el archivo no sale de tu dispositivo. Puedes comprobarlo tú: abre la pestaña de red de las herramientas de desarrollo y convierte algo. Verás la propia página y las peticiones de estadística y publicidad con las que se paga este servicio, y ni una sola que lleve tu archivo.

¿Convertir ICS a CSV es gratis?

Sí. Sin cuenta, sin marca de agua y sin cupo diario que se gaste: se ejecuta en tu propio equipo, así que puedes volver tantas veces como quieras. El navegador procesa archivos de hasta 100 MB, 100 a la vez.

¿Se pierde calidad al convertir ICS a CSV?

ICS y CSV describen el contenido de maneras radicalmente distintas. La conversión es por tanto una reconstrucción y no una copia: fiel, pero no idéntica byte a byte. Los campos repetidos —varios teléfonos, varios asistentes— se juntan en una celda en lugar de repartirse por columnas inventadas. Las reglas de repetición, las alarmas y los adjuntos no tienen sitio en una tabla y se quedan fuera.

¿Tengo que instalar algo para abrir un archivo CSV?

Para la conversión no: ocurre en el navegador que ya tienes abierto. Para abrir el resultado necesitas después el programa con el que tu dispositivo muestra normalmente Comma-Separated Values.

Más sobre estos formatos