Scan for all user's calendar items that are "Out of Office" for public PTO dashboard?
Posted by billygreen23@reddit | sysadmin | View on Reddit | 16 comments
Our smallish company currently has a shared spreadsheet where people have to put their PTO so that everyone can check it and know when people are out. People always forget to put the leave on it. I know there's got to be a better way. I know some people use a public shared calendar. But I would love something even more automated.
Is there something that just checks everyone's calendars for "Out of Office" calendar items and then puts all of that info on some sort of dashboard? Anything like this possible?
OregonTechHead@reddit
Are you sure these people set their OOO in outlook?
This should all be coming from HR and whatever system people are using to request/approve PTO. That should be your source of truth.
Anon_0365Admin@reddit
I would explore whatever system your HR uses for time off requests... nothing is going to be more accurate than that.
If we're talking small company, then graph is probably the best way to do this programmatically.
1nspectorMamba@reddit
yeah it should be a function of the HRIS system.
Anon_0365Admin@reddit
Exactly, IT needs to remember that we ARE allowed to say no and instead of making a janky solution.... create a real one
billygreen23@reddit (OP)
Umm so I just used Claude to basically build and automate exactly what I wanted in an hour. Insane.
sryan2k1@reddit
Many jobs ago we built something like this with the EWS api. Should be doable with Graph easily enough if you know what you're doing.
billygreen23@reddit (OP)
I don't know what I'm doing :) I know a lot of things but absolutely nothing about Graph.
Lando_uk@reddit
Just ask AI, so long as you have permissions it should relatively simple.
improbablyatthegame@reddit
How to end up with an admin and app that’s overly permissive 101.
english-23@reddit
"it says I need global admin"
pmd006@reddit
We use Exchange Online. Our HR staff, in their processing of requests for time off, update a public folder calendar that all staff have access to see.
EngineerInTitle@reddit
This is what I've seen at big and small clients. Create a shared mailbox called pto@contoso.com, tell everyone to CC the mailbox, then give everyone view rights to the calendar.
Mindestiny@reddit
Nobodys gonna really be able to answer that without you telling us what you're using for calendaring to begin with :p
Either way you're looking at a paid solution where that is not the main feature, or writing a custom app.
billygreen23@reddit (OP)
Oops, yeah edited the post with that. Thanks.
Unable-Entrance3110@reddit
We used to use a service called Simple In/Out (https://www.simpleinout.com/) and it worked pretty well. You have several options for automatically signing people in/out like geo-fencing, wifi networks, and bluetooth beacons.
MrYiff@reddit
Getting the list of users is pretty trivial with powershell, you can then dump this to CSV if you needed to then display the results in a different app somewhere.
https://www.alitajran.com/get-users-that-have-out-of-office-enabled-in-exchange/
If you plan to use something like this over the longer term via scheduled task you probably don't want to be embedding usernames and passwords into the script but you can now use app registrations to allow scripts to securely authenticate:
https://learn.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps