How to see Microsoft Teams status history
Microsoft Teams shows you a colored dot next to each person: green for available, yellow for away, red for busy, gray for offline. What it does not show you is history. There is no built-in way to ask "what was this person's status yesterday afternoon," or "how much of last week was this team actually available."
If you are an IT admin who needs that history, here is the honest landscape of your options and what each one can and cannot do.
Why Teams has no built-in history
Teams presence is designed to answer one question in the moment: is this person reachable right now. The status is computed live from calendar, calls, and activity, and it is not stored as a timeline you can query later.
The Microsoft 365 admin center does have a Teams user activity report, but that is a different thing. It counts actions: messages sent, meetings attended, calls, days active. It does not record presence status (available, away, busy, offline) over time. So the admin report tells you that someone used Teams on a given day, not whether they showed as available at 2pm on Tuesday.
To get presence history, something has to capture it as it happens and store it. There are three common ways to do that.
Option 1: A PowerShell script against the Graph presence API
Microsoft Graph exposes a presence endpoint, and you can write a PowerShell script that reads it on a schedule and writes the results to a file or a spreadsheet.
This is the cheapest way to start, and for a one-off question it can be enough. The trade-offs:
- It runs wherever you run it. If your laptop is asleep, it is not sampling.
- You own the storage, the formatting, the charts, and the maintenance.
- There is no access control, retention policy, or audit trail unless you build it.
- It is easy to point at the whole directory by accident, which is exactly the kind of over-collection you usually want to avoid.
If you want to see the script-versus-tool trade-off in detail, we wrote a side-by-side comparison.
Option 2: A real-time presence dashboard
Several tools show a live grid of who is available right now across your tenant. These are useful for a help desk or a front desk, but most of them are real-time only: they answer "who is available now," not "what did availability look like over the last month." Check whether a dashboard actually retains history before you rely on it for trends.
Option 3: A tool that polls and stores the history for you
The category that actually answers the history question is a service that reads the Graph presence API on a regular schedule, stores each change, and turns it into timelines and trends. When you evaluate one, the questions that matter are:
- Is it read-only? It should read presence and basic directory fields, nothing more. No message content, no files, no screenshots.
- Does it need an agent? A Graph-based tool needs a one-time admin consent and no software on anyone's device.
- What does it retain, and can you delete it? Look for a clear retention window and per-user and workspace-wide deletion.
- Who can see it? Role-based access and an audit log matter once more than one person has access.
How Presify does it
Presify is built for exactly this question. It reads Teams presence through the Microsoft Graph presence API on a short, regular interval, stores each change, and turns the result into presence timelines, online-time trends, and anomaly flags, per person and per team.
A few things we are deliberate about:
- Read-only and minimal. Presify reads presence plus the basic directory fields it needs to label and scope users. It never touches message content, chats, calls, files, or calendars.
- No agents. Setup is a one-time, read-only Microsoft admin consent. There is nothing to install on anyone's device.
- Tenant-isolated and US-based. Your data is scoped to your Microsoft tenant and processed on US infrastructure.
- Bounded retention you control. History is trimmed automatically by your plan, and per-user and workspace-wide deletion are built in.
A word on doing this responsibly
Presence history is useful, but it describes what someone's status showed, not why. We treat it as evidence for a conversation, not a verdict, and we recommend telling your team that presence is being kept. Anomaly flags in Presify always show the math behind them for the same reason.
If presence history is something you need on an ongoing basis, see how Presify works, compare plans, or start with one Microsoft sign-in.