I am wondering if I can make appointment "slots" per day? Can I make this a feature that the admin of the calendar can set via a GUI?
You can take a look at this tutorial:
https://code.daypilot.org/44666/html5-doctor-appointment-scheduling-javascript-php
It uses pre-generated slots that are offered to users for making appointments. Instead of creating a new appointment, it changes properties of an existing record when making a reservation: