Drivers Lesson lets a student pick a driving instructor, see which time slots are actually free, book one, and pay for it — with 3DS card verification in the loop. The booking screen looks simple: a calendar, a list of times, a confirm button. Almost none of the actual difficulty is in that UI. It's in deciding, correctly and quickly, which slots to show in the first place.

Three things made this harder than a typical "pick a time" flow:

Instructors set recurring weekly availability, not per-date availability — so "is 3pm on March 14th free" is really a question about a recurring pattern, not a row in a table.

A slot can be blocked by more than one thing at once: an existing booking, an instructor's day off, or an "extra session" a student added on top of their regular package.

Students, instructors, and our backend clock are not all in the same timezone.