Sistema automatizado para sincronizar datos de base de datos con calendarios de Google Calendar.
- Calendario Live: Sincroniza shows desde API externa
- Calendario Management: Sincroniza eventos desde tabla
mgm_events - Calendario Booking: Sincroniza eventos desde tabla
booking_events - Calendario Records: Sincroniza releases desde API de releases
- Ejecución automática: GitHub Actions ejecuta diariamente a las 01:00 ARG
# Clonar el repositorio
git clone https://github.com/TU_USUARIO/calendar-automation.git
cd calendar-automation
# Instalar dependencias
npm install- Ve a Google Cloud Console
- Crea un proyecto o selecciona uno existente
- Habilita la API de Google Calendar
- Crea un Service Account
- Descarga el archivo JSON de credenciales
- Renombra el archivo a
service-account.json
En el repositorio de GitHub, ve a Settings > Secrets and variables > Actions:
SERVICE_ACCOUNT_JSON: Contenido completo del archivo service-account.json
Comparte los siguientes calendarios con el email del Service Account (con permisos de escritura):
- Live Calendar
- Management Calendar
- Booking Calendar
- Records Calendar
# Actualizar todos los calendarios
node updateBothCalendars.jsEl sistema se ejecuta automáticamente todos los días a las 01:00 hora Argentina mediante GitHub Actions.
calendar-automation/
├── .github/workflows/ # GitHub Actions
├── updateBothCalendars.js # Script principal
├── updateCalendarServiceAccount.js
├── updateCalendarManagement.js
├── updateBookingCalendar.js
├── updateReleasesCalendar.js
├── calendar-config-*.js # Configuraciones
├── package.json
└── README.md
- Las credenciales están protegidas por GitHub Secrets
- El archivo
service-account.jsonestá en.gitignore - Los calendarios requieren permisos de escritura del Service Account
Los logs de ejecución se guardan como artifacts en GitHub Actions y están disponibles por 30 días.
Después de cada ejecución, GitHub Actions mostrará las URLs de suscripción para cada calendario:
- ID:
c_b1cdbb35e2e538d44729a8d7c06c6ae7349402a3eea9509b4332c5060ddd4d26@group.calendar.google.com - URL pública: https://calendar.google.com/calendar/u/0?cid=c_b1cdbb35e2e538d44729a8d7c06c6ae7349402a3eea9509b4332c5060ddd4d26%40group.calendar.google.com
- URL iCal pública: https://calendar.google.com/calendar/ical/c_b1cdbb35e2e538d44729a8d7c06c6ae7349402a3eea9509b4332c5060ddd4d26%40group.calendar.google.com/public/basic.ics
- ID:
c_7a6a9470388a244b85562ecb7268a773ca6d005d8bb142088a4d9abcd510e377@group.calendar.google.com - URL pública: https://calendar.google.com/calendar/u/0?cid=c_7a6a9470388a244b85562ecb7268a773ca6d005d8bb142088a4d9abcd510e377%40group.calendar.google.com
- URL iCal pública: https://calendar.google.com/calendar/ical/c_7a6a9470388a244b85562ecb7268a773ca6d005d8bb142088a4d9abcd510e377%40group.calendar.google.com/public/basic.ics
- ID:
c_7fba15b73d470d9bfbf3e8708bf13f219cfe5128b3aec41415ff0bf3a6ca0f7e@group.calendar.google.com - URL pública: https://calendar.google.com/calendar/u/0?cid=c_7fba15b73d470d9bfbf3e8708bf13f219cfe5128b3aec41415ff0bf3a6ca0f7e%40group.calendar.google.com
- URL iCal pública: https://calendar.google.com/calendar/ical/c_7fba15b73d470d9bfbf3e8708bf13f219cfe5128b3aec41415ff0bf3a6ca0f7e%40group.calendar.google.com/public/basic.ics
- ID:
c_65f6f9dd7e6a17e03a9b3e50836b041dafb42f81bcdba13ac19a94ee75762592@group.calendar.google.com - URL pública: https://calendar.google.com/calendar/u/0?cid=c_65f6f9dd7e6a17e03a9b3e50836b041dafb42f81bcdba13ac19a94ee75762592%40group.calendar.google.com
- URL iCal pública: https://calendar.google.com/calendar/ical/c_65f6f9dd7e6a17e03a9b3e50836b041dafb42f81bcdba13ac19a94ee75762592%40group.calendar.google.com/public/basic.ics
- Copia la URL pública del calendario que quieras
- Abre Google Calendar
- Haz clic en el
+junto a "Otros calendarios" - Selecciona "Por URL"
- Pega la URL y haz clic en "Agregar calendario"
- Usa la URL iCal pública si el calendario es público
- O usa la URL iCal privada desde la configuración del calendario en Google Calendar (Configuración > Integrar calendario > Dirección secreta en formato iCal)