Skip to content

M365 Deprecation Timeline β€” Build Documentation

Project Status: βœ… Live (v2 β€” 10 UX improvements)

Tool #8 in the Free Tools collection on aguidetocloud.com
Started: April 12, 2026
Accent Colour: Crimson #DC2626
Pipeline Repo: C:\ssClawy\m365-deprecation-timeline (local, GitHub repo pending)
Live URL: aguidetocloud.com/deprecation-timeline/


🎯 What Is This Tool?

An interactive visual timeline of every Microsoft 365 deprecation, retirement, end-of-support, and breaking change β€” with urgency scoring, migration guidance, countdown timers, and smart filtering. Think of it as a "doomsday clock for your M365 environment" that tells admins exactly what's dying, when, and what to do about it.

URL: aguidetocloud.com/deprecation-timeline/


βœ… What's Built (Current State)

Tech Stack

Component Details
Frontend Hugo template + vanilla JS + CSS
Data 52 curated items in data/deprecations.json
Pipeline scripts/generate_data.py β†’ latest.json + stats.json + feed.xml
Hosting Azure Static Web App (same as main site)
CSS static/css/deptime.css β€” crimson #DC2626, .deptime-* namespace
JS static/js/deptime.js (~25KB)
Body class page-deptime
SWA cache /data/deprecation-timeline/* β†’ max-age=1800

Features (v2 β€” 16 features)

# Feature Details
1 Clickable stat cards Click urgency count β†’ filters grid
2 Critical banner Pulsing 🚨 numbered list of all critical items
3 Monthly summary "What's happening" β€” this month + next month
4 Timeline view (default) Month-grouped, urgency-coloured, clickable items
5 Grid view Card grid with urgency sidebar bars
6 5 filter dropdowns Category, urgency, type, impact, sort
7 Action Required pill ⚑ toggle to show only actionable items
8 Show/hide passed Hidden by default, toggle to reveal
9 Full-text search Titles, MC IDs, services, tags
10 Detail modal Migration guidance, official links, share button
11 Deep-links ?item=dep-xxx opens modal directly
12 Share button Copy shareable link per item
13 CSV export Download filtered list
14 RSS feed /data/deprecation-timeline/feed.xml
15 Mobile filter drawer Collapses behind βš™οΈ button
16 Keyboard shortcuts / search, c critical, w warning, g/t views

Categories (8)

Category Key Emoji Items
Azure azure ☁️ 20
Office Apps office-apps πŸ“Ž 7
Windows windows πŸͺŸ 6
SharePoint sharepoint πŸ“‚ 4
Exchange exchange πŸ“§ 2
Teams teams πŸ’¬ 1
Entra ID entra πŸ” 1
Security security πŸ›‘οΈ 1

Pending (Future Sessions)

  • [ ] GitHub repo creation (susanthgit/m365-deprecation-timeline)
  • [ ] GitHub Actions daily cron pipeline
  • [ ] OIDC federated credential for automated deploys
  • [ ] Category SEO landing pages (/deprecation-timeline/sharepoint/, etc.)
  • [ ] Individual detail pages (Hugo content per deprecation)
  • [ ] Graph API integration (Message Center automated fetch)
  • [ ] AI enrichment (GPT-4o-mini summaries + impact scoring)

πŸ” Research: The Problem We're Solving

Why This Tool Matters

IT admins managing Microsoft 365 environments face a constant stream of deprecations and retirements β€” features disappearing, APIs sunsetting, products reaching end-of-support. Missing even one deadline can cause:

  • ⚠️ Security gaps β€” unpatched software after end-of-support
  • ⚠️ Broken workflows β€” SharePoint 2013 workflows stop working overnight
  • ⚠️ Compliance failures β€” legacy authentication gets blocked
  • ⚠️ Budget surprises β€” forced migrations with no planning time

The information exists in at least 5 different places (Message Center, Learn Lifecycle, Tech Community, M365 Roadmap, Azure Updates) β€” but no single tool brings it all together in a visual, actionable format.

Competitive Landscape (What Exists Today)

Tool/Source Format Strengths Weaknesses
AdminDroid Blog Blog post + GitHub markdown Comprehensive, well-maintained, community-driven, free Static text β€” no filtering, no timeline view, no urgency scoring, no search
AdminDroid GitHub Tracker Markdown file on GitHub Structured by month, includes MC IDs, open-source Same as blog β€” static, no interactivity, no personalisation
Petri Blog articles Good editorial analysis, migration context Scattered across articles, not a unified tracker
Microsoft Learn Lifecycle Product lifecycle database Canonical source, per-product search Only covers formal product lifecycle β€” misses feature deprecations, API retirements, Message Center changes
Microsoft Message Center Admin portal Authoritative, tenant-specific Noisy (mixes deprecations with new features), no timeline view, requires admin access
Microsoft M365 Roadmap Roadmap site Official, filterable Focused on NEW features, not retirements
Azure Updates Azure update page Covers Azure retirements Only Azure β€” doesn't cover M365 services, Teams, Exchange, SharePoint

πŸ’‘ The Gap We Fill

Nobody has an interactive, filterable, visual timeline that:

  1. Combines ALL sources (Message Center + Lifecycle + Azure Updates + Roadmap)
  2. Shows urgency scoring (πŸ”΄ Critical / 🟠 Warning / 🟑 Watch / 🟒 Informational)
  3. Has countdown timers to each deadline
  4. Provides migration guidance for each item
  5. Lets you filter by product/service, urgency, date range
  6. Sends you to the right docs/tools to take action
  7. Is free and doesn't require admin portal access
  8. Includes past items (for "what did I miss?" scenarios)

πŸ“Š Data Sources

Primary Sources (Automated Pipeline)

Source What It Gives Us Access Method Update Frequency
Microsoft Graph API β€” Service Announcements Message Center posts with MC IDs, categories, services, dates, action required GET /admin/serviceAnnouncement/messages β€” needs ServiceMessage.Read.All permission Real-time (our pipeline: every 6 hours)
Microsoft Learn Lifecycle Formal product end-of-support dates Web scrape learn.microsoft.com/lifecycle/end-of-support/end-of-support-{year} Monthly check
Azure Updates Retirements Azure service retirements Web scrape azure.microsoft.com/updates/?updateType=retirements Weekly check
AdminDroid GitHub Tracker Curated deprecation list with descriptions and solutions Fetch raw markdown from GitHub API Weekly check

Secondary Sources (Manual / AI-Enriched)

Source What It Gives Us
Microsoft Tech Community blogs Context, migration guides, official announcements
Microsoft 365 Roadmap API Cross-reference new features replacing deprecated ones
Our own M365 Roadmap data Already have 1,887 items β€” can link "replacing" features

Data Model (Per Deprecation Item)

{
  "id": "dep-sp2013-workflows",
  "title": "SharePoint 2013 Workflow Retirement",
  "description": "SharePoint 2013 workflows will no longer be supported.",
  "category": "SharePoint",
  "type": "retirement",
  "urgency": "critical",
  "deadline": "2026-04-02",
  "announced_date": "2023-04-11",
  "mc_id": "MC542767",
  "services": ["SharePoint Online"],
  "impact": "high",
  "action_required": true,
  "migration_path": "Migrate to Power Automate or other supported solutions.",
  "migration_url": "https://learn.microsoft.com/power-automate/guidance/migrate-from-sp-designer",
  "official_url": "https://admin.microsoft.com/?ref=MessageCenter/:/messages/MC542767",
  "lifecycle_url": null,
  "replacement": "Power Automate",
  "status": "active",
  "days_remaining": -9,
  "tags": ["workflow", "automation", "sharepoint"]
}

πŸ—οΈ Architecture Plan

Same Proven Pipeline Pattern

Following the exact architecture used by AI News, M365 Roadmap, Cert Study Guides, and Service Health:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  GitHub Actions Pipeline               β”‚
β”‚                  (Daily cron β€” 6:00 UTC)               β”‚
β”‚                                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”‚
β”‚  β”‚ fetch_    β”‚  β”‚ fetch_   β”‚  β”‚ fetch_   β”‚            β”‚
β”‚  β”‚ message_  β”‚  β”‚ lifecycleβ”‚  β”‚ azure_   β”‚            β”‚
β”‚  β”‚ center.py β”‚  β”‚ .py      β”‚  β”‚ updates  β”‚            β”‚
β”‚  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜            β”‚
β”‚        β”‚             β”‚              β”‚                   β”‚
β”‚        β–Ό             β–Ό              β–Ό                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚
β”‚  β”‚         merge_and_enrich.py              β”‚          β”‚
β”‚  β”‚  β€’ Dedup across sources                  β”‚          β”‚
β”‚  β”‚  β€’ Calculate urgency scores              β”‚          β”‚
β”‚  β”‚  β€’ Extract migration paths               β”‚          β”‚
β”‚  β”‚  β€’ AI-generate summaries (GPT-4o-mini)   β”‚          β”‚
β”‚  β”‚  β€’ Detect changes since last run         β”‚          β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚
β”‚                        β”‚                               β”‚
β”‚                        β–Ό                               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚
β”‚  β”‚         generate_data.py                 β”‚          β”‚
β”‚  β”‚  β€’ latest.json (all items)               β”‚          β”‚
β”‚  β”‚  β€’ stats.json (summary counts)           β”‚          β”‚
β”‚  β”‚  β€’ feed.xml (RSS)                        β”‚          β”‚
β”‚  β”‚  β€’ changelog.json (what changed)         β”‚          β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚
β”‚                        β”‚                               β”‚
β”‚                        β–Ό                               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚
β”‚  β”‚    generate_pages.py (Hugo content)      β”‚          β”‚
β”‚  β”‚  β€’ Individual deprecation detail pages   β”‚          β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚
β”‚                                                        β”‚
β”‚  Deploy β†’ aguidetocloud-revamp (Azure SWA)            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Repo Structure

susanthgit/m365-deprecation-timeline/
β”œβ”€β”€ .github/
β”‚   └── workflows/
β”‚       └── pipeline.yml          # Daily cron + manual dispatch
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ fetch_message_center.py   # Graph API β†’ MC posts
β”‚   β”œβ”€β”€ fetch_lifecycle.py        # Learn Lifecycle scraper
β”‚   β”œβ”€β”€ fetch_azure_updates.py    # Azure Updates scraper
β”‚   β”œβ”€β”€ fetch_admindroid.py       # GitHub markdown parser
β”‚   β”œβ”€β”€ merge_and_enrich.py       # Merge, dedup, score, enrich
β”‚   β”œβ”€β”€ generate_data.py          # JSON + RSS output
β”‚   └── generate_pages.py         # Hugo content pages
β”œβ”€β”€ data/
β”‚   └── overrides.json            # Manual corrections/additions
β”œβ”€β”€ site/                         # Output directory
β”‚   └── previous_state.json       # For change detection
└── README.md

OIDC Auth

Same ainews service principal pattern: - App registration: Reuse ainews app (client ID 51b70f10-db98-4c14-84ef-2ca661e51b6d) - New federated credential: deprecation-timeline-github-actions-oidc - Additional permission needed: ServiceMessage.Read.All (for Message Center access)

⚠️ Decision needed: The Graph API for Message Center requires tenant admin consent. We'd be pulling from our lab tenant (M365CPI52224224.onmicrosoft.com). This gives us real MC posts but only for that tenant. For public data, we supplement with AdminDroid GitHub data + Learn Lifecycle scraping.


🎨 Frontend Design

Visual Timeline View (Primary)

The hero feature β€” a horizontal scrolling timeline (like a Gantt chart) showing:

TODAY β–Ό
───────────────────────────────────────────────────────────────────
  Apr 2026        May 2026        Jun 2026        Q3 2026
───────────────────────────────────────────────────────────────────

πŸ”΄ SP 2013 Workflows ──────────X (Apr 2)
πŸ”΄ SharePoint Add-Ins ─────────X (Apr 2)
πŸ”΄ Azure ACS ──────────────────X (Apr 2)
πŸ”΄ Engage Live Events ─────────────X (Apr 15)
🟠 Viva Goals ─────────────────────────X (May 1?)
🟠 EWS Retirement ────────────────────────────────────X (Oct 1)
🟑 Publisher ──────────────────────────────────────────────X (Oct)
🟑 Office LTSC 2021 ───────────────────────────────────────X (Oct 13)

Card Grid View (Secondary)

Same pattern as other tools β€” filterable cards:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ πŸ”΄ CRITICAL β€” 0 days remaining β”‚
β”‚ SharePoint 2013 Workflows       β”‚
β”‚ Retirement: Apr 2, 2026         β”‚
β”‚ Service: SharePoint Online      β”‚
β”‚ Action: Migrate to Power Auto.. β”‚
β”‚ [View Details] [Migration Guide]β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Features Checklist

Feature Priority Description
Timeline view P0 Horizontal scrollable timeline with urgency-coloured bars
Card grid view P0 Filterable card grid (same pattern as other tools)
Urgency scoring P0 πŸ”΄ Critical (<30 days) / 🟠 Warning (30-90 days) / 🟑 Watch (90-180 days) / 🟒 Future (180+ days) / ⚫ Passed
Countdown timers P0 "X days remaining" with colour coding
Category filters P0 Teams, Exchange, SharePoint, Entra, Azure, Office Apps, Windows, Security, etc.
Type filters P1 Retirement / End of Support / API Deprecation / Feature Change / Breaking Change
Search P0 Full-text search across titles, descriptions, MC IDs
Detail pages P1 Individual pages per deprecation with full context + migration guide
"What did I miss?" P1 Show recently passed deadlines with status
Impact assessment P1 High/Medium/Low impact rating per item
Migration links P0 Direct links to official migration guides
MC ID linking P0 Link to Message Center post for each item
RSS feed P1 Subscribe to new deprecation alerts
CSV export P2 Export filtered list for reporting
URL state P1 Deep-linkable filters (?category=SharePoint&urgency=critical)
Quick stats P0 Dashboard: X critical, Y warning, Z total active
Monthly summary P2 "This month: 7 retirements, 12 new features, 6 changes"
Favourites/watchlist P2 localStorage bookmark items you care about
Print-friendly P2 Clean printable version for management reports
"Notify me" P3 Future: email alerts (requires backend)

🏷️ Urgency Scoring Algorithm

from datetime import datetime, timedelta

def calculate_urgency(deadline_date, action_required=False):
    today = datetime.now().date()
    days_remaining = (deadline_date - today).days

    if days_remaining < 0:
        return "passed"        # ⚫ Already happened
    elif days_remaining <= 30:
        return "critical"      # πŸ”΄ Less than 30 days
    elif days_remaining <= 90:
        return "warning"       # 🟠 1-3 months
    elif days_remaining <= 180:
        return "watch"         # 🟑 3-6 months
    else:
        return "future"        # 🟒 6+ months away

    # Bonus: Bump urgency up one level if action_required is True
    # (a retirement needing admin action is more urgent than an informational sunset)

πŸ”‘ What Makes This Tool Uniquely Valuable

vs. AdminDroid Blog/GitHub

  • Interactive β€” filter, search, sort, timeline view (not just a static list)
  • Visual urgency β€” instant colour-coded "what needs attention NOW"
  • Always current β€” automated daily pipeline (not manually updated blog posts)
  • Migration links β€” direct paths to "what to do" (not just "what's happening")

vs. Microsoft Learn Lifecycle

  • Broader scope β€” covers feature deprecations + Message Center changes (not just product lifecycle)
  • Urgency scoring β€” "how worried should I be?" vs just a date
  • Single view β€” all M365 + Azure in one place (not separate pages)

vs. Message Center

  • No admin access required β€” anyone can use our tool
  • Timeline view β€” visual overview vs chronological list
  • Focused β€” only deprecations/retirements (not buried in 500 "new feature" posts)
  • Historical β€” see what already passed (Message Center posts expire)

vs. Everyone

  • Free β€” no sign-up, no product to buy
  • Fast β€” client-side JS, sessionStorage caching
  • Cross-linked β€” links to our M365 Roadmap (replacement features), Service Health, and relevant blog posts

πŸ“ Design Decisions

Accent Colour

Needs to be distinct from existing tools:

Tool Colour
AI News Magenta #ff66ff
M365 Roadmap Gold #E5A00D
Prompt Library Violet #A78BFA
Prompt Polisher Coral #FF6B6B
Cert Study Guides Emerald #10B981
Licensing Simplifier Rose #F43F5E
Service Health Orange #F97316
Deprecation Timeline πŸ€” TBD

Options: - Amber/Red #EF4444 β€” fits the "warning/danger" theme but close to coral - Crimson #DC2626 β€” strong urgency vibe, distinct from all others - Deep Purple #7C3AED β€” distinct but might not convey "urgency" - Teal/Cyan #06B6D4 β€” too close to site's primary cyan

Recommendation: Crimson #DC2626 β€” it screams "pay attention" which perfectly matches the tool's purpose. The urgency/danger connotation is exactly right.

CSS Namespace

.deptime-* (deprecation timeline)

Hugo Content Type

type: "deprecation-timeline" in front matter for the main list page. Category pages: type: "deprecation-timeline-category" with deptime_filter param.

Route Structure

/deprecation-timeline/              β†’ Main timeline + grid view
/deprecation-timeline/sharepoint/   β†’ SharePoint deprecations
/deprecation-timeline/teams/        β†’ Teams deprecations
/deprecation-timeline/exchange/     β†’ Exchange deprecations
/deprecation-timeline/entra/        β†’ Entra ID deprecations
/deprecation-timeline/azure/        β†’ Azure deprecations
/deprecation-timeline/office-apps/  β†’ Office Apps deprecations
/deprecation-timeline/windows/      β†’ Windows deprecations
/deprecation-timeline/security/     β†’ Security & Compliance
/deprecation-timeline/{slug}/       β†’ Individual deprecation detail page

πŸš€ Implementation Phases

Phase 1 β€” Data Pipeline (Foundation)

  • [ ] Create GitHub repo susanthgit/m365-deprecation-timeline
  • [ ] Build fetch_lifecycle.py β€” scrape Microsoft Learn lifecycle pages
  • [ ] Build fetch_azure_updates.py β€” scrape Azure Updates retirements
  • [ ] Build fetch_admindroid.py β€” parse AdminDroid GitHub markdown
  • [ ] Build merge_and_enrich.py β€” merge, dedup, urgency score
  • [ ] Build generate_data.py β€” output latest.json, stats.json, feed.xml
  • [ ] Add OIDC federated credential for GitHub Actions
  • [ ] Set up GitHub Actions workflow (daily cron)
  • [ ] Add data/overrides.json for manual additions/corrections
  • [ ] Test pipeline end-to-end

Phase 2 β€” Hugo Frontend (MVP)

  • [ ] Create Hugo content structure in aguidetocloud-revamp
  • [ ] Build layouts/deprecation-timeline/list.html template
  • [ ] Build static/css/deptime.css (crimson accent)
  • [ ] Build static/js/deptime.js (card grid + filters + search)
  • [ ] Add quick stats dashboard
  • [ ] Add countdown timers
  • [ ] Add category filtering
  • [ ] Add urgency filtering
  • [ ] Add search
  • [ ] Add URL state management
  • [ ] Add sessionStorage caching
  • [ ] Tool hero partial integration
  • [ ] Back-nav + back-to-top
  • [ ] Mobile responsive

Phase 3 β€” Timeline View (Hero Feature)

  • [ ] Build horizontal timeline component
  • [ ] Colour-coded urgency bars
  • [ ] "Today" marker
  • [ ] Zoom/scroll controls
  • [ ] Click-to-detail from timeline

Phase 4 β€” Detail Pages & Enrichment

  • [ ] Build layouts/deprecation-timeline/single.html template
  • [ ] generate_pages.py for Hugo content pages
  • [ ] Migration guidance sections
  • [ ] Cross-links to M365 Roadmap (replacement features)
  • [ ] Cross-links to relevant blog posts
  • [ ] JSON-LD structured data (FAQPage schema)
  • [ ] Category landing pages (SEO)

Phase 5 β€” Polish & Extras

  • [ ] RSS feed
  • [ ] CSV export
  • [ ] Print-friendly view
  • [ ] "What did I miss?" section
  • [ ] Monthly summary view
  • [ ] Favourites/watchlist (localStorage)
  • [ ] OG image / social sharing

πŸ§ͺ Data Source Details

Microsoft Graph API β€” Service Announcements

Endpoint: GET https://graph.microsoft.com/v1.0/admin/serviceAnnouncement/messages

Permission: ServiceMessage.Read.All (delegated or application)

Key fields per message:

id              β†’ MC ID (e.g., "MC542767")
title           β†’ Human-readable title
category        β†’ "PlanForChange" | "StayInformed" | "PreventOrFixIssue"
severity        β†’ "Normal" | "High" | "Critical"
isMajorChange   β†’ Boolean (true = significant change)
services        β†’ Array of affected services
tags            β†’ Array of tags (e.g., "Retirement", "Updated message")
actionRequiredByDateTime β†’ Deadline for action (nullable)
startDateTime   β†’ When the announcement was published
endDateTime     β†’ When the change takes effect (approximate)
body.content    β†’ HTML content with full details

Filtering strategy for deprecations:

$filter=isMajorChange eq true
Then post-filter for keywords: "retire", "deprecat", "end of support", "sunset", "discontinue", "remove", "phase out"

Microsoft Learn Lifecycle Pages

URLs to scrape: - https://learn.microsoft.com/lifecycle/end-of-support/end-of-support-2025 - https://learn.microsoft.com/lifecycle/end-of-support/end-of-support-2026 - https://learn.microsoft.com/lifecycle/end-of-support/end-of-support-2027

Format: HTML tables with product name + date columns. Parse with BeautifulSoup.

Azure Updates Retirements

URL: https://azure.microsoft.com/updates/?updateType=retirements

Format: HTML cards with title, date, description. Parse with BeautifulSoup.

AdminDroid GitHub Tracker

URL: https://raw.githubusercontent.com/admindroid-community/Microsoft365-Upcoming-Deprecations-and-Changes/main/Microsoft%20365-%20Upcoming%20Changes%20and%20End-of-Support%20Milestones.md

Format: Structured markdown with H3 headings per item, grouped by month. Parse with regex.


πŸ“‹ Seed Data (Initial Items)

Based on research, here are the key items to include at launch:

πŸ”΄ Critical (Already Passed or < 30 Days)

Item Deadline Service MC ID
SharePoint 2013 Workflow Retirement Apr 2, 2026 SharePoint MC542767
SharePoint Add-In Retirement Apr 2, 2026 SharePoint MC693865
Azure ACS Retirement in M365 Apr 2, 2026 SharePoint β€”
Domain Isolated Web Parts Retirement Apr 2, 2026 SharePoint β€”
Engage Live Events (Teams Live Events) Apr 15, 2026 Viva Engage MC1227085
Copilot removed from WXP for unlicensed Apr 15, 2026 Office Apps MC1253858

🟠 Warning (30-90 Days)

Item Deadline Service MC ID
Agent 365 / M365 E7 GA May 1, 2026 Licensing β€”
.NET 9 End of Support May 12, 2026 Azure / Dev β€”
Skype Consumer Retirement May 31, 2025 Skype β€”
Security Copilot added to E5 Apr 20-Jun 30, 2026 Security MC1261596

🟑 Watch (90-180 Days)

Item Deadline Service MC ID
SharePoint Legacy Info Mgmt Features Apr 2026 SharePoint MC1211579
Office LTSC 2021 End of Support Oct 13, 2026 Office β€”
Publisher Retirement Oct 2026 Office β€”
EWS Retirement in Exchange Online Oct 1, 2026 Exchange MC1227454
Project Online Retirement Sep 30, 2026 Project β€”
Entra ID Protection Risk Policy Oct 1, 2026 Entra β€”

🟒 Future (180+ Days)

Item Deadline Service MC ID
Windows 10 End of Support Oct 14, 2025 Windows β€”
Office 2016/2019 End of Support Oct 14, 2025 Office β€”
Azure AD Graph API Full Retirement Jun 30, 2025 Azure β€”
EWS Full Retirement (Exchange Online) Apr 2027 Exchange β€”
Viva Goals End of Service Dec 31, 2025 Viva β€”

🧠 AI Enrichment Strategy

Using GPT-4o-mini (same as M365 Roadmap pipeline):

  1. Summary generation β€” One-paragraph plain English summary of each deprecation
  2. Impact assessment β€” AI rates impact as High/Medium/Low based on service scope + user count
  3. Migration path extraction β€” Parse official docs for recommended replacement
  4. Tag generation β€” Auto-tag items for better searchability
  5. "Why it matters" β€” One-liner explaining business impact (like AI News's USP callout)

Cost estimate: ~$0.01 per item with caching. Initial seed: ~100 items = $1. Monthly updates: pennies.


πŸ”— Cross-Tool Integration

Link To How
M365 Roadmap When a deprecation has a replacement feature in the roadmap, link to it
Service Health If a deprecation causes service incidents, link to the health tracker
Blog posts Auto-match blog posts that mention the deprecated feature
Cert Study Guides Link relevant cert exams (e.g., MS-102 covers lifecycle management)
Licensing Simplifier Link when licensing changes are involved (e.g., Publisher in E5)

πŸ“ Notes & Gotchas

  1. Message Center access requires tenant admin β€” we'll use lab tenant for Graph API data, supplement with public sources (AdminDroid GitHub, Learn Lifecycle) for completeness.

  2. Date precision varies β€” Some items have exact dates (Apr 2, 2026), others are approximate ("Q3 2026", "October 2026"). Need to handle both in the data model.

  3. Items can update β€” Microsoft frequently pushes back deadlines. Pipeline needs change detection to track moved dates.

  4. "Type" taxonomy matters:

    • Retirement β€” Feature/product is completely removed
    • End of Support β€” Still works but no patches/updates
    • Deprecation β€” Still works but no new investment, will eventually retire
    • Breaking Change β€” Existing behaviour changes, may require action
    • API Sunset β€” Specific API version discontinued
  5. Already-passed items are still valuable β€” Admins searching "what happened to X" need to find it. Keep passed items visible with a "Passed" status.

  6. AdminDroid data is comprehensive but their format includes new features + enhancements β€” we only want retirements, deprecations, and breaking changes. Need to filter during parsing.

  7. RSS feed is important for this tool β€” IT admins want to subscribe to a focused deprecation feed (Message Center is too noisy).


🎬 Content Ideas (Post-Launch)

  • Blog post: "Never Get Caught Off Guard: The Free M365 Deprecation Timeline"
  • YouTube video: "How I Built a Free M365 Deprecation Tracker (No Code Background!)"
  • Monthly "Deprecation Digest" blog posts β€” "What's retiring in May 2026"
  • Cross-post to Tech Community β€” valuable resource for the admin community
  • LinkedIn post β€” using the proven "What β†’ How β†’ Tech β†’ Why" writing voice

Last updated: April 12, 2026