Skip to main content
Aggregate Drupal.org Planet Drupal 4 Sep 2026 - 03:30

Talking Drupal: Talking Drupal #568 - Off The Cuff #12

RSS 官方收录 · 可信分层展示

关键摘要

Today we are talking about Drupal Performance, Rapid Development, and Drupal Canvas Maturity with our hosts.…

  • We'll also cover Microsoft 365 FullCalendar as our module of the week.
  • For show notes visit: https://www.
  • talkingDrupal.

摘要引擎:抽取

正文提要

Today we are talking about Drupal Performance, Rapid Development, and Drupal Canvas Maturity with our hosts. We'll also cover Microsoft 365 FullCalendar as our module of the week.

For show notes visit: https://www.talkingDrupal.com/568

Topics
  • Deprecating Module Theme Files
  • Migrating Hooks to Classes
  • Why This Change Matters
  • Drupal Performance Gains
  • Performance Audits and Lighthouse
  • Automating Checks and Spreadsheet Rant
  • AI Spreadsheet Cautionary Tale
  • Privacy Concerns with AI
  • Freelancer Pressure
  • Rapid Change Reality
  • Canvas Release Risks
  • Community Support Needed
  • AI For Documentation
  • Canvas Production Readiness
  • Canvas Architecture Debate
  • AI For Voting Research
  • LLM Bias And Sources
Resources Guests

Martin Anderson-Clutz - mandclu.com mandclu

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Amber Matz - tugboatqa.com [amber himes matz](https://www.drupal.org/u/amber himes matz)

MOTW Correspondent

Martin Anderson-Clutz - mandclu.com mandclu

  • Brief description:
    • Have you ever wanted your users' own Outlook calendars to show up right alongside your Drupal content in a calendar view? There's a module for that.
  • Module name/project name:
  • Brief history
    • How old: created just last month, August 19 2026, by fabianderijk of Finalist
    • Versions available: 1.0.0, which works with Drupal 11
  • Maintainership
    • Brand new — the first and only release is from last month, and the whole commit history is basically launch day
    • Security coverage: brand new, so not yet
    • Test coverage: yes, both unit tests and kernel tests
    • Documentation: a genuinely thorough README — it walks through privacy, the config guard rails, and three different ways to customize event output
    • Open issues: none yet, it's less than two weeks old
  • Usage stats:
    • Too new for a site count
  • Module features and usage
    • With this installed, it adds the signed-in user's Microsoft 365, or Outlook, calendar as an extra event source on a FullCalendar view — so their personal appointments sit right next to the Drupal content the view already renders
    • It leans on the Microsoft 365 Connector module and its SSO submodule, plus the FullCalendar module. Each user must have signed in through Microsoft 365 SSO: anyone who hasn't just sees no events, which is a clean fallback
    • It uses lazy loading, so it only fetches events in the date range the calendar is currently showing, not your whole calendar
    • Privacy is baked in: anything marked private or confidential in Outlook is masked, so it shows up as just "Busy", with no title, location, or meeting link, unless the site builder deliberately turns masking off
    • The response itself is per-user and marked private, no-store, so it never lands in a shared or CDN cache
    • There's a clever server-side cache too: it stores the raw Graph response before masking, so a single fetch can serve several displays that each have different masking settings
    • You get guard rails you can tune with Drush or an admin form: max events, max date range, cache lifetime, and a separate, shorter failure cache
    • That failure cache is a nice touch — if there's no active Microsoft session, or Graph errors out, it caches the empty result briefly so a broken connection doesn't get re-polled on every single calendar click
    • Under the hood it calls Graph's calendarView endpoint rather than /me/events, which means recurring meetings get expanded into their individual occurrences — exactly what a calendar grid needs
    • Every event carries CSS classes for its status — busy, free, tentative, out-of-office, working elsewhere, cancelled — so you can style them however you want
    • And if CSS isn't enough, there's a server-side alter hook and a JavaScript pre-build event for fully custom rendering. Nice detail: the hook is explicitly guarded so you can't use it to put back a title or location that masking just stripped out
    • Clearly this will be more useful for edge cases, for example an intranet, but I think this is a really interesting example of the power of Drupal as an integration layer, or as some like to put it, the "glass" through which a user can interact with multiple systems
打开官方原文 站点原文页 可信分区 本信源更多 今日简报 分享图 RSS 稍后再看列表