calnode
Calnode es un motor de agendamiento self-hostable en Go con base de datos SQLite y API-first, diseñado como alternativa a Calendly para entornos donde los agentes o IA gestionan las citas. Es una aplicación monolítica en un solo binario que incluye videoconferencias, grabación y notas por IA.
Ficha actualizada 23 sept 2026, 16:08 · upstream 23 sept 2026, 16:01 · release v0.9.0
Qué es calnode
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Calnode es una herramienta de agendamiento estilo Calendly, construida con Go puro y SQLite, sin dependencias externas como Redis ni Postgres. Se ejecuta como un único binario estático, lo que la hace ideal para despliegues en VPS pequeños o entornos donde el costo del hosting es crítico. Su arquitectura API-first permite conectar agentes de IA (como Claude) a través de webhooks y MCP tools sin necesidad de una interfaz gráfica compleja.
La aplicación soporta múltiples eventos tipo, gestión de disponibilidad por equipos, integración nativa con Google Calendar y Microsoft 365/Outlook, así como un sistema de invitaciones por correo electrónico. Además, Calnode incluye un servidor MCP (Model Context Protocol) nativo que permite a agentes externos consultar el calendario directamente.
Un punto destacado es su enfoque en la privacidad: los datos están almacenados localmente en SQLite y se pueden recuperar mediante una clave de recuperación secreta. Esto lo convierte en una alternativa viable para organizaciones que no desean depender de servicios SaaS como Google Calendar o Microsoft 365.
- Gestionar citas con IA: Agregar un agente como Claude a la lista de agentes y configurar webhooks para recibir eventos automáticamente
- Videoconferencias en tiempo real: Usar LiveKit integrado para tener reuniones virtuales sin necesidad de una aplicación externa ni cuenta adicional
- Agendamiento por chat: Permitir que los visitantes reserven citas directamente mediante un asistente conversacional en la página de reservas
- Gestión de equipos: Definir roles (admin, miembro) y asignar eventos a equipos específicos con rutas fijas o aleatorias
- Integración con CRM: Configurar webhooks para sincronizar los eventos calnode con herramientas como HubSpot, Salesforce o n8n
- Reservas pagas: Implementar pasarelas de pago como Stripe Checkout que reservan el slot antes del pago y lo confirmen tras la transacción
- Agendamiento en múltiples idiomas: Soportar 9 idiomas para los formularios de reserva y las notificaciones, con soporte multilingüe en los emails
- Arquitectura monolítica en un único binario Go que reduce la complejidad operativa y el costo de despliegue
- Base de datos SQLite con WAL (Write-Ahead Logging) para transacciones acústicas, permitiendo resubmitir eventos sin perder datos
- Soporte nativo de Google Calendar y Microsoft 365/Outlook como proveedores de disponibilidad real
- Servidor MCP integrado que permite a agentes externos consultar el calendario con herramientas first-class
- Videoconferencias en tiempo real vía LiveKit con grabación automática al bucket de almacenamiento propio (Litestream)
- Sistema de invitaciones por correo electrónico con diseño responsivo y soporte para múltiples idiomas
- La base de datos SQLite no soporta transacciones ACID a nivel de banco de datos, lo que puede causar inconsistencias en operaciones concurrentes intensivas
- El videoconferencia requiere un endpoint externo de LiveKit (Cloud o self-hosted), limitando la flexibilidad si se desea usar en entornos aislados sin infraestructura externa
- La integración con Google Calendar y Microsoft 365 depende de que el proveedor de calendario tenga API key habilitada, lo cual puede requerir permisos adicionales
- El sistema de pagos con Stripe Checkout requiere configuración adicional (webhooks, configuraciones de seguridad) además del binario base
- La conversión de notas por IA es un servicio externo separado y no está integrado directamente en el flujo de agendamiento
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Para desplegar Calnode, se recomienda usar Docker con la imagen oficial `ghcr.io/calnode/calnode:latest`. Se deben configurar variables de entorno como `BASE_URL` para redirigir al frontend, una clave de encriptación secreta (`CALNODE_ENCRYPTION_KEY`) y un secreto de recuperación. La base de datos se almacena localmente en el contenedor con la ruta `/data/calnode.db`, lo que permite mantenerla aislada del sistema operativo. Se recomienda usar `:0.1` como versión para parches menores o `:edge` para el main branch. Para producción, se debe implementar un proxy TLS (como Nginx) que reenvíe el encabezado Host original y configure HTTPS con certificados válidos. El despliegue en Railway, Render o similar es posible mediante una acción GitHub Actions que ejecuta la imagen Docker y configura los env vars automáticamente.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.