Skip to main content

cal.diy Appointment Scheduling

Email back-and-forth to find a slot is wasted time. Calendly solves it, but your availability, your guests and your meeting metadata transit through American servers. Bunker hosts cal.diy, a managed instance of Cal.com, the open source alternative to Calendly, on your own domain.

Access: your own domain (for example cal.yourcompany.com)

Why cal.diy?

Cal.com is an open source appointment scheduling platform. It handles one-on-one meetings, group bookings, round-robin distribution across a team, two-way calendar sync, multi-channel reminders and full white-labeling. cal.diy is that platform deployed, maintained and backed up by Bunker, on your domain.

Your data stays on Bunker servers. Sync with Google or Microsoft is optional: you only connect an external calendar if you want to.

Comparison with alternatives

CriterionBunkerCalendlyCal.com CloudSelf-hosting
Open sourceYes (AGPLv3)NoYes (AGPLv3)Yes
Sovereign hostingYes (France)No (USA)No (USA)Up to you
White-label / own domainYesPaidPaidYes
UsersUnlimited (fair use)Per seatPer seatUp to you
Round-robin & teamsIncludedPaidPaidIncluded
Multi-calendar syncYesYesYesYes
High availabilityGuaranteedYesYesUp to you
Auto backupsYesYesYesTo configure
Security updatesAppliedAutomaticAutomaticTo monitor
Ops costZeroZeroZeroTime + server

In practice

The source code is auditable by anyone. AGPLv3 license: no black box, no dependency on an American vendor.

Your data belongs to you. You can leave Bunker tomorrow and reinstall Cal.com on your own server with all your data.

Your appointments and your guests' contact details stay in France, under French law. No CLOUD Act, no access by foreign authorities.

Event types

cal.diy covers every scheduling scenario:

  • One-on-one (1-1): an interview, a demo, a client check-in
  • Group: a single slot, multiple guests (webinar, workshop)
  • Collective: several of your team members must attend at the same time
  • Round-robin: bookings are automatically distributed across a team based on availability (ideal for sales or support)
  • Dynamic: combine several people's availability on the fly via a URL

Each event type is finely configurable: duration, minimum booking notice, availability window, buffers before/after, daily booking cap, custom questions at booking time.

Calendar sync

Connect one or more calendars so cal.diy reads your busy times and writes new bookings:

ProviderReads busy timesCreates events
Google CalendarYesYes
Microsoft Office 365 / OutlookYesYes
Apple Calendar (iCloud)YesYes
CalDAV (generic)YesYes

Sync is two-way: a meeting added manually in Google automatically blocks the slot in cal.diy, and any booking taken via cal.diy shows up in your calendar.

Video conferencing

cal.diy automatically generates the video link on booking:

  • Google Meet
  • Microsoft Teams
  • Zoom
  • Jitsi (open source, no account)
  • Custom link or in-person (physical address)

Reminders and notifications

Cut no-shows with automatic reminders:

  • Email: confirmation, reminder, reschedule, cancellation
  • SMS
  • WhatsApp

Workflows let you trigger these messages at precise times (24 h before, 1 h before, after the meeting for follow-up) and customize their content.

Teams and organizations

For multi-person structures:

  • Team pages: a shared booking page that distributes requests
  • Round-robin: balances load across sales reps or consultants
  • Collective meetings: require several members to attend
  • Centralized management: rights, availability and branding managed at the organization level

Routing forms

Routing forms qualify the guest before booking: based on their answers (company size, topic, region), they are routed to the right person or event type. Ideal to keep an inbound lead separate from a support request.

Embed in your site

Embed scheduling directly into your application or website:

  • Inline: the calendar renders inside the page
  • Popup / floating button: opens on click
  • Trigger element: on any existing button
<!-- Example: inline embed -->
<div id="cal-booking"></div>
<script src="https://cal.yourcompany.com/embed/embed.js"></script>
<script>
Cal("inline", { elementOrSelector: "#cal-booking", calLink: "your-team/demo" });
</script>

API and webhooks

cal.diy exposes a complete REST API and real-time webhooks to automate your processes:

Webhook eventDescription
booking.createdA booking was made
booking.rescheduledA guest moved their appointment
booking.cancelledA booking was cancelled
meeting.endedThe meeting is over
# Example: create a booking via the API
curl -X POST https://cal.yourcompany.com/api/v2/bookings \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"eventTypeId": 1,
"start": "2026-07-01T09:00:00Z",
"attendee": { "name": "Jane Doe", "email": "[email protected]", "timeZone": "Europe/Paris" }
}'

Bunker vs self-hosting

You could install Cal.com on your own server. But:

AspectSelf-hostingBunker
High availabilityUp to youGuaranteed
BackupsTo configureAutomatic
Security updatesTo monitorApplied
SSL certificatesTo renewManaged
24/7 monitoringTo set upIncluded
HA databasePostgreSQL to manageCNPG PostgreSQL (replicated)

An unavailable booking page is a lost client appointment. With Bunker, availability and backups are guaranteed. The database is managed by CNPG (CloudNativePG) with replication for high availability.

Quick start

1. Activate the service

  1. Go to console.getbunker.net
  2. Create your Bunker account or sign in
  3. Activate the cal.diy service and provide the desired domain (e.g. cal.yourcompany.com)

2. Connect a calendar (optional)

  1. In cal.diy, go to Settings → Calendars
  2. Connect Google, Office 365, Apple or a CalDAV
  3. Choose the destination calendar for new bookings

3. Create an event type

  1. Click New event type
  2. Set the duration, availability window and buffers
  3. Add the video link (Meet, Teams, Zoom…) or an address
  4. Share your public link

4. Receive your bookings

On every booking: the guest gets their confirmation, the event appears in your calendar, and reminders fire automatically per your workflows.

Portability

Appointment scheduling touches contact and organizational data. With cal.diy:

  • Export of your event types, bookings and contacts
  • Open and documented API
  • AGPLv3 license guaranteeing the project's longevity
  • Active community maintaining the software

If Bunker disappears tomorrow, you export your data and reinstall Cal.com on your own instance. Try doing that with Calendly.

References