Hello,
I developed an app using PowerApps for booking a desk at the office. It lets you select the date/time and shows the list of available desks based on region/floor from a SharePoint list and confirms the booking. I now am trying to add a check-in feature that let's you check in to your desk 15min before the desk reservation time and automatically cancels the reservation and makes the desk available to others if check-in doesn't happen 15min after the reserved time.
Any help with this?
PS: My SharePoint site has a list for 'desks available' and 'desk reservations' (got from PowerApps). And PowerApps has a welcome screen, a screen for upcoming reservations (this is where I want the check-in feature) and a various screens to do the booking process.
Thanks
Nikhila
Hi,
I'm trying to implement it, having the same app as the original poster. I was wondering if you could help with a sample solution to his query? - I'm struggling to implement the functionality that allows the user to 'check-in', which lets you check in to your desk 15 minutes before the desk reservation time, and up to 15 minutes after the reservation time. If the user doesn't do it, it would make the desk available again for another user to book (meaning that reservation is now cancelled) or deleted.
I have the same setup as the original poster, I've added the 'check-in' and 'isAvaliable' columns. I would really appreciate it if you could help.
Thank you.
Hi @nikhilab ,
Yes, I recommend that you add a column for check-in and IsAvailable. Because the 15-minute timer function you want to implement is best executed in the cloud with Flow, so that we can use the status of two columns to judge and whether to reserve the reservation after fifteen minutes.
If you use Timer in the app itself, once you close the app or the screen goes to sleep, the timer may stop working.
Besides, you want to use the lookup function for floors and cities, you can add two drop down controls to realize it as below:
1.Add two choice columns in SharePoint list:
Choices(DeskList.Floors)
Filter(
DeskList,
CityDropdown.Selected.Value = "All" Or Cities.Value = CityDropdown.Selected.Value,
FloorDropdown.Selected.Value = "All" Or Floors.Value = FloorDropdown.Selected.Value,
"true" in IsAvaliable
)
4.When you choose “New York” and “Floor Number2”, it will shows as below:
Finally, you would like the check-in option to show under the upcoming reservations as shown below, and the button should be disabled 15min past the booking time and the desk is made available to others.
In my former post, I recommend to use Flow to realize this requirement. You can use the column of “Check-in” to judge whether make this reserved desk available after 15min past the booking time.
Hope it helps!
Thanks,
Arrow
Hello Arrow,
Thank you for the help.
I do not have a 'check-in' column on the SharePoint site. A would prefer a 'check-in' button on PowerApps. Do you recommend that I add a column for check-in and IsAvailable?
Adding a little more information for a better understanding :
This is how the SharePoint lists look like, desk reservations is automatically generated and I am using the lookup function for floors and cities:
And I would like the check-in option to show under the upcoming reservations as shown below, and the button should be disabled 15min past the booking time and the desk is made available to others.
Thanks
Nikhila
Hi @nikhilab ,
Based on your description, may i know how do you check in to your desk in your scenario?
Because i don't know how do you use 'Check in' in your side, here i assume that check-in is a status column in my SharePoint.
Per your description, you want to realize 3 key point in your app.
1. Show the available desks based on the floor, just like below:
|
|
2. Select the data/time of using desk:
|
3. After booking desk, you should check in to your desk 15min before the desk reservation time and automatically cancels the reservation and makes the desk available to others, here you can use powerapps automate to realize it.
For the first point, you should add a dropdown control and set the items property of it to:
["Floor1","Floor2",”…”]
Then you can set the items of gallery which shows the available desks to:
// Dropdown1.SelectedText.Value is the floor which you chose currently, “1-” corresponding floor1.
Switch(Dropdown1.SelectedText.Value,"Floor1",Filter(DeskList,"true" in IsAvaliable,"1-" in Title),"Floor2",Filter(DeskList,"true" in IsAvaliable,"2-" in Title),”Floor3”,…….)
//DeskList is the SharePoint list in my tenant as below:
|
For the second point, firstly, add all the fields from SharePoint List, add an Edit Form.
Then you should add two drop down control besides the Date picker field. One drop-down control is for displaying the Hour and the other one is for displaying the Minutes.
Next, select the Hour drop-down control and apply this below formula on its Items property as:
["00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23"]
Similarly, Select the Minutes drop-down control and apply this below formula on its Items property as:
["00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59"]
Finally, together with the DatePicker control, within one DataCard, then use the following formula to combine the time value with the date value under the Update property of the DataCard control:
DateValue1.SelectedDate + Time(Value(HourDropdown.Selected.Value), Value(MinutesDropdown.Selected.Value), 0)
For the third point, you should use Powerapps automate to time:
|
In the “Delay”, you can set 15 minutes as a timer.
Then you can get the item and put the ID from powerapps here.
Next use condition to judge, Check-in is the status, if you don’t check in your desk 15min before the desk reservation time, the value of IsAvaliable will be update to “No” and it make the desk available to others.
Otherwise, this automate will terminate and you can continue to use this desk.
Finally, you should set the current ID as variable in powerapps:
//here I set the DeskID as variable
You can trigger this Automate to time 15 minutes after booking desks, you can put the Automate here:
|
Besides, you can set the text properties of StartTime and EndTime to :
// Label1.Text is the value of IsAvailable, the formulas aim to clear the date/time if the status of IsAvailable is true.
If("false" in Label1.Text,ThisItem.BookingStartTime,"")
If(false in Label1.Text,ThisItem.BookingEndTime,"")
Hope it helps!
Thanks,
Arrow
WarrenBelz
109
Most Valuable Professional
Michael E. Gernaey
82
Super User 2025 Season 1
MS.Ragavendar
72