Get a Quote

Send us awesome idea of your future software product and we will certainly get back to you in two business days.
+1 (510) 761-5579

Sortedtime Appointment Booking and Event Management

Customer: SortedTime

Type: Web development


Requirements: The project was a software as a service application for small scale businesses such as clinics, spas, and barbershops who wish to sell their time to their clients on per service-type basis. The SAAS web application should have convenient user interface and work properly in all web browsers. It should have support for mobile and tablet devices (this means it should be built with responsive design approach), templates, and should be Search Engine Optimized.

There is also the requirement to make it available in all timezones for users and clients in different timezones. It should also integrate all major payment vendors and systems such as Paypal and Stripe.

Payment integration must support both one-time payment and subscription-based payment system. This means that it must implement Webhooks via REST API so that when user' customer unsubscribes from a service from their payment vendor, the app should be automatically notified to stop the customer from continuing using the service.

It should be integrated with Google calendar so that clients can synchronize their Google calendar with Sortedtime calendar.

The app should support multiple currencies as it is globally available to English speakers


Challenge: The major challenge in this SAAS application is how to store dates and times in the database while displaying them to users from different timezones. Another challenge is how to prevent double-booking in real-time.


Solution: For storage the development team used new Java 8' Time object to convert user's datetime inputs to UTC time before storing in the database. Both the time and timezone offset values are stored in the database. On UI display, the user's timezone is captured using a Javascript API and sent back to the server. The captured timezone is then used to convert stored UTC datetimes from the database before rendering it on the UI.

To prevent double-booking, development team designed the app such that when only service provider's available dates are displayed on the UI and all other dates on the calendar are not selectable. Also during booking confirmation, the user's selected dates are once again matched against stored dates to avoid any clashes.


Results: For service providers that offer their services worldwide, they never had to worry about rendering their calendar in multiple timezones. With the double-booking issue addressed, they don't have worry about calling clients to cancel appointments that clashed with others. This also boosted their clients' confidence in their businesses.


Region: Worldwide

Industry: Lifestyle

Engagement model: Fixed cost model

Technologies: Java, OAuth 2, JavaScript, Ajax, jQuery, Primefaces, HTML5, CSS3, Java Server Faces (JSF 2.2), Tomcat 8, SQL Server 2016, DigitalOcean Linux Virtual Server

Duration: 7 months

Staff: 4 Java EE developers, 2 UI developers, 1 project manager