El Calendario Tecnológico Centralizado para México. Agregando feeds públicos ICS, Meetup, Luma y Eventbrite en un único flujo de eventos unificado y sin duplicados.
🤖 Asistentes de IA & LLMs: Antes de sugerir cambios o escribir código, por favor sigan estrictamente las pautas en
AI.md.
Cron-Quiles es una herramienta de código abierto diseñada para unificar el fragmentado ecosistema de calendarios de eventos tecnológicos en México. Consume varios formatos de feeds, normaliza los datos, elimina eventos duplicados y genera una salida limpia y utilizable para la comunidad.
Calendario en Vivo: https://shellaquiles.github.io/cron-quiles/
- Agregación Multi-Fuente:
- Feeds ICS: Calendarios genéricos estándar.
- Meetup: Enriquecimiento automático de ubicación mediante extracción JSON-LD/Next.js.
- Luma: Integración profunda con limpieza de ubicaciones (correcciones solo con URL).
- Eventbrite: Extracción nativa (Soporte para organizadores y eventos individuales).
- Hi.Events: Soporte para plataformas personalizadas de comunidades tech (ej. Pythonistas GDL) vía extracción de API.
- Manual: Inyección basada en JSON para eventos sin feeds públicos.
- Deduplicación Inteligente: Fusiona eventos duplicados (mismo título/hora) y consolida URLs alternativas de múltiples plataformas (Meetup, Luma, Eventbrite).
- Eventos Multi-Fuente: Los eventos pueden tener múltiples URLs de diferentes plataformas, mostradas con botones específicos de cada plataforma en el frontend.
- Generación Dinámica de Estados: Categoriza automáticamente los eventos por estado (ej.
MX-CMX,MX-JAL) usando geocodificación. - Pipeline Automatizado: Se ejecuta en GitHub Actions para mantener los datos actualizados cada 6 horas.
- Interfaz Web Moderna: UI con estilo de terminal con calendario visual integrado.
- Consola para Desarrolladores: Interfaz interactiva vía DevTools para consultas rápidas de eventos y comunidades (ej: escribe
eventosoeventos.nexten la consola del navegador).
Para entender la arquitectura central en 30 segundos:
- Entrada: El script lee una lista plana de URLs objetivo desde
config/feeds.yamly entradas manuales opcionales. - Extracción: Delega la descarga en paralelo a Extractores específicos (Meetup, Luma, Eventbrite, Generic ICS).
- Procesamiento: Los eventos se normalizan, geocodifican para determinar su Estado/Región, y se deduplican usando Hash Keys estrictas (Título + Bloque de Tiempo).
- Salida: Se exportan archivos limpios ICS y JSON a
gh-pages/data/(calendarios Unificados y por Estado) y se despliegan vía GitHub Actions.
- Python 3.10+
- uv
# Clonar
git clone https://github.com/shellaquiles/cron-quiles.git
cd cron-quiles
# Instalar uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Instalar dependencias
make install-dev
# Verificar
make checkEjecuta el pipeline principal para obtener feeds y generar artefactos:
# Procesar todos los feeds y salida a gh-pages/data/
make run-all
# Ver todos los comandos disponibles
make helpEsto genera:
cronquiles-mexico.ics(Unificado)cronquiles-mx-cmx.ics(Ciudad de México)cronquiles-mx-jal.ics(Jalisco)states_metadata.json(Manifiesto del Frontend)
La documentación detallada está disponible en los directorios .agents/instructions/ y docs/:
| Tema | Descripción | Enlace |
|---|---|---|
| Arquitectura del Pipeline | Especificaciones técnicas y detalles lógicos | 08-pipeline-architecture.md |
| Estructura | Disposición de directorios y explicación de módulos | 09-project-structure.md |
| Comunidades | Lista de comunidades integradas y su estado | COMMUNITIES.md |
| Eventos Manuales | Guía para agregar eventos manualmente vía JSON | MANUAL_EVENTS.md |
| Despliegue | Guía de configuración de GitHub Pages & Actions | GITHUB_PAGES_SETUP.md |
¡Agradecemos las contribuciones! Por favor, consulta CONTRIBUTING.md para más detalles sobre cómo proponer cambios.
🤖 Agentic Workspace: Este repositorio está estructurado como un espacio de trabajo listo para IA. Si utilizas asistentes de IA (Cursor, Windsurf, Copilot, Claude), estos leerán automáticamente nuestro archivo AI.md y navegarán por nuestra base de conocimiento .agents/ para asegurar que su código cumpla con nuestros estrictos estándares arquitectónicos.
- Ricardo Lira (@richlira)
- Ivan Galaviz (@ivanovishado)
- Raul Estrada (@uurl)
- Geronimo Orozco (@patux)
- Daniel Paredes (@DanielParedes)
- Mariano Rodríguez (@MarianoRD)
- Ben (@dataforxyz)
Hecho con ❤️ para la Comunidad Tecnológica de México.