Skip to content

Tidetime — open-source scheduling you host yourself

Open-source · Self-hosted · MIT licensed

Appointment scheduling
you host yourself.

Booking pages, provider scheduling, calendar conflict checks, and email for one company, running on your own server and your own database. Deploy it with Docker.

  • One-command install
  • Your own database, your own server
  • No usage limits or paid tiers
bash — your-server ~
$ curl -fsSL https://tidetime.app/install.sh | bash
Installing Docker… done
Generating secrets… done
Starting containers… done
Waiting for health… done
Tidetime is live at http://<your-server-ip>
The booking page

What your customers see.

A clean, branded page: choose a service, pick a provider or let Tidetime assign the least-busy one, and book an open time in your own time zone.

Tidetime booking page: a service, a calendar, and available time slots
The real booking page, on your own domain and branding.
Capabilities

Everything one company
needs to take bookings.

From a single service to a full team, Tidetime covers the whole booking flow without extra tools or subscriptions.

Booking pages

A public page per company with your branding, custom questions, multiple durations, buffers, and minimum-notice rules.

Provider assignment

Customers pick a provider or let Tidetime assign the least-busy available one. Exactly one provider per booking, no rota to manage.

Availability & schedules

Multiple named schedules per provider, weekly hours with date overrides, and admin-managed availability for the whole team.

Group events & caps

Share one slot across several attendees for group sessions, set a daily booking cap per service, and require confirmation when you need it.

Calendar conflict checks

Connect Google Calendar or Microsoft 365 so busy times block clashing slots. Bookings are written to a Google destination calendar you choose.

Meeting links

Built-in Jitsi rooms with no account, or Google Meet links when Google Calendar is connected. Phone and in-person options too.

Email & updates

Branded confirmations, reschedules, and cancellations over your own SMTP server or a Microsoft 365 mailbox, with calendar invites and RSVP links.

Signed webhooks

Send a signed, retrying webhook on every booking event to a Zapier Catch Hook or any endpoint you control. Verify it with a shared secret.

Customer directory

Everyone who books is recorded and de-duplicated by email, with per-customer history and a one-click CSV export.

Integrations

Works with the tools
you already use.

Credentials are stored encrypted in your database and configured in-app — or supplied as environment variables. Your keys never leave your server.

Calendars
Google Calendar Microsoft 365 / Outlook busy check
Meeting links
Jitsi built-in Google Meet
Email & automation
SMTP email Microsoft 365 email Webhooks signed

All credentials are encrypted at rest. Nothing is shared with third-party services.

Self-hosted & open-source

Own everything.

No subscription tiers locking features. No third-party processor in the middle. No SaaS terms deciding what you can do. Your server, your data, your rules.

01

Your data stays yours

Everything runs on your own server and PostgreSQL database. No external party can read, sell, or lose access to your booking data.

02

One command, or full control

Use the one-command installer, the Docker Compose stack, or a manual Node deploy — whatever fits your infrastructure and skill level.

03

Wire it into your tools

A signed, retrying webhook fires on every booking event, so you can push bookings into Zapier or any endpoint you run without opening up your data.

04

MIT licensed

Free and open under the MIT license. Read the code, fork it, extend it, white-label it, and contribute improvements back to the community.

$0
per seat, per month
2
calendar providers
4
team roles
1
command to install

Ready when you are.

Spin up your own scheduling platform in minutes, then make it yours.