Skip to main content

Overview

Cal.com is a scheduling and appointment management system integrated into the Mondo MOPS ecosystem. It provides a robust solution for managing appointments, scheduling meetings, and coordinating availability across team members. In the MOPS platform, Cal.com serves as the central scheduling infrastructure, accessible via its own subdomain.
Cal.com was formerly known as Calendly and provides similar functionality with additional features for self-hosting and customization.

Architecture

Cal.com in the MOPS stack consists of:
  • Cal.com Application Container: The main application serving the web interface
  • PostgreSQL Database: Stores all scheduling data, accounts, and configuration
  • Traefik Integration: Handles routing and TLS termination

Deployment Configuration

Docker Compose Setup

Configuration

Environment Variables

Create a .env file in the Cal.com directory with the following variables:
Store these credentials securely. The .env file contains sensitive information that should not be committed to version control.

Key Configuration Options

Installation and Setup

Prerequisites

  • Docker and Docker Compose installed
  • External traefik-net network created
  • Domain with DNS pointing to your server
  • SMTP credentials for email notifications

Deployment Steps

  1. Create Required Networks:
  2. Prepare Directory Structure:
  3. Create Configuration Files:
  4. Deploy the Stack:
  5. Monitor Initial Startup:

First-Time Setup

Once deployed, complete the setup:
  1. Visit https://cal.trymondo.com
  2. Create the admin account
  3. Configure organization settings
  4. Set up event types and availability

Integration with Other MOPS Services

Authentication

Cal.com can be integrated with Auth0 or other authentication providers:
  1. Configure the OAuth provider in your authentication service
  2. Add the appropriate callback URLs
  3. Update the Cal.com environment variables with the OAuth credentials

API Integration

Cal.com exposes an API that can be used by other MOPS services:

Maintenance

Backup and Restore

Cal.com data is stored in two locations:
  1. PostgreSQL Database: Use Backrest to back up the database volume
  2. Application Data: The ./data volume contains uploads and other files
Regular backups should include both components:

Updates

To update Cal.com:
  1. Update the image tag in docker-compose.yml
  2. Pull the new image:
  3. Apply the update:
Always create a backup before updating to prevent data loss.

Troubleshooting

Common Issues

Checking Logs

Health Checks

Performance Tuning

Resource Allocation

Cal.com performs well with moderate resources:
  • Database: 1 CPU, 1GB RAM
  • Application: 1-2 CPU, 2GB RAM
For high-traffic instances, consider adding resource constraints to docker-compose.yml:

Security Considerations

  1. Database Access: Limit access to the PostgreSQL database
  2. SMTP Credentials: Regularly rotate email credentials
  3. API Security: Monitor API usage and restrict access as needed
  4. Traefik Configuration: Ensure proper security headers are applied (already configured)

References


This documentation provides a comprehensive guide to deploying, configuring, and maintaining Cal.com within the Mondo MOPS ecosystem. For specific customization needs or advanced features, refer to the official Cal.com documentation.