Some content needs to go live at exactly the right time and without scheduling, that timing depends on someone being online, whether it’s late at night, on a weekend, or across time zones. Even during working hours, manually publishing content adds unnecessary coordination and risk.
Automation solves this. When content transitions are scheduled in advance, publishing becomes reliable, predictable, and hands-free. Teams can shift focus to strategy and execution—without the overhead of timing logistics.
While Drupal offers strong content moderation and workflows, the Scheduled Transitions module adds the missing piece—time-based scheduling for content state changes, adding precise, revision-level scheduling for any moderated content—so content moves exactly when it should, without manual effort.
Problem statement
On large, content-heavy websites, teams often need to publish, update, or unpublish content automatically at specific times. This includes campaign pages, release announcements, press embargoes, seasonal banners, and other time-sensitive updates.
Drupal’s core features like Content Moderation and Workflows support revisioning and moderation states (Draft, Needs Review, Published), but they don’t support scheduled transitions out of the box. This leads to a few technical and operational challenges:
- Manual publishing: Editors have to log in during nights, weekends, or holidays to publish content—error-prone and inefficient.
- No built-in time-based transitions: There’s no native way to move a content revision from Draft to Published based on a future date.
- Limited support for multilingual content: Each translation may need to be scheduled separately, which Drupal doesn’t handle natively.
- Cron dependency: Relying on default site cron to trigger publishing can create performance issues or delays, especially if frequent checks are needed.
- No per-content-type control: You can’t configure scheduling behaviour differently for blogs vs articles vs announcements.
Without a reliable scheduling mechanism, content can go live too early, too late, or not at all—creating gaps in campaigns, missed deadlines, or outdated messaging.
Solution
The Scheduled Transitions module allows automated, revision-specific scheduling for any moderated entity (like nodes, custom blocks, etc.). It supports granular permissions, multilingual scheduling, and queue-based processing that doesn’t overload the default cron—making it a solid fit for time-sensitive content workflows in Drupal.
It works across all content entities that use workflows and moderation and supports revision-specific scheduling. Editors can pick the exact revision they want to publish and schedule that transition directly from the UI.
The module provides:
- Per-content-type configuration, so scheduling can be enabled only where needed (e.g., Articles, Blog Posts).
- Translation-level scheduling allows different timings for each language version of a node.
- Role-based permissions, so only authorized users can schedule transitions.
Instead of relying on Drupal’s site-wide cron (which isn’t designed to run every minute), it uses custom queue jobs:
- drush scheduled-transitions:queue-jobs to create queue items
- drush queue: run scheduled_transition_job to process them
This lets scheduling run every minute without affecting site performance. If needed, the module can also run via default site cron at a longer interval.
By using Scheduled Transitions, editorial teams can automate time-sensitive publishing workflows, avoid manual errors, and remove the need to be online during off-hours. The result: reliable, accurate, and maintainable content scheduling across complex Drupal sites.
Drupal 10 modules used for scheduling
- Scheduled Transition
- Workflows
- Content Moderation
Configure Scheduler module in Drupal 9
- Install the module using Composer
- composer require 'drupal/scheduled_transitions:^2.5'
- Enable using Drush
- ddev drush en scheduled_transitions
- Go to admin/config/workflow/workflows

- Edit the pre-installed Editorial Workflow
- Select any entity which needs to use scheduler and save (As shown in image Content types ‘Article’ and ‘Course Content’ is selected )

- Go to the Scheduled transitions settings Page from URL: admin/config/workflow/scheduled-transitions

- Enable entities that need scheduling
- Uncheck the automation tab because we will create queue jobs to run the scheduler instead of site cron.
- As per the requirement of the module to create queue jobs for scheduler, we can upload queue jobs commands on the server with frequency of 1 min. Both the commands will run at the interval of 1 min to check if any content is ready to be published or not as per given time.
- Create queue items.
drush scheduled-transitions:queue-jobs - Process the queue.
drush queue:run scheduled_transition_job

- If the Automation tab is enabled/checked, scheduling will check scheduled jobs on default site cron run and usually it’s not a good idea to run site cron at each minute as this may impact the overall site performance.
- However the Automation tab can be enabled if you want to check scheduled jobs at a longer interval of time. In that case, Scheduling will run with default site cron run at a few hours of interval and publish the node who’s publishing time has already passed current time.
Let’s understand the use of this module with the example. The following example uses a flow of draft to publish, but any transition is possible. The general flow for users is:
- Users create content and can create many revisions of it. Revisions move between states such as draft, needs review, and published.
- When the content reaches a point where it’s ready to be published. Find the ready Revision and take note of the Revision ID of it.
- Go to the Scheduled Transitions tab for the content.

- Click the Add scheduled transition button.
- Locate the ready revision, and schedule it.

- Now on scheduler cron run or on default site cron run (This will be chosen based on the above cron configuration) content will be published.
Conclusion
The Scheduled Transitions module fills a key gap in Drupal’s content moderation system: the ability to automate publishing based on scheduled dates and times for specific revisions. It ensures content goes live exactly when planned, without any manual effort.
Over 1,000 Drupal sites use the module, including government platforms, universities, newsrooms, and nonprofits. It supports multilingual content, strict timelines, and globally distributed workflows.
But scheduling is just the start. Drupal’s next phase is being shaped by AI-assisted publishing.
Features like auto-tagging, translation support, and semantic search are already in use. Organizations like Acquia are adding AI/ML to Drupal DXP stacks, while community-led projects explore LLM integrations.
Governments and global organisations are leading this shift. Drupal powers platforms for the European Commission, UNESCO, the City of Boston, and UNICEF. Major brands like NASA, Pfizer, and The Economist also use Drupal at scale—integrating AI to optimize publishing.
The trend is clear: AI content automation is projected to grow 18.7% annually through 2030. Scheduling will move beyond fixed dates to AI-informed windows based on engagement, traffic, and campaign timing.
Modules like Scheduled Transitions will evolve with this shift—helping Drupal build smarter, data-driven workflows for modern content teams.