Hello, wondering if you store all the existing (even not booked) time slots (e.g., 900 915 | 915 930 | 9:30 - 9:45 | 945 1000) of a plan/event in DB? or you only store the booked slots? which one is the best option in terms of performance. In the former case (when only the details of the plan/events are stored), we need to generate all the corresponding time slots on the fly (when someone wants to see the available times slots for a specific date) by analyzing the plan/event (availability? e.g., Feb 21 - March 21 | Monday-Friday from 900 1700 | Duration of each meeting: 15 minutes), then compare them with booked time slots, and return the list of available/free time slots (for a given date) to the client. In the latter case, I think DB would be much faster but more sparse because you generate all available time slots and store all of them in DB (note that some of the time slots might not be booked at all). Where these time slots for a given date (e.g., Feb 21) are generated, and how they are filtered to find out which ones are booked and which ones are free/available to be booked by a customer/client?