Project · Infrastructure · Scheduling

Cal.com Scheduling Platform

Docker PostgreSQL Cal.com Cloudflare Tunnel Google OAuth Azure / Entra ID Node.js

Project Overview

Who

Personal use — needed a single booking page that checks availability across both personal and work calendars before offering time slots.

What

A self-hosted scheduling platform that connects to Google Calendar and Office 365, prevents double-bookings across both, and gives visitors a clean link to book meetings — without paying for Calendly or similar SaaS tools.

When

March 2026. Google's built-in appointment scheduling requires a paid Workspace plan, which prompted the search for an open-source alternative.

Where

Runs as a Docker container on the homelab server, accessible at cal.alexgreimann.com via Cloudflare Tunnel. An alias at cal.j-g.vip redirects to the primary URL.

Why

Needed unified availability checking across a personal Gmail calendar and a work Office 365 calendar. Free scheduling tools either didn't support both or had restrictive limits. Self-hosting Cal.com provides full control, no per-user fees, and the flexibility to add event types and integrations without hitting plan ceilings.

Stack & Tools

Platform
Cal.com v6.2.0
Database
PostgreSQL
Containers
Docker Compose
Remote Access
Cloudflare Tunnel
Personal Calendar
Google Calendar API
Work Calendar
Microsoft Graph API
Email
Gmail SMTP
Host OS
Ubuntu Server