Horario ICS
Solo.PublicadoSin mantenimiento
Sacale una foto al horario del colegio y llevate un calendario suscribible. Gemini hace el OCR y la extracción estructurada; la app convierte el resultado en un feed .ics que tu teléfono puede seguir.
Sin mantenimiento, y el código es privado. Funcionó para los cuatrimestres que lo necesité. Lo dejo acá porque lo interesante son las decisiones, no la herramienta.
Cada cuatrimestre el colegio reparte el horario como una grilla — días arriba, bloques horarios al costado, materia y profesor y aula apretados en cada celda. Útil en papel, inútil en un teléfono.
Esto toma una foto de esa grilla y devuelve un calendario al que te podés suscribir.
Las decisiones que vale leer
La extracción la hace Gemini, no un parser escrito a mano. El layout de la grilla cambia entre cuatrimestres y entre años, y un parser afinado para una forma se rompe con la siguiente. El prompt describe la estructura —las columnas son días de semana, las filas son bloques horarios, cada celda tiene materia, profesor y aula— y pide JSON. Eso sobrevive un rediseño; un parser por coordenadas, no.
Hay una lista de fallback de modelos, no un modelo. Prueba
gemini-1.5-flash primero y cae por otros dos. Un solo modelo hardcodeado es
una herramienta que deja de funcionar el día que ese modelo se retira, y esta
tiene que seguir andando cada cuatrimestre sin que yo la toque.
El calendario se sirve desde una ruta, no se baja como archivo. Un .ics
descargado es una foto; una URL suscripta se actualiza. Significa que el
horario se puede corregir después y todos los teléfonos que se suscribieron
reciben el arreglo.
La parte que llevó más tiempo
No la IA: la zona horaria y los acentos. miércoles y miercoles son el mismo
día para una persona y dos claves distintas para una tabla de lookup, y un
.ics sin zona horaria declarada corre alegremente cada clase tres horas una
vez que llega a una app de calendario en Buenos Aires.