Servicio de sincronización de calendarios (Google Calendar + Microsoft Outlook) con integración Slack.
- 🔄 Sincronización multi-proveedor - ICS Via Url, Google Calendar y Microsoft Outlook
- 💬 Integración Slack - Comandos
/ajustesy/calendario - 📡 Feed iCal unificado - Suscríbete desde cualquier app de calendario
- ⏰ Sincronización automática - Actualización periódica configurable
- 🔐 OAuth 2.0 - Autenticación segura por usuario
- Node.js 20+
- Credenciales OAuth de Google Cloud Console
- App registration en Azure (Microsoft)
- Slack App con Socket Mode habilitado
# Clonar repositorio
git clone <repo-url>
cd google-calendar-service
# Instalar dependencias
npm install
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales
# Iniciar servidor
npm startEdita el archivo .env con las siguientes variables:
GOOGLE_CLIENT_ID=tu-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=tu-client-secret
GOOGLE_REDIRECT_URI=http://localhost:3000/auth/google/callback
GOOGLE_SCOPES=https://www.googleapis.com/auth/calendar.readonly,https://www.googleapis.com/auth/userinfo.emailObtén las credenciales en Google Cloud Console.
AZURE_CLIENT_ID=tu-client-id
AZURE_CLIENT_SECRET=tu-client-secret
AZURE_TENANT_ID=common
AZURE_REDIRECT_URI=http://localhost:3000/auth/azure/callback
AZURE_SCOPES=https://graph.microsoft.com/Calendars.Read,https://graph.microsoft.com/User.Read,offline_accessObtén las credenciales en Azure Portal > App registrations.
SLACK_APP_TOKEN=xapp-1-...
SLACK_BOT_TOKEN=xoxb-...
SLACK_ADMINS=U12345678,U87654321Crea una Slack App en api.slack.com con Socket Mode habilitado.
PORT=3000
BASE_URL=http://localhost:3000
DATABASE_PATH=./data/calendar.db
TOKEN_ENCRYPTION_KEY=<clave-hex-64-caracteres>
SYNC_CRON=0 */15 * * * *
SYNC_ON_STARTUP=trueGenera la clave de encriptación con:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"| Comando | Descripción |
|---|---|
/ajustes |
Configurar cuentas y calendarios conectados |
/calendario |
Ver eventos de hoy y mañana |
| Endpoint | Descripción |
|---|---|
GET /health |
Estado del servicio |
GET /feed/:token/orbitando.ics |
Feed iCal unificado |
GET /auth/google/callback |
Callback OAuth Google |
GET /auth/azure/callback |
Callback OAuth Microsoft |
Después de conectar tus cuentas via /ajustes, obtén tu URL de feed iCal personalizada para suscribirte desde:
- Google Calendar
- Apple Calendar
- Microsoft Outlook
- Cualquier cliente compatible con iCal
# Construir y ejecutar
docker-compose up -d
# Ver logs
docker-compose logs -fEl servicio estará disponible en http://localhost:3030.
MIT - See LICENSE file for details.
Made with ❤️ by @GentooXativa