A clinic booking system in Nepal earns its keep when reception can place a patient into a slot in under thirty seconds, without opening a second screen. That means walk-ins, phone calls and Nepali-language SMS reminders all writing to one live calendar — and a front desk that trusts the software more than the paper register sitting beside it.
Key Takeaways
- Reception abandons a booking system for three reasons: too many clicks, no override for real exceptions, and a search slower than flipping a page.
- The patient record, not the calendar, is the hard part. Repeat visits and duplicate phone numbers break first.
- Double booking is a database problem. A unique constraint on doctor and start time is the only guard that holds.
- Nepal Time is UTC+05:45. Store UTC, render NPT once, and never let the browser decide the offset.
- Run the paper book and the system in parallel for at least two weeks before retiring either.
- SMS cuts no-shows more than any other feature, and fails silently more often than any other feature.
- Build or buy is a question about who maintains it in year three, not about the first release.
What makes a clinic booking system different from a generic appointment app?
A clinic booking system carries three things a generic appointment app does not: a live shared calendar per doctor, a patient record that survives repeat visits, and a walk-in queue for people standing at the desk. Generic tools assume one booker per calendar and always-on internet. A busy OPD assumes neither.
The moment two receptionists, a doctor's assistant and a phone line all write to the same schedule, you have a concurrency problem. Calendar apps hide it until a busy Monday, when two patients hold the same 10:15 slot and one is already sitting in the corridor.
Why does reception abandon a new booking system?
Reception abandons a booking system when it makes the common case slower. If registering a walk-in takes eleven clicks instead of one line in a register, staff keep a private notebook and use the system only when a manager is watching. Adoption is a workflow problem, not a training problem.
Three things kill it in practice. The search box needs a full name before it returns anything, so the receptionist scrolls instead. There is no way to override a slot for a patient who travelled four hours, so that booking happens off-system and the calendar is wrong. And the printed slip takes longer than writing on a card.
We have watched a clinic quietly revert to paper within a month while the licence kept renewing in the background. The pattern is common enough that we wrote separately about why staff stop using a new system — the short version is that the software has to win on the busiest hour of the busiest day, not in a quiet demo.
When does a clinic actually need one — and when is a paper book fine?
A single-doctor clinic seeing twenty patients a day can run on a paper register and a phone. You need software when two or more doctors share a desk, when no-shows hurt revenue, when patients expect confirmation, or when you cannot answer "how many follow-ups did we see last month" without counting pages.
The tipping points are concrete: a second doctor, a second branch, a specialist whose slots are worth more than the receptionist's time, or a desk that spends an hour a day on reminder calls. Any one of those makes the case.
If you are still weighing whether online booking is worth it at all, the framework in whether your business needs an online booking system applies to clinics too. Booking systems rarely fail because the software is bad. They fail because nobody owned the transition.
How does the system actually work under the hood?
The core is a slots table in Postgres with a unique constraint on doctor and start time, so the database rejects a duplicate even if two people click at the same moment. Redis holds short-lived locks while a patient is being registered, and a background worker drains an SMS queue for reminders.
The flow is deliberately boring. The API checks availability, takes a short lock, writes the appointment inside a transaction, releases the lock, and returns a confirmation ID. If the transaction fails, the lock expires and the slot returns to the pool. Nothing depends on the browser staying open.
The unique constraint is the part people skip, and it is the one part you cannot skip. A read-then-write check in application code is a race condition with a friendly name. Postgres enforces the rule for you if you let it — the documentation on unique constraints covers the exact behaviour, including how NULLs are treated.
Setting it up: the rollout sequence that keeps the front desk open
Roll out in phases: shadow the desk first, then pilot with one doctor, then run paper and system side by side. The goal is to keep the front desk working every day of the transition, because a clinic that cannot book patients for one morning will abandon the project for good.
- Watch before you build. Sit at the desk for a week and count how bookings actually arrive.
- Model the data. Doctors, branches, services, patients, slots, appointments. Key patient identity on a normalised phone number.
- Build the smallest useful desk screen. Search, book, reschedule, cancel, mark arrived. Everything else is secondary.
- Import the existing register. Even active follow-ups alone make the first week feel familiar.
- Pilot with one doctor and one receptionist. Fix the three loudest complaints before widening it.
- Run both systems in parallel for two weeks — the trade-offs are covered in running a new system alongside the old one.
- Retire the paper book only after a parallel week produces no discrepancies, and keep a printed day sheet for outages.
Deploy the application in a container so the environment is reproducible and a rollback is a tag change rather than a rebuild. Docker's own documentation is the place to start if your team has not shipped that way before. Test the rollback path before you need it, not during an incident.
Which configuration decisions actually matter?
The settings that matter are slot length, overbooking rules, who may override, and reminder timing. A fifteen-minute default is wrong for a specialist OPD; a two-hour reminder is wrong for a patient travelling in from outside the valley. Get these four right and the rest is cosmetic.
Slot length drives everything downstream. Too short and the doctor runs permanently late, which makes the calendar a lie. Too long and you waste capacity. Most clinics settle on a base slot plus a longer first-visit slot, then leave it alone for a quarter before tuning.
How do you verify the system is actually being used?
Measure three things: the share of appointments created in the system rather than found on paper, the median time to register a walk-in, and the confirmed-to-no-show ratio. If the first number stops climbing after week two, you have a workflow problem rather than a software problem.
Watch these signals:
- Appointments created after 7pm, which usually means back-filling the next morning.
- Duplicate patient records appearing under the same phone number.
- Override counts per receptionist — one person doing all of them is a training gap.
- SMS queue depth and send failures, which should sit near zero outside gateway incidents.
- Slots that go empty with no matching cancellation in the log.
Failure modes: what breaks first, and how do you debug it?
The failures you will actually see are double bookings from a missing constraint, SMS stuck behind a dead gateway, slots shifting by 5:45 because something rendered UTC as local time, and a printer driver that blocks the whole page. Each has a different first check.
Double booking. Check the database before the interface. Without a unique index on doctor and start time, no amount of front-end validation holds under two simultaneous clicks.
Missing reminders. Look at queue depth before the gateway. A worker that died at 6am looks identical to a gateway outage from the reception desk.
Slots off by 45 minutes. Nepal is UTC+05:45, not a whole-hour offset, and that breaks assumptions in more code than you would expect. Store UTC, convert once at the edge.
What does it cost to run, and who maintains it?
Recurring cost comes from SMS volume, hosting size, and the engineer time to keep it healthy. Infrastructure is usually the smaller line: a modest server, a managed database, a backup target. The larger line is the person who answers when the desk is busy.
Cloud pricing shifts and varies by region, so confirm current numbers with the provider's own calculator rather than a figure from an article. What you control is shape — fewer environments, smaller instances, retention limits on old messages, and a backup you have actually restored from once.
Security and patient data
Treat the appointment database as clinical data even though it feels administrative. A name, phone number and visit history is enough to identify someone, and in a small community that is sensitive. Role-based access, encrypted backups and a login tied to a named person are the baseline.
Concretely: no shared reception login, no patient detail in SMS beyond the minimum, audit logs on record edits, and a written rule for what happens when a staff member leaves. Offboarding is where small clinics leak most often.
Common mistakes
Most failures come from a short list, and every item is cheaper to avoid in the first week of planning than in the sixth month of operation.
- Building the calendar and forgetting the patient record.
- Letting reception keep a parallel notebook "just in case" past the pilot.
- No override path, so staff invent one outside the system.
- Storing local time instead of UTC.
- Assuming the internet is always up — plan a printed fallback day sheet.
- Importing the paper register once and never reconciling it again.
A realistic scenario
A two-doctor dental clinic had a paper register, one shared mobile number, and one receptionist. No-shows were the pain: afternoon slots went unfilled and nobody could say which patients had been reminded.
The first version did one thing — book, reschedule, and send an SMS the evening before. The parallel run lasted two weeks and surfaced one real bug: appointments booked at 09:15 rendered as 09:00 on an older desktop because the browser held a stale timezone offset.
Six months on, the register is gone and the reminder goes out automatically. The receptionist's main complaint now is that she wants a second SMS for follow-ups. That is the right kind of complaint — it means the system became part of the work rather than a tax on it.
Build, buy, or adapt something you already have?
Off-the-shelf booking tools are faster to start and cheaper to trial, but they rarely model multi-doctor OPD slots, Nepali SMS or a walk-in queue. Custom software fits the workflow exactly and costs more to build and keep. A CMS plugin sits between the two and outgrows you quickly.
| Option | Best when | Main trade-off |
|---|---|---|
| Off-the-shelf booking tool | One or two practitioners, simple slots, English-only reminders | Limited override rules, data lives with the vendor |
| Custom web application | Multiple doctors or branches, Nepali SMS, walk-in queue | Higher build and maintenance effort |
| Mobile app plus web admin | Patients book on phones more than by phone call | Two things to maintain, app store review cycles |
| Keep the paper register | Single doctor, low volume, no-show cost is small | No data, no reminders, no reporting |
If you go custom, the real question is who maintains it in year three. Our team builds these as ordinary web applications in your own accounts and repositories, so your next developer can pick them up — the same approach described under software development services in Nepal, with the shape of past work in our portfolio.
In short
A clinic booking system succeeds or fails at the front desk, not in the architecture review. Keep the common case fast, let reception override with an audit trail, store time in UTC, and run paper alongside the system long enough that nobody is guessing. Do that and adoption takes care of itself.
People also search for
- Does my clinic need an online booking system?
- Why staff won't use the new system
- Running the old and new systems in parallel
- Custom software vs off-the-shelf
- Planning a legacy system replacement
- Training staff on a new system
- Writing a manual for an internal system
If you are planning a clinic booking system in Nepal and want a plan before a build, our team can help you scope it, pilot it with one doctor, and hand over something your own staff can run. Talk to us about your front desk — we will tell you honestly whether you need software yet.












0 comments
Be the first to share your thoughts.
Leave a comment
Replying to — cancel