Car Rental / booking app

Hey all,

I am thinking about the best workflow to integrate a workflow to book our cars.
So we have several cars in our company and I would like to manage them in glide.
That means when you are on a business event which can be multiple days or also just some hours then you should be able to also choose a car.

What is the best workflow to manage that? So its clear, that I crate a table with all cars and that I refer the car to the event with the check in and check out date… but the difficult thing is the booking itself. So how can I filter just available cars? I would create a separated “log” that shows all car bookings… there i can collect all dates and refere them again to the cars / the car table. (How to collect / show all dates inbetween in a column)

Is this the correct approach? Or do you have a different idea?
My wish would be to be able to add the car as a booked Ressource in the google calendar and also to have this ressource as the data base to check the availability. But that will not be possible right?

Best regards
Andi

Hi Andi,

It’s a challenging problem from what I’ve seen.

Yes, I think you’ve got the right ideas here to have a list of all your cars, and a separate list of all the reservations. You can then relate all the reservations for each car, to the right car. (Probably want to only take current and future ones, to not relate excess data from past reservations.)

The tricky part is then showing what times are available to reserve… or rather, given desired check out and return date times, knowing which cars are available.

I recently worked this out on another app used for service providers to list available appointment times, given the length of a service to be booked. I saw in the forums that one common approach is to take all time, block it into 15 min increments, and essentially mark each time as available or reserved. I didn’t like this approach too much, and instead worked with datetime ranges. Storing reserved times as start and end datetimes, you can then check what start and end dates times conflict, therefor giving you your list of cars available to be booked for desired datetime ranges. I stored the reserved times as an array of these start-end datetimes, and used JS to subtract reserved times from total available times, and list updated available times. It should be a little simpler than my appointment app, because you just have to check if a range conflicts, rather than listing all available booking times. It’s still a pretty complicated feature compared to most things on glide, but once complete, I really love the elegance!

Let me know if this gets you on the right track!
Matthew

1 Like

I got busy last night out of curiosity for what I could create for this in a short period. Short period is relative I suppose, but I’m happy with what I came up with! I created a template that I’d be happy to share with you… waiting on it to be reviewed. Here are screen shots.







2 Likes

Hey, so in general I think it looks already great. In your app you click on the car, then select the dates and so on right? In my app I will plan a meeting and select the dates there and then I add an available car… so as in your screenshot from 02:37 it should / could directly show available cars to choose. What do you think= The only difficult thing is the availability right? How you solved that in the database?

1 Like

That’s how it’s working already… in the two screenshots at 2:36, the pick-up and return datetimes are entered. Then on 2:37 screen shot, it’s listing all vehicles available for that range of datetimes (and below that, lists all the unavailable vehicles.) User then selects one of the available vehicles, and books it.

I just made it in such a way that it’s adaptive in the case of a user wanting to pick a specific vehicle, and then see when it’s available. Sometimes (in your case) the dates are first priority, and vehicle is second priority. In other cases, where the items are more specific (or in your case, if say a cargo van or truck was needed to move something) perhaps the user wants to pick the item first, and then find a time it’s available. This app works for both cases :slight_smile:

You’re right that the hard part is the availability. The rest is just UI/UX design flow. To do this, I convert the inputted date and time for pickup and return, to a start-end datetime array. I store all reserved times as an array of these arrays. To check availability, I check if the desired start-end datetime array, overlaps with any of the already reserved arrays.

1 Like

Hi @MatthewS, I’m currently working on this exact model app for a car rental company, where a user enters pickup and drop-off date/time, then on search, they can see all available cars within that time slot. I’ve been cracking my brains trying to figure out how to do that.

Can you please explain to me how you structured the data to make this work?

Or perhaps you can share a copy of this project, so I can inspect it myself?

Thanks :pray:

Hi Airon,

A bit back, I cleaned up the app shown above and submitted it to the template store, where of course you could use it. It is listed for $50. I can provide a video demo of the app if you’re considering purchasing it. This would work well for you… you’d just need to manage privacy to not allow other users to have access to each others’ accounts or reservation info. Glide Templates | Company vehicle reservations | Create a No Code App

As for how it’s structured… it’s both complicated and very simple :stuck_out_tongue: It’s complicated to create the first time, and to explain, but it’s a clean solution that works much better than solutions I’ve seen others use. It’s all done with datetime tuples, storing each reservation as a range. Most other solutions try to increment all time. I explained this a little more in my comment on May 24.

Hope that helps!

1 Like