The client needed to replace a phone-, email-, and spreadsheet-based reservation process with online self-service booking for public, school, and industry tours. The module had to show current availability, support recurring schedules and one-off exceptions, account for holidays and operational closures, prevent conflicts between linked tours, and let staff manage routine changes in Kentico.
In the first six months, the module processed more than 500 bookings. No double-bookings were reported during the first 60 days. Booking analytics showed an average completion time of 1 minute 48 seconds, while the operations team estimated that administration time fell by 70%.
The client operates a regional recycling and resource recovery facility in Australia. Its education program serves around 3,000 visitors per year through four tour types for schools, community groups, industry partners, and public agencies.
Tour availability depended on staffing, shared spaces, group capacity, operating hours, closures, and relationships between sessions. Booking one tour could make another unavailable during the same period.
The organization wanted to extend its Kentico website rather than add a separate booking product.
“The new system removed most of the back-and-forth from tour bookings. Our team can now manage closures and schedule changes directly, and visitors receive confirmation immediately.” — Operations Manager, Australian recycling facility
Before the project, every reservation required staff involvement. A typical request generated two to four emails, and busy periods required up to 12 hours of administrative work each week.
A standard calendar could display recurring sessions, but not reliably handle shared resources, linked tours, closures, capacity rules, and one-off exceptions. Staff still had to determine whether a requested session was genuinely available.
The client selected Bits Orchestra for its experience extending Kentico platforms with custom .NET workflows. Bits Orchestra is a Kentico Bronze Partner with 10 Kentico-certified developers and five Kentico project awards.
Rather than recommending a replatform or separate booking product, the team designed the module around the client’s existing website and operational rules.
Bits Orchestra built a custom booking module with three connected components:
a public booking flow;
a Kentico administration interface;
a rules-based .NET scheduling service.
Administrators could manage recurring tours, capacity limits, holidays, closures, and dependencies between sessions. The system generated bookable tour occurrences from these rules and stored reservations and exceptions separately.
Visitors could view available sessions, enter attendee details, and submit a reservation online. Availability was checked again at submission. Database constraints prevented duplicate bookings for the same occurrence, while dependency checks blocked conflicts between linked tours.
The project began with two discovery workshops covering recurrence patterns, exceptions, shared resources, visitor data, and common booking errors.
A clickable prototype was tested with six staff members and eight pilot users. Development was completed across four two-week sprints.
QA covered more than 60 scenarios, including:
simultaneous booking attempts;
linked-tour conflicts;
holiday and weather closures;
capacity limits;
failed email delivery;
schedule changes affecting existing reservations.
The module was developed as a custom Kentico 12 extension with:
a .NET service layer for scheduling and booking validation;
server-side validation, CSRF protection, and CAPTCHA;
role-based access to bookings and scheduling controls;
audit logging for schedule changes;
Azure App Service and SQL Server hosting;
Azure DevOps pipelines across development, staging, and production;
Application Insights monitoring for booking and notification failures.
The release included rollback planning and two weeks of post-launch support.
Area | Before | After |
Booking intake | Phone and email | Online self-service |
Availability | Confirmed manually | Displayed online |
| Schedule management | Spreadsheets | Managed in Kentico |
Closures | Checked per request | Applied through rules |
| Linked tours | Cross-checked manually | Conflicts blocked automatically |
| Confirmations | Sent manually | Sent automatically |
Records | Distributed spreadsheets | Centralized booking data |
A project manager, backend developer, frontend developer, QA/DevOps engineer, and client operations lead delivered the project.
The facility moved tour reservations online through its existing website. Visitors could view available sessions, submit group details, and receive confirmation without waiting for staff, while operations staff managed schedules, capacity limits, closures, and exceptions directly in Kentico.
The project shows how custom booking logic can extend an existing platform when off-the-shelf tools cannot support shared resources, linked sessions, capacity rules, and operational exceptions. The same approach can support attractions, guided experiences, facility visits, educational programs, and travel portals with complex availability requirements.
.webp)
Client:
Company type:
Country:
Timeline:
Solution:
Services: