A self-hosted booking page that works with any calendar.
One-time payment. Yours forever.
I got tired of paying monthly for a tool that kept breaking the features I actually used. So I built one that doesn't — yours for $59, or free with a newsletter subscription.
One-time purchase · 14-day refund · runs on Vercel's free tier
// why I built this
Cal.com used to be the answer. Open source, self-hostable, genuinely good. I used it for a few years and liked it.
Then a few things happened in quick succession. They broke Proton Calendar support — never perfect, but it worked, and then it didn't, and the fix never came. They removed multi-location in-person scheduling. And earlier this year, they moved their core product to a closed repository. They released a stripped-down community edition to soften the landing, but the direction was clear. The tool I'd relied on was becoming something else.
I looked at Calendly. Polished, reliable, expensive — and a monthly subscription forever for something that is, at its core, just a booking page. Nothing else did what I needed.
So I built Calstead.
I've been running it for my own bookings for several months. It connects to any calendar that provides an ICS URL — Proton, Google, Outlook, FastMail, iCloud, whatever you're using. Connect multiple calendars at once and it blocks your availability across all of them simultaneously. It supports Google Meet, Proton Meet, and Zoom for virtual meetings, and in-person meetings with multiple locations so your guests can pick where they want to meet.
You pay once. You clone the repo and deploy to Vercel — about ten minutes if you're comfortable with that kind of setup. Calstead runs comfortably within Vercel's free tier, so your ongoing hosting cost is zero. You own the deployment, you control the data, and you're not paying anyone anything after today.
// the mechanism
Mutual availability — the problem nobody else solved.
Most booking tools solve half the problem. They show your availability, let someone pick a slot, put it on your calendar. That's the easy half.
The hard half is the other person's calendar. They pick something that looks reasonable, then realize an hour later they had a conflict — or go back and forth with you anyway. The tool made scheduling easier for you, not for them.
Calstead fixes this. When someone opens your booking page, they can connect their Google or Outlook calendar — stored in their browser session, nothing writing back to a server. The page then shows only the times that are free for both of you. One view, no back-and-forth.
The connection expires automatically after one hour — a deliberate security window — or they can disconnect it manually anytime. One-click guest connection needs OAuth, which Google and Outlook provide; more private providers don't expose it by design. Support for additional providers is on the roadmap.
The guest's actual booking view — connect a calendar and only the times that work for both of you remain.
The same “built for both sides” thinking runs through the details. Calstead supports Google Meet, Proton Meet, and Zoom for virtual meetings — enable any combination, and optionally let your guest choose the platform they prefer, globally or per meeting type. One honest note: Proton Meet and Zoom use your personal meeting link rather than minting a unique one per meeting, which keeps setup simple.
Any calendar on your side. Not just the popular ones.
Calstead connects to any calendar that exposes an ICS URL — Proton, FastMail, iCloud, Nextcloud, Zoho, anything standards-compliant. Connect several at once and Calstead blocks your availability across all of them. Work calendar, personal calendar, side-project calendar — all of them inform what gets shown as open. No manual juggling, no double-booking.
In-person meetings, done right.
Create an in-person meeting type and add multiple locations — a few coffee shops, your office, a coworking space — and let the person booking choose where to meet. The address lands in the calendar invite automatically. A small detail, but a memorable one.
The technical setup.
Calstead is a Next.js app you deploy to Vercel — comfortably within the free tier, so your ongoing cost is zero. Comfortable with a terminal? The developer quick start takes 10–15 minutes. Never touched one? The guided setup runs entirely in your web browser — about an hour, no coding, no command line. Either way, you can hand the guide to Claude Code, Codex, or any AI assistant and it'll do most of the work for you.
// the offer
One payment. No clock running.
Calendly's Standard plan — the one most individuals actually need — runs $10/month billed annually. That's $120 a year, every year, for a tool you don't own. Calstead starts free, and the full version is $59 once. Runs on Vercel's free tier and costs nothing after today. That's not a launch price. That's the price.
Free
$0with the newsletter
- The full booking engine, free forever
- One calendar feed
- Access to the private GitHub repo
- Community support on Discord
Pro
Most popular$59one-time
- Everything in Free
- Merge busy times from unlimited calendars
- Mutual availability — bookers connect their own calendar
- Unlimited personal deployments
- Direct email support
Teams
$149one-time
- Everything in Pro
- Up to 25 people in one organization
- Up to 5 GitHub accounts on the repo
- Each person gets their own booking page
After purchase, email your other GitHub usernames to hello@calstead.com and we'll add them (up to 5).
Every tier includes
- Proton Calendar support (and any ICS-compatible calendar)
- In-person meeting types with multiple location options
- Google Meet, Proton Meet, and Zoom — with optional guest choice of platform
- Unlimited meeting types and bookings
- Vercel deployment — runs on the free tier
- No-terminal setup guide + diagnostics page
- All future updates while Calstead is maintained
What happens after you buy
You get access to the private GitHub repo. The guided setup walks you through going live entirely in your web browser — no terminal needed, about an hour. Developers can take the 10–15-minute CLI quick start instead. Everyone gets Discord access and direct email support — it's just me on the other end, so you're talking to the person who built it either way. If it doesn't work for your setup within 14 days — calendar compatibility, deployment problems you can't resolve — reach out and I'll make it right. Either we fix it together or I refund you.
Secure checkout by Stripe · instant GitHub repo access · 14-day refund · prices exclude any applicable tax · sold to US customers only · license terms
// questions
Questions you'd probably ask
What's actually in the free version?+
The full booking engine: your booking page, unlimited meeting types and bookings, email confirmations with calendar invites, reschedule/cancel links, meeting links (Google Meet, Proton Meet, Zoom), in-person meeting types, and the whole no-terminal setup experience. The two things it doesn't have: merging busy times from multiple calendars, and mutual availability (bookers connecting their own calendar) — those are Pro. Free is free forever, gated on subscribing to the Step Zero newsletter; unsubscribing doesn't take your copy away.
Is this hard to set up?+
No terminal required: the guided setup walks you through every step in your web browser — fork the repo, create your free database and email accounts, paste one settings block into Vercel — about an hour start to finish, with a finish-line page that checks everything for you. If you've deployed a Next.js app before, the CLI wizard gets you there in 10–15 minutes. Want to go faster? Hand the guide to Claude Code, Codex, or any AI coding assistant and let it do most of the work.
Does it actually work with Proton Calendar?+
Yes. Calstead connects to any calendar that exposes an ICS URL — Proton Calendar, FastMail, iCloud, Nextcloud, Zoho, and anything else standards-compliant. If your calendar provides an ICS URL, it works.
What's the mutual availability feature, exactly — and why only Google and Outlook?+
When someone opens your booking page, they can connect their Google or Outlook calendar to see only the times that are free for both of you. It's a Pro feature. The connection is stored in their browser session — nothing writes back to a server — and it expires automatically after one hour, or they can disconnect it manually. The one-hour timeout is intentional: a security window, not an oversight. Google and Outlook are the only providers for guest connection right now because they offer one-click OAuth. More private providers don't expose that by design. Support for additional providers is on the roadmap.
How does the Teams license work technically?+
It covers up to 25 people in one organization. One person gets repo access immediately after purchase — email me for up to four additional GitHub accounts. Each person sets up their own Vercel deployment from the same repo. It's not a single shared deployment; each person runs their own instance. The setup is the same for everyone, and the guide covers it.
What calendars can I connect on my side?+
Any calendar with an ICS URL. On Pro and Teams you can connect multiple at once — Calstead blocks your availability across all of them, so your Proton Calendar, your Google Calendar, and your iCloud calendar all inform what's shown as available at the same time. The free tier reads one calendar feed.
What video conferencing does it support?+
Google Meet, Proton Meet, and Zoom. Enable any combination, and you can optionally let your guest choose which platform they prefer — globally or per meeting type. One honest note: Proton Meet and Zoom use your personal meeting link rather than generating a unique link per meeting, which keeps setup simple. You can also create in-person meeting types with multiple location options — the person booking picks where to meet, and the address goes into the calendar invite automatically.
What happens if you stop maintaining Calstead?+
You keep everything. The repo doesn't disappear from your GitHub account, your deployment keeps running on Vercel, and the code is yours to fork and modify. You're not dependent on a hosted service — you own the deployment. The worst case is you stop receiving updates, which is the same situation you'd be in with any self-hosted tool.
What if it doesn't work for my setup?+
Reach out within 14 days. Either we'll fix it together or I'll refund you.
Five months of Calendly rent buys it outright.
One purchase, one repo invite, one deploy. Then it's just your booking page, on your domain, for good.
Not ready to buy? Start with the free version.