Your own calendar infrastructure, fully self-hosted
CalSync Server is a production-ready, multi-tenant calendar backend built with Node.js, Express, and Prisma. Deploy it on your own infrastructure and give your users a complete scheduling platform — with email, WhatsApp, and push notifications out of the box.
Built for production from day one
Every feature you need to run a serious scheduling platform — without building it yourself.
Multi-Tenancy
One server, unlimited isolated tenants. Each business or client gets their own users, calendars, and data — fully separated.
Smart Notifications
Every event create, update, or cancel automatically notifies attendees, the event owner, and all tenant admins via email, WhatsApp, and push.
Multi-Database
Works with PostgreSQL, MySQL, or MariaDB. Switch providers with a single environment variable — no code changes needed.
License-Gated
Server validates your CalSync license key on startup and re-checks hourly. No valid key, no server — your IP is protected.
Google Business Sync
Push your availability rules directly to your Google Business Profile as opening hours. Auto-generates Schema.org JSON-LD for SEO rich results.
JWT + API Keys
Full authentication stack: JWT tokens with tenant context embedded, long-lived API keys for integrations, role-based access control.
Google Calendar Sync
OAuth2 incremental sync with Google Calendar. Bi-directional, token refresh, and per-user sync accounts.
Docker-First
Single Docker image. The entrypoint auto-patches the Prisma provider, runs db push with retries, then starts the server. Zero manual setup.
Every event change, everyone is notified
When an event is created, updated, or cancelled — CalSync Server automatically notifies all attendees, the event owner, and every tenant admin across all channels they have enabled.
- Attendees receive email invitations with event details
- Owners get email + WhatsApp + push based on their preferences
- Admins are always kept in the loop on every event change
- Users control their own notification preferences per channel
Email (SMTP)
Branded HTML emails with your logo and colors
WhatsApp Business
Rich messages via WhatsApp Business API
Web Push (VAPID)
Browser push notifications, no app needed
User notification preferences
One server, unlimited businesses
Each tenant is fully isolated. Users, calendars, events, and notifications never cross tenant boundaries.
- Manage all tenants
- Create/deactivate tenants
- Add tenant admins
- Platform-wide audit logs
- Manage tenant users
- Receive all event notifications
- View tenant audit logs
- Manage tenant resources
- Manage own calendars & events
- Set availability rules
- Configure notification preferences
- Google Calendar sync
Tenant identified via X-Tenant-ID header, subdomain, or query param — your choice.
Sync with every calendar platform
Google, Outlook, Apple iCal, Fastmail, Nextcloud — or any RFC 4791 CalDAV server. Users connect their existing calendars in seconds.
Google Calendar
OAuth2Incremental sync with token refresh. Bi-directional, per-user sync accounts.
GET /sync/google/authMicrosoft Outlook
OAuth2 (Graph API)Full Microsoft 365 calendar sync via Microsoft Graph API with MSAL OAuth2 flow.
GET /sync/outlook/authApple iCal
CalDAVConnect with Apple ID app-specific password. Syncs all iCloud calendars.
POST /sync/caldav/connectFastmail
CalDAVStandards-compliant CalDAV sync with Fastmail calendar accounts.
POST /sync/caldav/connectNextcloud
CalDAVSelf-hosted Nextcloud calendar sync — perfect for privacy-first deployments.
POST /sync/caldav/connectAny CalDAV Server
CalDAV (RFC 4791)Any standards-compliant CalDAV server: Radicale, Baikal, Zimbra, and more.
POST /sync/caldav/connectOAuth2
Google & Outlook — secure token flow, auto-refresh
CalDAV
Apple, Fastmail, Nextcloud & any RFC 4791 server
Per-user
Each user connects their own accounts independently
The ultimate scheduling solution
From solo practitioners to enterprise platforms — CalSync Server powers scheduling across every vertical.
Healthcare & Medical
- Patient appointment booking
- Doctor availability rules
- Multi-clinic multi-tenant
- WhatsApp appointment reminders
- HIPAA-friendly self-hosted
Finance & Banking
- Advisor meeting scheduling
- Client onboarding slots
- Outlook + Teams sync
- Tenant-isolated client data
- Compliance audit calendars
Legal & Consulting
- Client consultation booking
- Court date management
- Multi-attorney calendars
- Conflict detection
- Billable hour tracking
Education
- Class & lecture scheduling
- Student appointment booking
- Google Calendar sync
- Multi-campus tenants
- Teacher availability rules
Field Services
- Technician dispatch
- Job site calendars
- Equipment resource booking
- WhatsApp job alerts
- Resource management
Wellness & Beauty
- Salon & spa bookings
- Staff availability
- Recurring appointments
- Client reminder notifications
- Multi-location support
Real Estate
- Property viewing slots
- Agent calendar management
- Open house scheduling
- Apple iCal sync
- Automated viewing reminders
SaaS Platforms
- Embed in your product
- Multi-tenant per customer
- White-label branding
- REST API for integrations
- Self-hosted = your data
Up and running in minutes
Deploy with Docker
One command. The entrypoint handles DB setup, Prisma generation, and server start automatically.
docker compose up -dCreate your SUPER_ADMIN
Run once after first boot to create the platform owner account.
SUPER_ADMIN_EMAIL=you@example.com\
SUPER_ADMIN_PASSWORD=secret\
npm run seed:superadminCreate a tenant
Creates the tenant and its first ADMIN user in a single API call.
POST /api/v1/tenants
{
"slug": "acme",
"name": "Acme Corp",
"adminEmail": "admin@acme.com",
"adminPassword": "secure"
}Users log in & manage events
All users identify their tenant via the X-Tenant-ID header. Fully isolated per tenant.
POST /api/v1/auth/login
X-Tenant-ID: acme
{ "email": "alice@acme.com" }Ready to self-host?
One license covers both the React calendar component and the self-hosted server. €699 one-time, 1 project, lifetime access.
1 project · Domain-locked · Lifetime updates · No subscription