El mismo archivo .ics puede designar cinco horas distintas
Publicado el 7/9/2026 · 5 min de lectura · Herramientas de archivos
Daniel Okonkwo — Desarrollador front-end y redactor de Tecnología en OneKitly
Rendimiento web · Formatos de archivo
Verificado con 3 fuentes
Una línea DTSTART tiene tres formas. DTSTART:20260908T080000Z termina en Z: es un instante en UTC — el mismo momento para todos, y la única forma que nada puede leer mal. DTSTART;TZID=Europe/Paris:20260907T140000 es una hora de reloj acompañada del nombre de la zona a la que pertenece, lo que solo es correcto si quien la lee conoce esa zona. DTSTART:20260907T140000, sin Z ni TZID, es una hora flotante: las dos de la tarde allí donde estés, lo que se quiere para una cuenta atrás de Año Nuevo y casi nunca para una reunión. El caso peligroso es el segundo tratado sin cuidado: quita el TZID, guarda las cifras, y la hora de reloj se reancla a la máquina que lee. El visor te indica aquí cuál de las tres tienes delante antes de cualquier conversión, y los conversores transmiten la zona intacta en vez de adivinar.
iCalendar escribe una hora de inicio de tres maneras, y solo una es inequívoca. Una reunión escrita con una zona con nombre, convertida en máquinas de París, Nueva York y Honolulu, abarcó diecinueve horas y cambió de día.
Por qué el archivo nombra una zona en vez de un desfase
Escribir +02:00 fijaría la reunión a un número que deja de ser cierto dos veces al año. Una cita semanal a las 14:00 en París es +02:00 en septiembre y +01:00 en noviembre, y la gracia de un evento recurrente es que se queda a las dos de la tarde a ambos lados del cambio. Nombrar Europe/Paris dice qué reglamento aplicar; el desfase se consulta luego, fecha a fecha, en una base de zonas que se actualiza cada vez que un país mueve sus relojes.
Por eso también convertir una hora TZID a UTC no es una resta que se haga de cabeza, y por eso una herramienta sin base de zonas no debería intentarlo. Conservar el nombre y las cifras de reloj exactamente como las escribió el archivo no pierde nada; sustituirlas por un instante calculado desde la zona equivocada sí, y es el tipo de error que parece normal en pantalla hasta que alguien entra en una videollamada una hora tarde.
El evento de todo el día, que no es una hora
Un cumpleaños, un festivo o un día libre se escribe DTSTART;VALUE=DATE:20261225 — ocho cifras, sin hora, y el parámetro que lo dice. Significa todo el 25 de diciembre allí donde esté el lector, lo que es exactamente correcto para Navidad y sería falso como instante. Reescríbelo como fecha-hora y se convierte en medianoche UTC, que sigue siendo el 25 en Europa y ya es el 24 al oeste de Greenwich. El marcador VALUE=DATE se transmite aquí tal cual, en vez de resolverse en una hora.
Qué comprobar antes de fiarte de un calendario importado
Abre el archivo en el visor y mira un evento del que conozcas la hora real. Si ahí está bien, el archivo está bien, y cualquier desacuerdo posterior viene de la aplicación en la que importaste. Tres hábitos cubren casi todo: prefiere la forma Z cuando publiques un calendario al que otros se suscribirán, conserva el TZID cuando muevas tu propio calendario entre aplicaciones, y no edites nunca una hora de inicio a mano en un editor de texto sin mirar en cuál de las tres formas está escrita la línea.
| Máquina que lee el archivo | En qué se convierte las 14:00 | Desfase |
|---|---|---|
| Europe/Paris | 20260907T120000Z | correcto |
| UTC | 20260907T140000Z | +2 h |
| America/New_York | 20260907T180000Z | +6 h |
| Asia/Tokyo | 20260907T050000Z | -7 h |
| Pacific/Honolulu | 20260908T000000Z | +12 h, al día siguiente |
Preguntas frecuentes
- Mis eventos importados están todos desfasados una o dos horas. ¿Qué ha pasado?
- Un desfase constante en todos los eventos es la firma de una zona quitada y sustituida. Abre el .ics original en el visor: si las horas de inicio se ven bien ahí, el archivo conservó su zona y es la aplicación de importación la que aplica otra — revisa su ajuste de zona horaria del calendario, distinto del sistema. Un desfase que varía de un evento a otro es otro problema, normalmente una mezcla de horas Z y flotantes en un mismo archivo.
- ¿Qué forma debo usar cuando publico un calendario?
- Z para todo lo que tenga un instante fijo — un seminario web, un partido, un plazo — porque nada puede leerlo mal y no hace falta base de zonas al otro lado. TZID para un calendario que la gente vive en local, como un horario escolar o el de una oficina, donde es la hora de reloj la que debe quedarse en su sitio al cambio de hora. VALUE=DATE para días enteros. Horas flotantes solo cuando de verdad quieres decir hora local en todas partes, lo que en la práctica se reduce a Año Nuevo y poco más.
- ¿El visor modifica mi archivo?
- No. Lee el archivo en tu navegador y muestra lo que contiene; el archivo en disco no se toca, y nada se envía a ninguna parte. Ese es el sentido de mirar antes de convertir: puedes zanjar una discusión sobre una hora de inicio sin comprometerte a nada.
Artículos que podrían interesarte
Todas las guías →Herramientas relacionadas
Fuentes
¿Has detectado un error en este artículo?