Visualizing squashed availability of N-items
I'm trying to squash the availability view of n-items into a single day column in a availability calendar. The use case for this reserving products. We can have n-pieces of any particular product, say bicycles, kayaks, etc. We may have two pieces of an product or three hundred pieces of it.
Because of the possibility of large amounts of reservable items of the same type, we can't use the normal 2D resource calendar where one axis defines the specific resource to be reserved and the other axis defines time. If there's 100 rows of items, it quickly becomes a chore to find a timeframe where 20 pieces of them would be available at the same time.
Before entering our reservation view, users pick how many pieces of the specific product they want. Users can reserve 0-N pieces, where N is the total amount of items we have of a specific product. After that, they're presented with a time/calendar view that has open slots on times where the is enough equipment available. If enough equipment is available, users can reserve the items for one to eight hours.
My problem is, that I don't know how I could visualize the following or similar cases:
Say we have an product. We have two pieces of this product, labeled item A and item B. Item A is reserved from 12:00 to 13.59 and item B is reserved from 14.00 to 15:59. An user wants to reserve 1 piece of item, from 12:00 to 15:59 (but we don't know this). There is technically one item free for the whole desired duration, but it's not the same item for the whole duration.
Can I somehow convey to users that it's possible to rent to from 12:00 to 15:59, but he/she has to switch the item midway? Can I somehow show that if the reservations begins before 14.00, you can only reserve it to 14:00? Is there a better way of visualize squashing the availability of n-items? Should I even try to visualize it?
I could simple force all reservations to prefer item A, leaving item B free for reservation, but this would cause uneven wear in the items on the long run.