JetBooking Hourly Booking: Charge by the Day, Block by the Hour

In JetBooking, hourly booking controls availability, not pricing. Keep your daily price and set the Booking period to Per Night. Then turn on Timepicker and Timepicker restrictions under Bookings > Settings > Schedule (JetBooking 3.7.0 or later). The pickup and return hours then decide which time slots are blocked, so a car returned in the morning should become bookable again later that day, after the Buffer Time. Step 4 shows how to confirm this in your version.
- Why a JetBooking rental blocks the whole return day
- What you need
- Step 1: Set the booking period to Per Night
- Step 2: Turn on the JetBooking timepicker and its restrictions
- Step 3: Show the time picker to customers
- Step 4: Test it with two bookings on the same day
- How the price is counted, and what JetBooking won't do
- When to use JetAppointment instead
- Troubleshooting
Why a JetBooking rental blocks the whole return day
JetBooking checks availability by date. The Booking period setting in Bookings > Settings > Configuration has two options:
- Per Day (last booked day is included): a rental from the 10th to the 11th occupies both dates. The 11th counts as booked even if the car is back at 9:00.
- Per Night (last booked day is not included): the return date isn't counted as booked. On its own, though, Per Night still knows nothing about hours.
Hours only come into play with the time picker. JetBooking 3.7.0 (3 April 2025) added Timepicker functionality. Since that release, check-in and check-out times are saved in the database with each booking, which answered the check-in/check-out times request on Crocoblock's suggestions board. Older versions don't store times, so availability has no hours to work with.
What you need
- JetBooking 3.7.0 or later. Earlier versions have no Timepicker settings. We recommend 4.1.2 or later, because that release fixed how timepicker values are handled in booking summaries, macros and the REST booking list.
- Your Booking mode, set in Bookings > Settings > General:
- Plain: you choose a post type for the items people book (the Booking instance post type, for example your cars). Bookings are listed in JetBooking's Bookings table.
- WooCommerce based: bookings go through WooCommerce, and this mode adds its own Field Settings tab.
- Plain mode: a booking form. JetFormBuilder with the Check-in/check-out dates field is one option, and it's what the RentGo template uses. Recent JetBooking versions also include a Booking Form widget in Elementor (a block in Gutenberg, an element in Bricks).
- WooCommerce-based mode: WooCommerce and JetBooking. This mode doesn't use a JetFormBuilder form.
- A builder for the single item or product template: Elementor (Free is enough), the Block editor or Bricks. The RentGo dynamic template already gives you an Elementor single template with a booking form.
The Schedule settings in Step 2 are the same in both modes. Only Step 3 differs.
Step 1: Set the booking period to Per Night
- Go to Bookings > Settings and open the Configuration tab.
- Set Booking period to Per Night (last booked day is not included).
- Consider turning on Allow checkout only days. This toggle is only available with Per Night. When it's on, the first day of an already booked period can be used for check-out only, so one rental can end on the date the next one starts.
- Check Min/Max days. These set the shortest and longest rental you accept.
With Per Night, JetBooking prices the rental per night, counted by date: a pickup on Monday and a return on Tuesday is one night. Treat every rental as at least one night, with pickup on one date and return on a later one.
If you used One day bookings before, note that this option only exists with Per Day. Use Min/Max days to control rental length instead.
Step 2: Turn on the JetBooking timepicker and its restrictions
- In Bookings > Settings, open the Schedule tab. Changes on this tab save automatically.
- Turn on Timepicker. This lets customers choose a time when they book, and it reveals the remaining options.
- Turn on Timepicker restrictions. This is the setting that changes availability. It blocks time slots based on existing bookings and your settings, and it enables the Buffer Time option. Crocoblock notes that it works best with the Per Night booking period from Step 1.
- Set Buffer Time in hours and minutes.
2:00means two hours, which is the default. The system blocks this time before and/or after each booking. Match it to your real turnaround: cleaning, refueling, inspection. - Set Time range to your opening hours, the window in which pickups and returns can happen. If you hand over cars from 07:00, the range must start at 07:00 or earlier.
- Set Time Slot Interval. The default
1:00gives slots like 9:00, 10:00 and 11:00. A shorter interval gives finer handover times.
The picker displays times using Settings > General > Time Format, so set 12-hour or 24-hour time there. The JetBooking dashboard overview describes every option on these tabs.
Step 3: Show the time picker to customers
Plain mode: JetFormBuilder booking form
- Open your booking form in JetFormBuilder and select the Check-in/check-out dates field.
- Use the field's LAYOUT and FIELDS POSITION settings to arrange the date and time inputs, for example pickup and return side by side on desktop.
- On the single item template, place the form with the JetForm widget and pick it under Choose Form. In RentGo, this is the JetThemeCore single template built in Elementor.
- Open a rental item on the front end. The time picker appears next to the date field there. It does not show in the form editor.
Crocoblock's walkthrough for this mode is How to Manage Timepicker for Check-In/Check-Out. To give customers a clear confirmation after they submit, see our guide to a JetFormBuilder success message popup.
Plain mode: Booking Form widget
If you prefer the Booking Form widget (block or element) to JetFormBuilder, place it on the single item template, then open a rental item on the front end and check whether the time picker appears. If it doesn't, use the JetFormBuilder form above.
WooCommerce-based mode
You don't build a JetFormBuilder form in this mode. With WooCommerce active and the Schedule settings from Step 2 in place, the time picker is part of the product's booking fields. If you use a JetWooBuilder Single Product Page template, the picker appears in its Single Add to Cart widget. Open a bookable product on the front end to check it. Since 3.7.1, WooCommerce Booking Mode also lets customers choose the unit they need when booking. Crocoblock covers this mode in How to Manage Timepicker for Check-In/Check-Out in WooCommerce-Based Mode.
Step 4: Test it with two bookings on the same day
Use an item with no other bookings in the coming week. Test in a private browser window so you see what customers see.
- First booking: book day 1 at 07:00 to day 2 at 11:00. Your Time range must include both times.
- Check the saved times: go to Bookings > Bookings and click Edit on the new booking. The edit pop-up should show the pickup and return times, and you can correct them there.
- Second booking: on the front end, start a new booking for the same item with pickup on day 2.
- What to check: first, whether day 2 is still selectable as a pickup date. Then whether morning times before the 11:00 return plus your Buffer Time are refused and later times are offered. The buffer can apply before and/or after a booking, so note the first time your version accepts.
- Submit the second booking at a free afternoon time. Then confirm in Bookings > Bookings that both bookings exist for day 2 with their own times.
Taken times may be hidden or disabled in the picker, and the availability calendar may mark a partly booked day in different ways. Judge the result by which times you can actually choose and submit. If the whole of day 2 is still blocked, see the troubleshooting section below.
How the price is counted, and what JetBooking won't do
Hours change availability, but the price is still counted by date. JetBooking's pricing options are per night or per day, plus weekend, seasonal, length-of-stay and per-person rates. Crocoblock's product page and settings docs list no hourly rate and no late-return option, so don't count on a return later than the pickup time adding a day on its own. Look at the price of your Step 4 test booking to see how your version counts it.
If late returns matter to your business:
- State the rule in the form and in your terms, for example: return by your pickup time or a late fee applies.
- Use the Time range to keep returns within your staffed hours, and charge late returns manually when the item comes back.
- Check whether your version's Booking Data macro offers check-in/check-out time options. If it does, you could use them to show a late-return notice in the form.
- Have a developer build the surcharge. JetBooking 4.1.2 added JS and PHP hooks for booking price control, which a developer can use to add a time-based surcharge on top of the daily price.
For the calculated field side, our tip on using post meta in a JetFormBuilder calculated field shows how to pull the item's rate into the formula.
When to use JetAppointment instead
Crocoblock positions JetBooking for daily reservations and points hourly bookings to JetAppointment. JetAppointment offers fixed slots, time range booking and buffer times, and Crocoblock lists car rental among its hourly rental uses.
- Multi-day rentals priced per day, where hours only matter for handover: use JetBooking with the setup above.
- Same-day rentals sold by duration, such as a car for three hours: use JetAppointment.
Troubleshooting
The whole return date is still blocked
Check the Booking period. With Per Day, the return date counts as a booked day. Switch to Per Night, turn on both Timepicker toggles, then rerun the Step 4 test.
Customers can pick times, but availability doesn't change
The Timepicker toggle only lets customers choose a time. Slot blocking comes from the separate Timepicker restrictions toggle.
Rentals run back to back with no time to clean the car
Raise Buffer Time to cover your turnaround.
Times show in the wrong format (12-hour vs 24-hour)
Change Time Format in Settings > General.
No time picker in the form editor or on the page
In the JetFormBuilder editor this is expected, because the picker only renders on the front end. If the Booking Form widget shows no picker on a live page, switch to a JetFormBuilder form. In WooCommerce-based mode, check the Single Add to Cart widget on a bookable product.
No Timepicker settings, or bookings have no times
Update JetBooking to 3.7.0 or later. That version added the time picker and started saving check-in and check-out times.
Rerun the two-booking test after each JetBooking update, since it shows how your version handles the return day. If you'd rather have someone set this up on your rental site, post a request on BoostMyCroco.
Frequently Asked Questions
Can JetBooking charge by the hour?
Do I need to rebuild my RentGo booking form to get the time picker?
Can I change a customer's pickup or return time after they book?
Does the JetBooking time picker work in WooCommerce-based booking mode?
Should a car rental site use JetBooking or JetAppointment?
This guide answers a question from our community: Implementation hours booking
Sources
- Booking Plugin for WordPress and WooCommerce — JetBooking (crocoblock.com)
- [FEATURE REQUEST] JetBookings, check-in / check-out times with accurate timing · Issue #1597 · Crocoblock/suggestions · GitHub (github.com)
- JetBooking Dashboard Overview — JetBooking (crocoblock.com)
- How to Manage Timepicker for Check-In/Check-Out — JetBooking (crocoblock.com)
- How to Manage Timepicker for Check-In/Check-Out in WooCommerce-Based Mode — JetBooking (crocoblock.com)
- JetAppointment (crocoblock.com)
- [JetBooking] - hourly basis rent · Issue #3935 · Crocoblock/suggestions · GitHub (github.com)
- JetBooking: Add Option for Checkin Dates & Times · Issue #6434 · Crocoblock/suggestions · GitHub (github.com)


