Slate is a complete, full-stack appointment booking application in Java. Clients pick a service, a provider and a free time, pay a deposit and add the booking to their calendar; providers keep their hours and time off and connect the calendars they already use; the owner sets the rules, previews what they do to the day and watches the business. The same project serves a salon, a tutor, a personal trainer, a consultancy or a clinic. Use it to build your own booking app with Codename One.
Generate your project · Read the user’s guide · Browse the source
In the Initializr, choose the Slate appointment booking template, set your application name and package, and generate the project. The application source is licensed under MIT-0: you can modify it, use it commercially and keep your changes private without royalties.
What comes with the application?
| Part | Included workflows |
|---|---|
| Client | Choose a service, location and provider or anyone, see free times by the day or the week, mark times that clash with the phone’s calendar, hold a time while booking, pay a deposit, add the booking to the calendar, reschedule, cancel, and join a waitlist when a day is full |
| Provider | A day, week and agenda of bookings, working hours and time off, marking appointments complete or no-show, connecting the phone’s calendars, Google, Microsoft or a published ICS address, and a calendar feed of their own bookings |
| Owner | A dashboard of bookings, revenue and no-shows, the board of the day across providers, services, providers, locations and resources, and booking rules previewed on a real day before they are saved |
| Java backend | A slot engine that checks every provider, resource and the client at once, buffers, daily caps and breaks, travel time between locations, gap rules, bookings that can never overlap, holds, deposits and no-show fees, a waitlist, reminders and calendar sync |
| Shared code | API contracts and data classes shared between the client and server |
The account’s roles decide which screens a person sees. The same client project targets iOS, Android, desktop and the web, and the server runs on SQLite, PostgreSQL, MySQL and MariaDB.

From first run to customization
- Run the project. The development profile needs nothing installed: an in-memory database, a demo salon with two locations, demo accounts for every role, simulated cards and simulated online calendars.
- Try every role. The user’s guide walks through the client, provider and owner screens with the demo accounts.
- Customize and deploy. The implementor’s guide covers the slot engine, holds, the gap rules, calendar sync, deposits and what a business needs before launch.
What does a live business still need?
Slate supplies the connected application and its source. Running a business on it also requires your own hosting, a payment processor, Google and Microsoft API credentials, and provider configuration. The implementor’s guide lists them.
Other full-stack samples
Pulse is a fitness studio, Savor a food-delivery service, Wayline a ride-hailing service and Bastion a security-first bank, all on the same architecture.