04 Sep 2026
Drupal.org aggregator
Gspikes: Planning a Drupal Migration: The 90-Day Calendar
The 52-step checklist tells you what to do. This is the calendar those steps actually run against - a realistic 90-day plan broken into three phases, with the milestones that decide whether you finish on time and the resourcing map showing who's busy when.
04 Sep 2026 4:31am GMT
03 Sep 2026
Drupal.org aggregator
Talking Drupal: Talking Drupal #568 - Off The Cuff #12
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
03 Sep 2026 6:00pm GMT
Matt Glaman: Making the phpstan-drupal playground work for agents
The phpstan-drupal playground exists to reproduce bugs. You paste PHP, run PHPStan with phpstan-drupal against a real Drupal core install, and share the result link in an issue.
It never quite worked right, and I never got around to fixing it. The bugs were small, individually boring, and always someone else's turn on my list. What finally cleared them was working through them with an agent, which is also how the rest of this post happened. The workflow still assumed a person in a browser. Now it works for an agent too.
Two things I wanted:
03 Sep 2026 6:00pm GMT
02 Sep 2026
Symfony Blog
Meet the Symfony Core Team at the API Platform Conference 2026!
The API Platform Conference, the international event dedicated to the API Platform framework and its ecosystem, will take place in two weeks in Lille, France, on September 17-18, 2026. Nearly 30 talks are scheduled, in both French and English, covering…
02 Sep 2026 2:30pm GMT
31 Aug 2026
Symfony Blog
Introducing symfony lsp:check: Symfony-Aware Diagnostics in Your CI
A Symfony application is full of strings that mean something: route names, template paths, translation keys, service ids, bundle configuration keys. To PHP, they are strings like any others. Your CI pipeline verifies types with PHPStan or Psalm, style with…
31 Aug 2026 12:03pm GMT
30 Aug 2026
Symfony Blog
Symfony 8.1.6 released
Symfony 8.1.6 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip…
30 Aug 2026 9:44pm GMT
01 Apr 2004
Planet PHP
ezSystems are classy folks

Last week I helped the folks at ezSystems debug some APC problems they were having. The problems ended up being a 64bit architecture problem (they have uber-fast Opterons) and the bug is now fixed in 2.0.3.
Today I received Python & XML from them (off my Amazon wishlist). Thanks guys!
On a side note, my wishlist seems borked. The list I get when I search on my email address or name is not the same one I can edit when I log into the site.
01 Apr 2004 6:53pm GMT
PHP april fools...
1st of April 2004 get's to it's end and I guess it's time, to summarize the recent April fools a bit. Not that I think anyone in the world believes in them, but some were quite funny:
1. Changes to case sensitivity in PHP.
Alan Knowles announced that PHP will change to the studlyCase API and therefor will get everything broken by changing established functions.
2. IBM takes over Zend.
Myself hacked a little article about IBM taking over Zend to make PHP a compete of Java.
3. The first PHP virus has been seen.
Wasn't there one last year, too?
4. PHP has been overtaken by Micro$oft.
Mhhh... a little bit unreliable, if they had been taken over by IBM this morning... Maybe one should first look, what others wrote...
5. And finally, PHP4 and 5 showed their real faces...
Take a look at a phpinfo() output!
I guess I missed some, so feel free to comment on this entry, if you found another!
01 Apr 2004 5:49pm GMT
PHP Virus Attacking Web Hosts
Symantec have a report of the virus here. I've yet to see any of the PHP news sites picking up on it but, using a virtual host account, managed to deliberately expose some PHP scripts to it. From examining the infected scripts, what's disturbing is once infected, every tim...
01 Apr 2004 12:19pm GMT