Maybe this add-on will do the job for you out-of-the-box: Products.PloneBooking 3.1.1 for Plone 5 and 4.3 available
Give each bike an unique id (e.g number 1,2,...10). Add these bikes as bookable objects. Each object can be booked once for a certain time-slot. A time-slot can be 1 hour or 1 week or 1 month or wathever you want. You can use workflow to submit an email to the subscriber when an new time-slot is added, changed or deleted. Only available (non-booked) objects will appear in a pop-up in the calendar to be selected by the user. People need to fill-in name, email, title and phonenumber plus optional a comment field. Of course that can be changed.
We (large internal company ~100.000 empl)oyees use it in Plone 18.104.22.168 to book unique demo centers and its resources. Now in production for over 2 years without any issue.
I got it also working and tested it to run on Plone 5. We have too much add-ons which are not yet ported to Plone 5 and that is why we do not use Plone 5.
You can book directly your bikes in a calendar and see which bikes are booked (like the outlook calendar for meetings). You can decide (configure) that people make a booking to be confirmed by an authorised person or just allow an automatic booking (so no need to give an okay). Users can see in the calender if a booking for the object (a bike) is pending (to be confirmed) as the timeslot is then orange, when the color is green it means that the booking is definitely confirmed so booked/occupied.
Any amount of uniquely bookable objects/resources can be defined whether they are bikes, rooms, beamers or cars... You can group these objects in object types and/or categories if you want and use this as filters.
Example with drop down boxes which appear when defined and they act as filters for the bookable objects:
Select object types: transport vehicles, rooms
Select categories: car, bike, moped (when type transport vehicles was selected in previous filter types)
Select categories: meeting room, diner room, chat room (when type rooms was selected in previous filter types)
Calendar can be shown in day, week and month view and there is also a listing view which includes also an year overview
Calendar can be shown default in month view or week or day (configurablel). The bookable time period can be set for example only bikes can be booked between 7-18:00 hrs.
The booking is even repeatable. For example book this bike with number 5 for a week and repeat that periodically til a certain end date (for example til end of next year every month the first week of the month)
You can export the bookings in CSV format. Clean-up functions are available to delete old entries E.g older than 6 months or 12 months. This is a flexible parameter and function is invoked manually by the administrator.
Hope this helps. PloneFormGen does not help you with the complexities of the date/time handling and to avoid double bookings etc. This is a much safer bet.