Can You See Teams Status History? What Teams Keeps and Admins See
No. Microsoft Teams keeps no status history you can open: people see your current status and a Last seen time, and that is all. Admins get a last activity date per day from usage reports, and a history only exists if someone logs presence through Microsoft Graph. Where each of those lives and how to read it.
On this page
No, Microsoft Teams does not keep a status history that anyone can open. Coworkers see your current status and, when you are Away or Offline, a "Last seen" time. To check how long someone has been away, open a chat with them or their profile card: the header reads, for example, "Away, Last seen 12m ago". Your manager sees the same thing. Admins can see a last activity date for each user in the Teams usage reports, plus daily counts of messages, calls and meetings, but not when you were green, yellow or red during the day. A minute-by-minute status history exists only if your company, or a tool it bought, logs presence through Microsoft Graph as it happens.
Slack works the same way: it shows the current dot and keeps no history of it; see can you see Slack status history.
What each person can see about your Teams status
| Who | Current status | Last seen time | Last activity date | Status history over the day |
|---|---|---|---|---|
| Coworkers | Yes | Yes, when you are Away or Offline | No | No |
| Your manager (no admin role) | Yes | Yes | No | No |
| Teams or Microsoft 365 admin | Yes | Yes | Yes, per day, in usage reports | No |
| An app logging presence through Graph | Yes | No | No | Yes, from the day it starts logging |
So "can my boss see my Teams status history?" has a plain answer: not in Teams. They see what everyone sees. A report from IT can show which days you used Teams and how much, and a presence logger can show the rest, if your company runs one.
Last seen: the only history in the Teams app
When you are Away or Offline, coworkers see "Last seen" with a time, for example "Away, Last seen 12m ago", in a chat header and on your profile card. It is the most recent time any of your devices was active, and it goes away when you turn Available. Teams has no setting that hides it. What does Last seen mean on Teams covers the details.
Your own status changes are not listed anywhere in the app either. Teams does not show you a log of when you went Away.
The presence answer itself has no room for a history. We printed the presence queries from the Teams web client (teams.microsoft.com, 7 October 2026):
#!/usr/bin/env python3
# Download the Teams web client and print the presence query it sends for each person.
import re, urllib.request
UA = {"User-Agent": "Mozilla/5.0 (Macintosh) Chrome/140.0"}
def get(u): return urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=60).read().decode()
html = get("https://teams.microsoft.com/v2/")
url = next(u for u in re.findall(r"https://[^\"'\s]+?/hashed-assets/[^\"'\s]+?\.js", html) if "onecdn" in u and "/async-entry-" in u)
js = get(url)
for q in sorted(set(re.findall(r"(?:query|subscription) \w*Presence\w*\([^)]*\) \{[^}]*lastSeenAt[^}]*\}", js))):
print(q, "\n")
Output:
query ServicesIoDataOfficeIntegrationPresencesQuery($userPresenceRequestArray:[UserPresenceRequest!]!) {presences(userPresenceRequestArray:$userPresenceRequestArray) {id,availability,activity,isOutOfOffice,lastSeenAt}
subscription ServicesIoDataOfficeIntegrationPresenceSubscription($userId:ID!,$source:PresenceSource!) {presenceUpdateEvent(userId:$userId,source:$source) {id,availability,activity,isOutOfOffice,lastSeenAt}
Each answer holds five fields: id, availability, activity, isOutOfOffice and lastSeenAt. That is one current status and one timestamp. Anything older than the last change exists only if something recorded these answers as they came in.
Teams last active date: the admin reports
Admins find a last activity date in two places:
- Teams admin center > Analytics & reports > Usage reports > Teams user activity.
- Microsoft 365 admin center > Reports > Usage > Microsoft Teams > User activity.
For each user they show the last activity date and counts for the chosen period (7, 30, 90 or 180 days): chat messages, channel messages, calls, meetings joined and time in audio, video and screen sharing. The date is a day, not a time, and the reports run a day or two behind. They do not show status changes, Away periods or when you signed in.
Sign-in times are a separate log. Microsoft Entra ID sign-in logs record each time a Teams client signs in, with time, device and location. That shows when a device started a session, not how long you stayed Available. What else IT can see is in does Microsoft Teams track your activity.
How a Teams presence report is built
Microsoft Graph gives the current presence of a user, never the past:
GET https://graph.microsoft.com/v1.0/users/{user-id}/presence
{ "availability": "Away", "activity": "Away" }
To get a history, an app reads that value on a timer, or subscribes to presence change notifications, and stores each change with a timestamp. It needs the Presence.Read.All permission, which an admin grants. Commercial tools that sell Teams presence reports and "time in status" dashboards work this way. An admin can build a rough version in PowerShell:
# log one user's Teams presence every 5 minutes to a CSV
Connect-MgGraph -Scopes "Presence.Read.All"
$userId = "<user object id>"
while ($true) {
$p = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/v1.0/users/$userId/presence"
"{0},{1},{2}" -f (Get-Date -Format s), $p.availability, $p.activity | Add-Content presence-log.csv
Start-Sleep -Seconds 300
}
Two limits follow from how it works. A logger sees only the time after it starts, so there is no way to recover last week's statuses. And it records presence, not work: Away means no input for about 5 minutes, which covers reading, a call on your phone and thinking at a whiteboard.
How to check if your company logs Teams presence
If your concern is looking away while you work, remember what feeds the status. Teams on a computer goes Away after about 5 minutes without input and immediately on lock. With several devices signed in, the most available one wins, as shown in Teams status on multiple devices.
Related Articles
Teams Status Stuck on Busy? 6 Causes and How to Fix Each
A Teams status stuck on Busy, In a meeting or In a call usually has one of four causes: a Busy you set by hand, which lasts a full day; an Outlook event marked Show as Busy; a call still running on your phone or in a browser tab; or a meeting window you never left. How to find which one, the fix for each, and what to try when nothing works.
How to See When Someone Was Last Active on Google Chat
You can't. Google Chat has no last seen or last active time. It shows only whether someone is active now, idle for 5 minutes on a computer, or away, and in direct messages it shows how far they have read. The clues you can use, what each one proves, and what Workspace admins see that coworkers do not.
How to Appear Offline on Zoom (There Is No Invisible Status)
Zoom has no Appear offline or Invisible status. Your contacts see Offline only when you are not signed in to any Zoom app, so the way to appear offline is to quit the desktop app and sign out of the mobile app. The steps for each device, what to use when you need to stay signed in, and what your admin can hide.