Public
Cron que lee horarios de Google Sheets y notifica por email
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Cron que cada domingo a las 7:00 PM (hora Colombia) lee una hoja de Google Sheets con el horario de asistencia a la oficina y envía un correo a cada persona indicándole qué días debe ir.
Rendering mermaid diagram...
- El cron se activa los domingos a las 7pm hora Colombia
- Se conecta a Google Sheets usando una cuenta de servicio
- Encuentra la hoja que no se llama "Instrucciones" (la del horario semanal)
- Lee las columnas B:H (Lunes a Domingo) y recopila qué nombres aparecen en cada día
- Cruza cada nombre con la tabla de contactos en
contacts.ts - Envía un correo personalizado a cada persona con sus días asignados
| B (Lun) | C (Mar) | D (Mié) | E (Jue) | F (Vie) | G (Sáb) | H (Dom) | |
|---|---|---|---|---|---|---|---|
| Fila 1 | Lunes | Martes | Miércoles | Jueves | Viernes | Sábado | Domingo |
| Fila 2 | Juan | María | Juan | Ana | |||
| Fila 3 | Ana | Pedro | Pedro | ||||
| ... | ... | ... | ... | ... | ... | ... | ... |
| Variable | Descripción |
|---|---|
GOOGLE_SERVICE_ACCOUNT | JSON completo de la cuenta de servicio de Google Cloud |
GOOGLE_SHEET_ID | ID del spreadsheet (de la URL entre /d/ y /edit) |
SMTP_HOST | Host del servidor SMTP (ej: smtp.gmail.com) |
SMTP_PORT | Puerto SMTP (ej: 587) |
SMTP_USER | Usuario SMTP |
SMTP_PASS | Contraseña o App Password |
SMTP_FROM | Dirección "from" del correo |
Edita contacts.ts y agrega los contactos:
export const CONTACTS: Contact[] = [
{ name: "Juan Pérez", email: "juan.perez@empresa.com" },
{ name: "María García", email: "maria.garcia@empresa.com" },
{ name: "Ana López", email: "ana.lopez@empresa.com" },
];
⚠️ Los nombres deben coincidir exactamente con los que aparecen en la hoja de Google Sheets (la comparación ignora mayúsculas/minúsculas y espacios extra).
cron.ts— Punto de entrada del cron (interval)sheets.ts— Servicio de lectura de Google Sheetsmailer.ts— Servicio de envío de correos SMTPcontacts.ts— Tabla de contactos (nombres → emails)