Skip to main content
All articles
Explainer

Can you see someone's past Teams status?

Short answer: no. Microsoft Teams does not keep a history of presence, so someone's past status is gone unless something captured it at the time. The colored dot you see (green for available, yellow for away, red for busy, gray for offline) tells you the state right now. It is not a record you can rewind.

If you came here hoping to look up what someone's status was last Tuesday afternoon, this explains why that is not possible after the fact, and what you can do instead going forward.

Why past status is gone

Teams presence is live, not stored. It is computed in the moment from signals like calendar, calls, and recent activity, and it answers exactly one question: is this person reachable right now. Once the moment passes, Teams does not retain the old value anywhere you can query.

That is a design choice, not a setting you can flip on. There is no hidden log, no admin toggle, and no support ticket that recovers a presence timeline that was never recorded.

People often assume the Microsoft 365 admin center can fill the gap. It cannot, at least not for this. The Teams user activity report counts actions: messages sent, meetings attended, calls, days a person was active. It does not record presence status (available, away, busy, offline) over time. So that report can tell you someone used Teams on a given day. It cannot tell you whether they showed as available at 2pm.

The conclusion is simple. To have presence history, something has to capture it as it happens and store it. If nothing was capturing it, the past is unrecoverable.

What you actually can do

You cannot go backward, but you can start a record from today. Presence history only exists if you build it, and there are two practical paths.

Capture it yourself with a script

Microsoft Graph exposes a presence endpoint. You can write a script (PowerShell is common) that reads it on a schedule and writes each result to a file or spreadsheet. From that point on, you have a record.

This is the cheapest way to begin, and for a single short-term question it can be enough. The trade-offs are real:

  • It only samples when it runs. If the machine running it is asleep, there is a gap in your data.
  • You own the storage, the formatting, the charts, and the upkeep.
  • There is no access control, retention policy, or audit trail unless you build each one.
  • It is easy to point at the entire directory by accident, which is the kind of over-collection worth avoiding.

We walk through the script approach and its limits in how to see Teams status history.

Use a tool that polls and stores it for you

The other path is a service that reads the Graph presence API on a regular schedule, stores each change, and turns it into something readable. That is what Presify does.

Presify reads Teams presence through the Microsoft Graph presence API on a short, regular interval, stores each change, and builds presence timelines, online-time trends, and anomaly flags, per person and per team. The record starts when you connect, not before, for the same reason every other option starts then: the data simply did not exist until something captured it.

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.
  • Retention you control. History is trimmed automatically by your plan, and per-user and workspace-wide deletion are built in.
  • Scoped by design. Guests are excluded, and so are users located in the EEA, the UK, Switzerland, or Canada.

Using presence history responsibly

Once you start capturing presence, hold the result in proportion. A timeline shows what someone's status displayed. It does not show why. A long stretch of yellow might mean focused offline work, a calendar quirk, or a laptop left to sleep. The data is a starting point for a conversation, not a verdict on its own.

Two practical habits help. First, tell your team that presence is being kept. People respond better to a measure they know about than to one they discover. Second, look at patterns over time rather than reacting to any single afternoon. That is why Presify anomaly flags always show the math behind them: a flag is an invitation to ask a question, not an answer.

The takeaway

You cannot see someone's past Teams status if nothing recorded it, because Teams keeps no presence history of its own. What you can do is start a record from today, either with a script you maintain or with a tool that polls and stores it for you.

If an ongoing presence record is what you need, see how Presify works, compare the script-versus-tool trade-off, see pricing, or start with one Microsoft sign-in.