Disponibilidad de calendarios open source con Cal.com

Print Friendly, PDF & Email

Se que el título es complicado y poco aclaratorio… Cal.com nos permite montar en nuestra infraestructura una herramienta fabulosa para cuando queremos dar disponibilidad de nuestro calendario. Una web donde nuestros clientes puedan acceder y seleccionar una disponibilidad sin el mareo de correos tipo ¿cuándo te va bien?

 

Cómo dice su eslogan “Concéntrese en reunirse, no en hacer reuniones“, más claro el agua 🙂 Así que en este documento veremos cómo en un momentito montamos nuestro servidor de Cal.com. Tiene muchas cosas interesantes, se sincroniza con cualquier tipo de calendario para ver disponibilidades y agendar las citas, además permite realizar video conferencias o integrar la herramienta que usemos en la organización, como sea el Jitsi, Discord, Element, Google meet, Zoom, Teams… 

 

Desplegando el contenedor de Cal.com

Comenzamos en una máquina con un linux y Docker instalado, nos descargaremos los contenedores que necesite Cal.com, retocaremos el fichero de configuración y listo!

mkdir calcom
cd calcom
git clone https://github.com/calcom/docker.git
cd docker
cp .env.example .env

 

Editamos el fichero .env al menos con la siguiente información: (i) si tenemos un FQDN público para usarlo y lo vamos a proteger con un proxy inverso, (ii) el secreto y las claves de autenticación las generamos cómo nos indica y (iii) las notificaciones de correo para recibir las citas:

...
NEXT_PUBLIC_WEBAPP_URL=https://FQDN_PUBLICO
...
# Use `openssl rand -base64 32` to generate a key
NEXTAUTH_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
...
# Encryption key that will be used to encrypt CalDAV credentials, choose a random string, for example with `dd if=/dev/urandom bs=1K count=1 | md5sum`
CALENDSO_ENCRYPTION_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
...
EMAIL_FROM=
        
            re*******@co****.eso
            
                
                
                
            
            
                
                
                
            
        

EMAIL_SERVER_HOST=mail.correo.eso
EMAIL_SERVER_PORT=465
EMAIL_SERVER_USER=
        
            us*****@co****.eso
            
                
                
                
            
            
                
                
                
            
        

EMAIL_SERVER_PASSWORD=CONTRASEÑA
...

 

Descargamos y arrancamos los contenedores con:

docker compose pull
docker compose up -d

 

Configurando Cal.com

Si no hemos tocado nada, por defecto en el docker-compose.yml publicaremos Cal.com por el puerto 3000 del Docker, así que abrimos un navegador a http://DIRECCION_IP_DOCKER:3000 y damos de alta nuestro primer usuario, el que será el administrador. Introducimos nuestros datos, “Siguiente paso”,

 

Seleccionamos el modo de licenciamiento, podremos usar la versión open source o adquirir algún plan de suscripción personalizado para empresas, “Next Step”,

 

Nos muestra todas las aplicaciones que se integran con Cal.com, la verdad que el listado es increible, “Finish”,

 

Una vez finalizado el asistente, ahora sí nos pide crear una cuenta para usar como un usuario más. El registro de usuarios por defecto está permitido y se podrían denegar una vez tengamos todos los usuarios dados de alta.

El proceso es sencillo, escribimos la URL que queremos generar, para la web de reserva de citas, el nombre y la zona horaria local. “Next Step”,

 

Como paso 2 nos indica que debemos asociar al menos un calendario para hacer las reservas, ver disponibilidades… En mi caso usaré un standard, un CalDav de Radicale.

Como veis se integra con un montón de calendarios, tipo Google Calendar, calendarios Exchange, Outlook, Zoho, Apple…

 

Pegamos la URL con la dirección CalDAV y los credenciales si los tuviera, “Guardar”,

 

En mi caso dispongo de 3 calendarios, unicamente marcamos el que nos interesa. A partir de ahora, quien quiera reservarme una cita, podrá ver la disponibilidad de ese calendario y agendar libremente citas. “Continue”,

 

Podremos conectarlo con la solución que nos interese para realizar las video llamadas, en mi caso elegiré Jitsi Video.

 

Como paso 4 nos pide la disponibilidad, qué días y en qué horario se pueden coger reservas, “Next Step”,

 

Y finalmente, aquí añadiremos nuestra foto y una breve descripción nuestra. “Finish”.

 

Una vez acaba el asistente nos llevará a la web de gestión, muy simplona, donde deberemos habilitar 2FA, podremos crear distintos tipos de eventos, reservas, definir disponibilidad, equipos, integración de aplicaciones…

 

Probando Cal.com

Bueno, pues una vez hayamos configurado básicamente nuestro Cal.com, ya podremos compartir la URL de nuestro perfil, quien acceda a él verá las opciones que le damos para citarnos.

 

Una vez elija el tipo de evento y su duración, ya podrá ver el calendario donde podrá seleccionar las horas que estén disponibles en nuestro calendario.

 

Y así de fácil, una vez elegido cuando, podremos hacerle un pequeño formulario para obtener información como, nombre y apellidos, correo electrónico, alguna nota, posibilidad de añadir otras personas, opciones para el evento. Así como si es una llamada telefónica al organizador, al asistente o una video llamada, incluso podemos añadir un campo para que nos peguen la URL de su sistema de videoconferencia, si es que lo prefieren, vaya.

 

Y este sería el resumen de la cita, por supuesto llegará por mail y podrán reprogramar o cancelar la cita en todo momento.

 

Y por supuesto se añadirá la cita al calendario automáticamente!!

 

Una maravilla, una herramienta muy sencilla a la par de potente, donde nos da esa libertad a la hora de organizar reuniones, evitar pérdidas de tiempo con correos para arriba, para abajo… Espero os haya resultado interesante.

Como siempre, enviaros un abrazo a los que os portáis bien y sé que soy un pesado pero, ¡cuidaros mucho!

 

Posts recomendados

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir ;) . Disfrutar de los documentos!!!