Ask a Microsoft 365 backup what it protects and you will usually hear four answers: Exchange mailboxes, OneDrive files, SharePoint document libraries, and Teams channel messages. Those four are the load-bearing walls, and any serious product covers them. But a tenant is more than four workloads, and the gap between "we back up Exchange" and "we back up everything in Exchange" is exactly the gap you fall into on the day you need a restore.
This is an engineering note about the workloads that live in that gap — what they are, why they are commonly skipped, and how we capture each one through Microsoft Graph without installing anything in the tenant.
What "M365 backup" usually means
The common baseline is: full mailbox mail, personal and shared drive files, document libraries, and the messages posted in standard Teams channels. Delta sync keeps it cheap after the first pass, and item-level restore puts a lost file or email back. For a large share of recovery calls, that baseline is enough.
The trouble is that the baseline is defined by what is easy to read from Graph, not by what people actually lose. Calendars, contacts, and the online archive are separate Graph resources from mail. Teams chats are a different API from Teams channels. Microsoft 365 Groups conversations, Planner plans, SharePoint lists and pages, and OneDrive version history each need their own call, their own paging, and their own restore path. Every one of those is a place a backup can quietly stop.
The workloads that get skipped
Calendar, contacts, and the in-place archive. A mailbox is not only its inbox. Recurring meeting series, delegated calendars, the contact list a sales team lives in, and the online (in-place) archive that holds years of moved mail are all first-class Exchange data — and all separate from the messages most tools capture. We back up each as its own object type, so a single calendar event or one contact can come back on its own.
Teams chats — 1:1, group, and meeting. Channel messages are the easy half of Teams. The conversations people actually have all day are the chats, and they sit behind a different Graph surface with different permissions. We enumerate chats per licensed user and capture their messages alongside the channel content.
Microsoft 365 Groups conversations and Planner. The group mailbox conversation thread and the Planner board attached to a Team are real work product that vanishes with the Group. We capture group conversations and Planner plans and tasks.
SharePoint lists, pages, and subsites. A document library is one part of a site. Custom lists — the registers, trackers, and lightweight apps teams build on SharePoint — plus site pages and subsites carry structure and data that a library-only backup misses. We keep them.
OneDrive and SharePoint version history and permissions. The last-good version of an overwritten file only helps if it was retained, and a restore that drops the sharing permissions creates a security problem while solving a data one. We keep version history and item permissions so a restore lands whole.
Why the gaps hurt at restore time
The native recycle bins in Microsoft 365 are operational conveniences with short, fixed windows — measured in weeks, not years — and they were never designed to be evidence. The moment a deletion ages past that window, or a departed user is removed, or someone empties the bin, the only copy is whatever your backup happened to capture.
If the backup captured mailboxes but not calendars, the recurring board meeting series is gone. If it captured channel messages but not chats, the conversation that settled a dispute is gone. If it captured files but not the version before the bad save, the good version is gone. None of these show up in a coverage checkbox that just says "Exchange ✓, Teams ✓." They show up on the recovery call.
How we capture them — agentless, delta-first
Every workload is read through Microsoft Graph after a one-time admin-consent connection — there is no agent in the tenant and no password stored. After the first full baseline, each workload syncs by delta: only what changed moves, and the sync cursor is persisted, so Graph throttling or an outage pauses the stream instead of restarting it.
What lands is deduplicated in a content-addressable store and encrypted with the tenant's own key before it is written, and every backup, restore, and retention action is recorded on a tamper-evident, hash-chained audit ledger. Each item — a calendar event, a contact, a chat message, a list item — is addressable on its own, which is what makes a single-item restore possible rather than an all-or-nothing rollback.
Teams chats hosted in another organisation's tenant — the external meeting threads you get invited to — cannot be read by a tenant-scoped connector. Microsoft governs those messages under the organiser's tenant, not yours. We report them as such rather than counting them as captured, because a backup that silently skips data is worse than one that tells you where its edges are.
The point
Coverage is not a single checkbox per workload; it is a long list of object types inside each one. The difference between a backup that protects "Microsoft 365" and one that protects the specific thing a person lost is measured in those object types — calendars, contacts, archives, chats, Group conversations, Planner, lists, pages, versions, permissions — and in whether the product is honest about the few it genuinely cannot reach.