How to model scheduling and appointments

Hello,

I am looking for a way to model scheduling and appointments and I can’t seem to find an optimal way to get 15 days out from a start date the availability of users in a fast way.

These are my requirements:

  • mechanics can set when they are available either by day of week or by specifying a specific day

  • mechanics have to specify what hours they are available

  • mechanics can also have some times already booked

  • customers can setup both a in person (so i want to filter by distance that the mechanic is willing to travel to the customer’s location) or over the phone.

  • customers should be able to schedule a year out

  • i can’t seem to find a way to model this because day of week doesnt hold timezone information

  • i also cant seem to figure out how to best store this data so that i can quickly get all mechanics on say December 2 - 15 from 4-8 PT are available. i honestly just care about the first two days.

Any guidance is greatly appreciated.