Importar calendario CSV a nuevo Outlook: guía completa paso a paso

¿Llegaste al nuevo Outlook y tu botón de Importar/Exportar ha desaparecido? Tranquilo: con unos cuantos pasos podrás convertir tu hoja de cálculo de Excel a formato ICS y cargarla sin perder un solo evento.

Índice

Por qué desapareció la opción de importar CSV

El nuevo Outlook (versión web y la aplicación unificada para Windows 11) simplifica la cinta de opciones y retira el antiguo asistente Archivo → Importar/Exportar. En su lugar solo permite Cargar desde archivo, pero exclusivamente acepta .ics, el estándar iCalendar. Por eso, antes de importar, necesitamos convertir nuestro .csv en un archivo ICS.

Requisitos previos

  • Excel 2016 o superior (o Excel Online) para preparar tus datos.
  • Permisos de edición en tu calendario universitario (normalmente otorgados por defecto en cuentas Microsoft 365 Edu).
  • Una herramienta de conversión de CSV a ICS (servicio online, PowerShell o Python).
  • Conexión estable a Internet para subir el archivo resultante al nuevo Outlook.

Paso a paso detallado

PasoAcciónDetalles prácticos
1Preparar los datos en ExcelCrea columnas con los encabezados exactos: Subject, Start Date, Start Time, End Date, End Time, Description, Location, All Day Event, Reminder On/Off. Formato de fechas: DD/MM/AAAA o YYYY‑MM‑DD. Horas en formato de 24 h (13:30). Guarda el libro como CSV (UTF‑8) delimitado por comas. Así evitas problemas con tildes y caracteres especiales.
2Convertir CSV → ICSConversor en línea: busca “CSV‑to‑ICS” y carga tu archivo. Ideal para menos de 500 eventos. Script de PowerShell: ejecuta el ejemplo más abajo; perfecto si tu PC ya tiene PowerShell 7. Script de Python: usa la librería ics para automatizar importaciones masivas. Add‑in de Outlook clásico: si aún tienes Outlook 2019/Office 2021 instalado, algunos complementos exportan directamente un calendario a ICS.
3Importar en el nuevo OutlookAbre la vista Calendario y selecciona Agregar calendario → Cargar desde archivo. Elige el archivo ICS y, si se solicita, selecciona el calendario de destino (p. ej. “Clases 2025‑B”). Haz clic en Importar. Verás una notificación cuando el proceso termine; los eventos aparecen al instante si tienes menos de 2 000 filas.
4Alternativa si no quieres convertirCambia al Outlook clásico mediante el interruptor Cambiar a la versión anterior (esquina superior derecha). En Archivo → Abrir y exportar → Importar/Exportar elige Importar desde otro programa o archivo, selecciona .csv y sigue el asistente. Cuando termines, vuelve al nuevo Outlook; los eventos ya se habrán sincronizado gracias a Exchange Online.

Ejemplo de script de PowerShell para convertir CSV a ICS

# Guarda este fragmento como csv-a-ics.ps1
param(
    [string]$CsvPath = "eventos.csv",
    [string]$IcsPath = "eventos.ics",
    [string]$TimeZone = "America/Bogota"
)

\$csv = Import-Csv -Path \$CsvPath -Delimiter ","
\$icsHeader = "BEGIN\:VCALENDAR`r`nVERSION:2.0`r`nPRODID:-//Universidad//CSVtoICS//ES`r`nCALSCALE\:GREGORIAN"
\$icsBody = @()

foreach (\$row in \$csv) {
\$uid = \[guid]::NewGuid()
\$start = (Get-Date "\$(\$row.'Start Date') \$(\$row.'Start Time')" -AsUTC).ToString("yyyyMMdd'T'HHmmss'Z'")
\$end   = (Get-Date "\$(\$row.'End Date') \$(\$row.'End Time')" -AsUTC).ToString("yyyyMMdd'T'HHmmss'Z'")
\$icsBody += @(
"BEGIN\:VEVENT",
"UID:\$uid",
"DTSTAMP:\$start",
"DTSTART:\$start",
"DTEND:\$end",
"SUMMARY:\$(\$row\.Subject)",
"DESCRIPTION:\$(\$row\.Description)",
"LOCATION:\$(\$row\.Location)",
"END\:VEVENT"
) -join "`r`n"
}

\$icsFooter = "END\:VCALENDAR"
\$icsHeader, \$icsBody -join "`r`n", \$icsFooter | Out-File -FilePath \$IcsPath -Encoding UTF8
Write-Host "Archivo ICS generado en \$IcsPath"

Cómo usarlo: abre PowerShell, navega a la carpeta donde tengas el .csv y ejecuta:

pwsh ./csv-a-ics.ps1 -CsvPath eventos.csv -IcsPath eventos.ics

Ejemplo equivalente en Python

import csv
from ics import Calendar, Event
from datetime import datetime
import pytz

tz = pytz.timezone("America/Bogota")
cal = Calendar()

with open("eventos.csv", newline="", encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
e = Event()
e.name = row\["Subject"]
start = tz.localize(datetime.strptime(f"{row\['Start Date']} {row\['Start Time']}", "%d/%m/%Y %H:%M"))
end   = tz.localize(datetime.strptime(f"{row\['End Date']} {row\['End Time']}", "%d/%m/%Y %H:%M"))
e.begin = start
e.end   = end
e.location = row\["Location"]
e.description = row\["Description"]
cal.events.add(e)

with open("eventos.ics", "w", encoding="utf-8") as f:
f.writelines(cal)

Instala previamente las dependencias:

pip install ics pytz

Entender el formato ICS

Un archivo ICS es un contenedor de texto plano que sigue la especificación RFC 5545 iCalendar. Cada evento (VEVENT) incluye:

  • UID: identificador único.
  • DTSTART / DTEND: inicio y fin en formato UTC o con zona horaria explícita.
  • SUMMARY: asunto.
  • DESCRIPTION: cuerpo descriptivo, admite saltos de línea codificados con \n.
  • LOCATION: aula o enlace de Teams.
  • RRULE (opcional): reglas de recurrencia para clases semanales, por ejemplo FREQ=WEEKLY;BYDAY=MO,WE;UNTIL=20251215T235959Z.

Gracias a esta estructura, el mismo ICS se abre sin problemas en Google Calendar, Apple Calendar, Thunderbird o cualquier otro cliente compatible.

Validar antes de la importación masiva

  1. Genera un test.ics con dos eventos: uno de día completo y otro con hora específica.
  2. Ábrelo en un editor de texto y comprueba que las líneas terminen con CRLF (\r\n), requisito de Outlook.
  3. Importa el archivo en un calendario temporal para verificar que las fechas, zonas horarias y descripciones se muestran correctamente.
  4. Si todo está bien, procede con el archivo definitivo.

Problemas frecuentes y cómo resolverlos

  • “El archivo es demasiado grande”: el nuevo Outlook impone un límite de ~10 MB. Divide tu .ics en tramos de 5 000 eventos usando un editor de texto o un script.
  • Carácter “;” dentro de las celdas: Outlook interpreta ; como separador de múltiples asistentes. Reemplázalo por , o encierra el texto entre comillas dobles antes de exportar a CSV.
  • Tildes y emojis mal codificados: asegúrate de exportar en UTF‑8. Si ves símbolos “�” después de la importación, revisa que tu conversor mantenga la misma codificación.
  • Eventos recurrentes que se importan como duplicados: muchos conversores gratuitos omiten la línea RRULE. Usa el script de PowerShell o Python para crear la recurrencia correcta.
  • Zona horaria incorrecta: agrega la cabecera TZID=America/Bogota en cada línea DTSTART/DTEND. Outlook interpreta los eventos en UTC si no se especifica.

Buenas prácticas para importaciones masivas

Planifica, prueba, valida y documenta. A largo plazo, ahorrarás tiempo y evitarás confusiones en tu calendario académico.

  • Nombrado consistente: usa el mismo prefijo en SUMMARY (p. ej. “[Clase] Álgebra II”) para filtrar fácilmente.
  • Etiquetas de categoría: aunque ICS no soporta colores, una vez importado en Outlook asigna categorías para tener vistas por materia o proyecto.
  • Copias de seguridad: guarda tanto el CSV original como el ICS convertido en OneDrive. Si un evento se corrompe, basta con volver a importarlo.
  • Automatización: si recibes horarios semestrales en Excel, crea una tarea programada (Job de PowerShell o script de Python en Azure Functions) que regenere e importe automáticamente los eventos.
  • Documenta tu flujo: captura pantallas y pasos para que compañeros o futuros administradores repliquen el proceso sin curva de aprendizaje.

Conclusión

El nuevo Outlook moderniza la interfaz, pero con los pasos adecuados el antiguo flujo CSV → Outlook sigue siendo posible. Convertir tu archivo a ICS —ya sea empleando un servicio en línea, un script casero o el viejo Outlook clásico— te garantiza compatibilidad total con la plataforma y con cualquier otro cliente de calendario. Dedica tiempo a preparar tus datos, valida la prueba piloto y, cuando estés seguro, importa la versión final: en cuestión de minutos tus clases, reuniones y recordatorios estarán listos para empezar el semestre sin sorpresas.

Índice