Use case
Scheduling Software for Small Business
Buy the subscription. Unless what you need to book is an instructor, a car, and a test centre in one slot, because nobody is ever going to build that for you.
For many teams shopping for scheduling software for small business, Calendly, Square Appointments, or an established industry tool is the practical choice. A modest monthly fee can cost less than building and maintaining the same basic booking features.
The option discussed here is source code for an internal calendar, not a hosted booking service. You deploy, extend, and maintain it yourself.
Two situations can change that calculation.
When renting stops making sense
The per-seat bill outgrew the value. Booking tools price per user, and small businesses grow sideways. Two locations, six staff, a receptionist each, and suddenly a $20 tool is $200 a month. That is $7,200 over three years for the scheduling tool in this example.
The same tool, two years apart
The starting price used for this example.
The monthly cost increased with the number of users.
Both figures come from the example above, and thirty-six months at $200 is $7,200. Compare this with the prices on your own invoice before making a decision.
The feature you need does not exist. This can be a stronger reason to build. A driving school needs to book an instructor, a car, and a test centre slot together. A tattoo studio needs a deposit that is partly refundable depending on how much notice was given. A veterinary practice needs to know that a nervous dog cannot be scheduled next to the grooming room. Those rules are ordinary within each business, but a general-purpose vendor may not support them.
If neither applies to you, an existing scheduling product is likely the cheaper option.
What running your own costs
Replacing the monthly fee means taking responsibility for hosting, setup, and maintenance. Their cost depends on the skills already available in your business.
Hosting
A small server and managed Postgres may be enough for a business of this size. Unlike per-seat pricing, that cost does not increase directly when you hire another staff member.
Setup
Setup may be quick for someone comfortable deploying an application, but it takes longer without that experience. Developer time can exceed the subscription savings, so include it in the comparison.
Maintenance
Plan for dependency updates, tested backups, and support when the system fails during business hours. Estimate that work before treating the subscription fee as savings.
This trade can make sense when deployment and maintenance skills are already available, or when the custom scheduling rules justify ongoing development costs.
The gap you should know about up front
The scheduling template is an internal calendar. Staff log in and manage appointments. Attendees are members of your organization.
There is no public booking page. The link you send a client so they can pick a slot themselves, the thing Calendly is famous for, is the piece you would build, and it is bigger than a page. The schema stores events and nothing else, so there is no notion of an open slot anywhere in the system. Free time is something you calculate from existing bookings plus rules you write about opening hours, buffers between appointments, and how long each service takes. That calculation is a central part of a booking tool.
What is already built: the calendar with five views, drag-and-drop rescheduling, a working-hours setting, appointments with an organizer and attendees, accounts and organizations so a second location is not a rewrite, an admin app, and Stripe billing if you intend to charge for bookings.
One more thing to know before you plan around it: the calendar endpoints check that you are signed in and in the organization, and nothing more. So a receptionist can delete the owner's appointments today. The roles exist in the starter and the permission strings are there to use, they are just not applied to the calendar routes, which is an implementation task rather than a change to the data model.
This is not "a Calendly you own". It is a working internal calendar with the multi-location problem already solved. You would still need an availability model and a public page to provide self-service booking.
Requirements to plan for
If you build it, review these requirements before estimating the work. Tick the ones your business needs and include them in the cost.
The work that sits on top of a working calendar
- A public booking pageThe template is an internal calendar, so the link a client clicks to pick their own slot is yours. Be warned that it is more than a page: there is no availability model in the schema, only events, so free slots are something you derive from existing bookings plus rules you write about hours, buffers, and service durations.
- RemindersNo-shows are the real cost in an appointment business and reminders are what reduce them. Nothing in the template sends messages, so a provider such as Twilio or Resend is yours to wire up and bill separately. The timing and the wording become your decisions, including what happens when someone replies with the word cancel.
- Timezones for the clientHalf solved. Start and end times are timestamptz, so the instant is stored correctly, but there is no timezone per user and the browser renders in whatever zone it is in. If you book customers in other regions, the display layer and the confirmation email are yours. Avoid storing a local time without its offset, since ambiguous local times are a common source of booking bugs.
- Cancellation windowsFree cancellation up to 24 hours before sounds like one rule and is four: what counts as notice, what happens to a deposit, who can override it, and what the customer sees.
- Deposits and no-show feesThe billing pack handles Stripe subscriptions well. Taking a partial deposit against a future appointment and refunding some of it is a different flow, and one you would write.
- Permissions on the calendarRight now every signed-in member of your organization can create, move, and delete any appointment. For a two-person studio that is fine. For a business with a receptionist, a Saturday temp, and six staff, it is the first thing to change, and the roles you need are already in the starter.
These are product decisions you control when you own the code. If most of this list applies to you, ask a developer to estimate the work and compare that estimate with several years of subscription costs before you commit.
Who this is for
This route fits someone who can deploy and maintain a small application, has scheduling requirements that off-the-shelf tools handle badly, and prefers to store customer data in their own system. In that case, starting from a working calendar removes some initial implementation work.
If those conditions do not apply, a subscription may cost less than your development time.
The $7,200 example is not enough by itself to justify a custom build. Maintenance can erase that saving. A requirement such as booking an instructor, a car, and a test centre in one slot provides a clearer reason when existing products do not support it and the workflow matters to the business.
The calendar and its pack list are below. Weigh them against the checklist above, then against three years of whatever Calendly quotes you.
What is Hype Stack?
Every product starts with the same month of work nobody pays you for: sign-up and login, teams and permissions, taking payments, notifications, an admin panel to run the business. Hype Stack is that month, already built and tested. Start from the free open-source app, add the pieces you need with one command, and keep going on the part that is actually your idea.
Everything lands as real code in your own repository, so there is nothing to rent and nothing anyone can switch off. For the engineers: React 19, Hono, Postgres, and a desktop build, typed end to end.
See it running
Templates are curated project starters built on this stack: a layout, feature packs, a custom theme, and bonus pages. The previews below are recordings of the real apps.
Packs in this stack
Every pack ships real source code: frontend, backend, and admin surfaces where the feature needs them. The ones this stack installs come first; the rest can be composed in later.
Two ways to install features
Same features underneath, different starting point. Either command resolves what the packs depend on, copies the source into your repository, and merges the Prisma schema.
Take a template
A landing page, a design system, a themed layout, and the features already wired into it. Rebrand it, put your product in the middle, ship.
npx @hype-stack/cli template$ hype-stack compose
Compose your own design
Your design and your choices, without rebuilding auth, billing, or notifications. Tick the packs you want and the CLI wires them into the open-source starter.
npx @hype-stack/cli composeQuestions, answered
More stacks
Turn your ideas into
Real applications.
Start free and own every line you ship. When you want more, one All-Access license unlocks every premium pack and template for a year.