I highlight my Desk Reservation system template built in Power Apps. This is a mobile based app that lets you book a desk and/or office space and keep track of your reservations. This template could be used for many different scenarios like:
🖥 Reserving Desks
🏢 Reserving Conference Room
🏫 Booking appointments with a professor or manager
💇 Salon appointments Many more!
I've updated the template with the following bug fixes and new features:
✅ Fixed time zones issues
✅ Optimized time dropdowns with the sequence function
✅ Cleared out selected to fix caching issues
✅ Added functionality to manage desks in app
✅ Added the ability to restrict the calendar to only allow bookings within a given range
Download this template from the PnP Power Platform Sample Browser here: https://github.com/pnp/powerapps-samples/tree/main/samples/DeskReservation
watch?v=JgvQjQsJa80
Hi @Anonymous ,
I see the source still available : https://github.com/aprildunnam/PowerApps/tree/master/DeskReservation/solution
Thank you,
That link works - I shall take a look!
Fab thanks, I tried modified this app to be a Carbooking (vehicles and drivers), Vehicle is desk while Driver is professor.
1. If I add professor in Desks list, I will able to tick at once but record in Desk Reservation will create two rows.
2. I'm thinking of adding a Professor page after SelectDesk page but unable to locate the varriabe name "SelectedDesk" to duplicate for "SelectedProffessor" to concat the processor name to new column name ProfessorText next to DeskText in Desk Reservation list.
Thank you.
Yes I am encountering the same behavior,
Desk will blocked for the whole day. Can we make Desk available just after the early reservation's end-time?
Hi @aprildunnam ;
For this function :
----------------------------
```
Filter(Desk;Not(Title in Filter(
Desk_Reservations;
startTime >= Min(CheckOutFrom;CheckOutTo) && startTime <= Max(CheckOutFrom;CheckOutTo) || endTime >= Min(CheckOutFrom;CheckOutTo) && endTime <= Max(CheckOutFrom;CheckOutTo) ||
startTime <= Min(CheckOutFrom;CheckOutTo) && startTime <= Max(CheckOutFrom;CheckOutTo) || endTime <= Min(CheckOutFrom;CheckOutTo) && endTime >= Max(CheckOutFrom;CheckOutTo)
).DeskText))
```
------------------------------
Desk 1 booked 9am to 11am
If I Try :
1. 9am to 10am : OK Desk 1 isn't available.
2. 9am to 12pm : OK Desk 1 isn't available.
3. 9am to 1pm : OK Desk 1 isn't available.
4. 8am to 9am : OK Desk 1 isn't available.
5. 8am to 10am : OK Desk 1 isn't available.
6. 8am to 11am : OK Desk 1 isn't available.
7. 8am to 12pm : OK Desk 1 isn't available.
> 8. **11am to 12pm : KO Desk 1 isn't available.**
9. 12pm to 1pm : OK Desk 1 is available.
Can you help me with this case (8) please?
Guillaume
Solution :
Filter(
DeskI;
Not(
Title in Filter(
Desk_Reservations;
CheckOutFrom >= startTime && CheckOutTo <= endTime || CheckOutFrom <= endTime && CheckOutTo >= endTime
).DeskText
))
Hi @aprildunnam ,
thanks for the nice template!
Actual i want to use it with two Dataverse tables as Datasource, but ist won't work.
The problem is only one, but essential, thing:
I can't check which rooms are available and which one not.
In Dataverse, the "Book Room" table has a many to many relation to the table "Meeting Room". Now i want to do the same, like Sharepoint lists do: show only the available desks.
FYI: In the Screenshot isn't the "Not()" operator at the moment, so the gallery will show the "not available rooms" ... just for testing...
I can't interpretate the Text "the column can not be used in this context".
Can you help me?
Or is it possible to build a model driven app?
I built also an model driven app, which works fine with both tables. i Can make booking, select the rooms and so on, but a can't check, which one are available and which not, so everytime i can select every room.
Hi there,
I am having an issue with times - if a user books a part day, and the user then wants to book the desk for the remainder of the day - it doesn't show available - what have I done wrong?
Thanks for this fabulous app @aprildunnam !
Hi April,
I have encountered one issue on the app and hope you can help.
Scenario:
User A booked Desk 123 from 2 Oct - 5 Oct, so when User B wants do a booking within this time frame, Desk 123 will not appear.
However when User B do a booking from 2 Oct - 6 Oct, Desk 123 appear as available for booking. This resulted Desk 123 is being booked by both Users on 2 Oct - 5 Oct.
It seems like the app will treat a desk is available when there is an open day slot even though the rest of the days are crashed with duplicate booking.