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
| Criterion | Bunker | Calendly | Cal.com Cloud | Self-hosting |
|---|---|---|---|---|
| Open source | Yes (AGPLv3) | No | Yes (AGPLv3) | Yes |
| Sovereign hosting | Yes (France) | No (USA) | No (USA) | Up to you |
| White-label / own domain | Yes | Paid | Paid | Yes |
| Users | Unlimited (fair use) | Per seat | Per seat | Up to you |
| Round-robin & teams | Included | Paid | Paid | Included |
| Multi-calendar sync | Yes | Yes | Yes | Yes |
| High availability | Guaranteed | Yes | Yes | Up to you |
| Auto backups | Yes | Yes | Yes | To configure |
| Security updates | Applied | Automatic | Automatic | To monitor |
| Ops cost | Zero | Zero | Zero | Time + 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:
| Provider | Reads busy times | Creates events |
|---|---|---|
| Google Calendar | Yes | Yes |
| Microsoft Office 365 / Outlook | Yes | Yes |
| Apple Calendar (iCloud) | Yes | Yes |
| CalDAV (generic) | Yes | Yes |
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
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 event | Description |
|---|---|
booking.created | A booking was made |
booking.rescheduled | A guest moved their appointment |
booking.cancelled | A booking was cancelled |
meeting.ended | The 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:
| Aspect | Self-hosting | Bunker |
|---|---|---|
| High availability | Up to you | Guaranteed |
| Backups | To configure | Automatic |
| Security updates | To monitor | Applied |
| SSL certificates | To renew | Managed |
| 24/7 monitoring | To set up | Included |
| HA database | PostgreSQL to manage | CNPG 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
- Go to console.getbunker.net
- Create your Bunker account or sign in
- Activate the cal.diy service and provide the desired domain (e.g.
cal.yourcompany.com)
2. Connect a calendar (optional)
- In cal.diy, go to Settings → Calendars
- Connect Google, Office 365, Apple or a CalDAV
- Choose the destination calendar for new bookings
3. Create an event type
- Click New event type
- Set the duration, availability window and buffers
- Add the video link (Meet, Teams, Zoom…) or an address
- 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
- Cal.com documentation to go further
- External Backups for complete protection