Allowing appointments to start every 30 minutes

Hello. I have my services set for the following: 90 minute service, 120 min service, 180 min service.

I want users to be able to select starting times at intervals of 30 minutes throughout the 10am to 10pm working day.

When a user selects 2 hrs (for example) they only get 10am, 12pm, 2pm, 4pm, 6pm, and 8pm as a starting option.

What if someone whats to start at 1130???? Apparently the system breaks my day up equally bewteen the appointment time I select.

Can you help me with this?