Self-Hostable Scheduling Software for Developers
A booking page for discovery calls, paid code reviews and client syncs. Use the hosted version, or read the source and run it on your own server.
Updated 22 October 2026
Why do freelance developers put up with scheduling by email?
You automate other people's workflows all day, then spend twenty minutes agreeing a 30-minute call over email, converting time zones in your head. Most booking tools would fix that, but they come as closed services you cannot inspect, extend or move to your own box. Tymeslot's code is public under the GNU AGPLv3, written in Elixir and Phoenix on PostgreSQL. The managed service runs in the EU, and you can run the same code yourself with Docker.
What a developer wants from a booking page
A freelance developer's meetings are few but varied: a free discovery call with a prospect, a paid hour reviewing someone's code, a weekly sync with a client on retainer. They happen across time zones, and bookings need to reach the rest of your tools, whether that is an issue tracker, a CRM or a Slack channel.
Tymeslot covers that without much setup. Each kind of meeting gets its own type, link and length. The page reads the visitor's time zone from the browser and converts your hours. Video links are created automatically, including in self-hosted Jitsi or MiroTalk if you prefer those to Google Meet or Zoom. Webhooks fire when a meeting is booked, requested, declined, cancelled or rescheduled, each one signed so your receiver can prove it came from Tymeslot. On the managed service, webhooks and payments are part of Pro; self-hosted, everything is included.
Everything developers need. Nothing they don't.
Read It Before You Trust It
Clone the repository and grep for yourself: the booking page carries no advertising trackers. tymeslot.app adds Google reCAPTCHA once a client starts the form, against spam bookings; your own install loads it only if you configure it.
Webhooks You Can Verify
Each delivery carries an HMAC-SHA256 signature over its timestamp and body, keyed with your token, so a receiver can reject forged or replayed payloads. Or skip the code and post events to Slack or Telegram.
Office Hours for Your Project
Maintain an open-source library? A group booking type on Pro gives a weekly community call a fixed number of places, from 2 up to 999, and closes it when the last one is taken.
Video Links on Your Terms
Google Meet, Microsoft Teams, Zoom, Jitsi, MiroTalk, kMeet or Nextcloud Talk: a room is created for each booking, so you never paste a link by hand.
Code Reviews Paid Up Front
Put a fixed price on a review hour and the client pays it through your Stripe account while booking. A prospect who would never pay for an hour of your time filters themselves out.
A Meeting Type per Engagement
Discovery call, paid code review, weekly client sync: separate types with separate durations, URLs and questions, and private ones never appear on your public page.
See the difference
Without Tymeslot
With Tymeslot
Common scheduling scenarios
How do freelance developers turn portfolio visits into booked calls?
A prospect reads a case study on your site or a README on GitHub and wants to talk. If the next step is an email and a wait, many will not take it. A booking link wherever they found you turns interest into a date.
- Create a 30-minute "Discovery call" with 24 hours' notice and a booking horizon of three weeks.
- Embed it on your contact page as an inline calendar, and put the plain link in your GitHub profile README.
- Ask for a link to the project or repository, a URL question (Pro on tymeslot.app), and skim the code before the call.
- The prospect sees every slot in their own time zone, and the video room exists by the time the confirmation arrives.
How do developers run weekly syncs with retainer clients?
Retainer clients need a regular slot, and you need it not to eat into focused work. A private meeting type with its own schedule keeps syncs inside the hours you choose.
- Create a 30-minute "Client sync" meeting type and hide it from your public page.
- Give it an availability schedule covering only the hours you set aside for calls, for example Monday and Thursday afternoons.
- Send the direct link to the client, and allow guests so their product owner or designer can join.
- If you give each retainer client a sync type of their own, cap each at one booking a week, so nobody books three in a sprint.
How do developers connect bookings to the rest of their tooling?
A booking is the start of some work: an issue to open, a lead to add, a channel to notify. Webhooks hand each one to the tools you already run.
- Add a webhook endpoint and pick the events: meeting.created, meeting.requested, meeting.declined, meeting.request_expired, meeting.cancelled or meeting.rescheduled.
- In your receiver, take the t= value from X-Tymeslot-Signature, recompute the HMAC-SHA256 of it, a full stop and the raw body with your token, and compare the result with v1= before parsing anything.
- Turn the payload into a GitHub issue, a CRM entry or a calendar block in your own code, or post it to Slack or Telegram without writing any.
- Run the connection test from the dashboard to check the endpoint before a real client books.
See Tymeslot in action
A starter setup for developers
| Meeting type | Duration | Buffer | Minimum notice | Bookable ahead | Payment at booking |
|---|---|---|---|---|---|
| Discovery call | 30 min | 10 min | 1 day | 3 weeks | None |
| Paid code review | 60 min | 15 min | 2 days | 3 weeks | €120 fee at booking |
| Client sync (private) | 30 min | 10 min | 12 hours | 30 days | None |
Intake questions
- Link to the project, repository or current site
- What is the stack, roughly?
- What would you like to get out of the call?
- Is there a deadline or launch date?
Ask for a public link, never a token, a .env file or a zip of the code; if a review needs a private repository, request read access once the booking is paid. The 48-hour notice on reviews gives you time to clone and skim first, and since notice lives on the schedule, reviews and syncs each need their own.
Tymeslot compared with Cal.com and TidyCal
Tymeslot, Cal.com and TidyCal each give a solo developer a free hosted tier, so what separates them for you is the code: can you read the source of what you run, and can you deploy it yourself? Cal.com itself is closed source, with the Cal.diy community edition as its open, self-hostable variant; TidyCal is hosted only. Where Cal.com is ahead is money on the free tier: it takes Stripe or PayPal payments there, while Tymeslot's managed service keeps paid bookings on Pro.
| Feature | Tymeslot | Cal.com | TidyCal |
|---|---|---|---|
| Open source | Every line public: AGPLv3, Elixir and Phoenix | Cal.com is closed source; Cal.diy is open source | No: hosted service only |
| Self-hosting | Same booking code as tymeslot.app, nothing held back | Only the Cal.diy community edition | No: hosted service only |
| Free plan | Free: portfolio embeds, private client syncs, unlimited bookings | Yes: free forever for 1 user | Yes: unlimited bookings and booking types |
Sources checked 5 October 2026.
How much time could you save?
A rough estimate, not a promise.
150
minutes saved per week
130.0
hours saved per year
€15,600
annual value of saved time
Which calendars and tools do developers use with Tymeslot?
Start free, upgrade when you're ready
A developer whose discovery calls are free and who invoices retainers monthly can stay on Free. The €120 paid code review, the repository-link question and the webhooks into your tracker make the case for Pro (€9/month). Self-host it and all three cost nothing, in exchange for keeping a Phoenix app and its PostgreSQL database patched.
Free
€0 / month
Pro
€9 / month