Title: Content Update Scheduler
Author: Constantin Oesterling
Published: <strong>2020-04-01</strong>
Last modified: 2025-12-27

---

Search plugins

![](https://ps.w.org/content-update-scheduler/assets/icon-256x256.png?rev=3100518)

# Content Update Scheduler

 By [Constantin Oesterling](https://profiles.wordpress.org/infinitnet/)

[Download](https://downloads.wordpress.org/plugin/content-update-scheduler.4.0.2.zip)

 * [Details](https://tt.wordpress.org/plugins/content-update-scheduler/#description)
 * [Reviews](https://tt.wordpress.org/plugins/content-update-scheduler/#reviews)
 *  [Installation](https://tt.wordpress.org/plugins/content-update-scheduler/#installation)
 * [Development](https://tt.wordpress.org/plugins/content-update-scheduler/#developers)

 [Support](https://wordpress.org/support/plugin/content-update-scheduler/)

## Description

WordPress lacks the ability to schedule content updates. Keeping your posts and 
pages up to date manually can often be a waste of valuable time, especially when
you know you’ll need to update the same page again soon.

### Use Cases

 * **Promotions:** Automatically publish versions of your pages that contain temporary
   promotions and schedule content updates that remove these promotions once they
   expire.
 * **Events:** Schedule content updates for pages that list events. Automatically
   publish an updated version of the page after an event ends.
 * **SEO:** Schedule series of content updates to keep your pages and publishing
   dates current and satisfy the freshness algorithm.

### Key Features

 * Updates page content and publishing date
 * Compatible with any post type
 * Compatible with Elementor and Oxygen Builder
 * Nested content updates (multiple updates of the same page scheduled in a row)
 * Lightweight code

### Credits

Developed by [Infinitnet](https://infinitnet.io/) and based on the abandoned [tao-schedule-update](https://github.com/tao-software/tao-schedule-update)
plugin. Major contributions by [Immediate Media](https://immediate.co.uk/).

**Github:** [https://github.com/infinitnet/content-update-scheduler/](https://github.com/infinitnet/content-update-scheduler/)

## Installation

 1. Upload the plugin files to the `/wp-content/plugins/content-update-scheduler` directory,
    or install the plugin through the WordPress plugins screen directly.
 2. Activate the plugin through the ‘Plugins’ screen in WordPress
 3. Each page and post now has a ‘Scheduled Content Update’ link where you can schedule
    the content updates. Click on it.
 4. Select the date and time in the new ‘Scheduled Content Update’ meta box on ‘Page’
    level and then click ‘Publish’ to schedule it.

## FAQ

### How do I schedule a content update?

Each page and post has a ‘Scheduled Content Update’ link in the overview, which 
allows you to schedule content updates. Click on it. Then select the date and time
in the new ‘Scheduled Content Update’ meta box on ‘Page’ level and then click ‘Publish’
to schedule it.

### Does this work with page builders?

Yes, it has been tested with Elementor and Oxygen Builder. It may also work with
other page builders.

### How can I exclude post types from Content Update Scheduler?

You can use below filter to exclude post types:

    ```
    add_filter('content_update_scheduler_excluded_post_types', function($excluded_post_types) {
        // Replace EXCLUDE_THIS with the name of the post type you want to exclude
        $excluded_post_types[] = 'EXCLUDE_THIS';
        return array_unique($excluded_post_types);
        });
    ```

### How can I hook into the publishing process?

The plugin provides two action hooks that allow you to perform custom actions before
and after a scheduled update is published:

**Before Publishing Hook:**

    ```
    add_action('ContentUpdateScheduler\\before_publish_post', function($post, $orig) {
        // Perform actions before the scheduled update is published
        // $post = the scheduled update post
        // $orig = the original post being updated
    }, 10, 2);
    ```

**After Publishing Hook:**

    ```
    add_action('ContentUpdateScheduler\\after_publish_post', function($post, $orig) {
        // Perform actions after the scheduled update has been successfully published
        // $post = the scheduled update post
        // $orig = the original post that was updated
    }, 10, 2);
    ```

These hooks are useful for triggering custom notifications, cache clearing, analytics
tracking, or any other post-publication tasks.

## Reviews

![](https://secure.gravatar.com/avatar/d9c003fd08025422b08100f920f968477e633e3d203ba29664fe45da7c1661ad?
s=60&d=retro&r=g)

### 󠀁[Great plugin](https://wordpress.org/support/topic/great-plugin-41106/)󠁿

 [Roberto Rodríguez](https://profiles.wordpress.org/robertorodriguez2/) 2025-12-
06

I’ve been using this free plugin for years on a commercial website built with Divi,
and it has been very useful. Quick response for support inquiries, too.

![](https://secure.gravatar.com/avatar/6fe928cb22e3a673e34d06c283b95db060975a5863ce7af4f9c567b27009b429?
s=60&d=retro&r=g)

### 󠀁[Fast Response Support](https://wordpress.org/support/topic/fast-response-support-5/)󠁿

 [mkormendy](https://profiles.wordpress.org/mkormendy/) 2025-10-08

This was the fastest support response that I’ve had in a long time from a plug-in
on the WordPress plug-ins repository! Albeit, I did manage to describe the issue
quite succinctly and specifically that it wasn’t difficult to assess/reproduce and
turn around a fix. Great collaboration! Thank you!

![](https://secure.gravatar.com/avatar/0bc0070d87286f5faef82619324d967b6aa0af32fd2e749c5e43cf9399526bb1?
s=60&d=retro&r=g)

### 󠀁[Best Post/Page Scheduler Plugin](https://wordpress.org/support/topic/best-post-page-scheduler-plugin/)󠁿

 [jolai](https://profiles.wordpress.org/jolai/) 2025-09-05

We originally had trouble getting this plugin to work with our custom Gutenberg 
site, but the developer support was excellent. They worked with us closely to resolve
the issues, and now the plugin runs exactly as intended. Other scheduling plugins
we tried caused conflicts or broke parts of our site, but this one has been stable
and reliable once set up properly. Highly recommend it if you need a scheduling 
solution with great developer support behind it.

![](https://secure.gravatar.com/avatar/41ef1d7545d5125cecbc228887741fce1e8b2362ed20b6b3706573411b47f624?
s=60&d=retro&r=g)

### 󠀁[Didn’t work](https://wordpress.org/support/topic/didnt-work-397/)󠁿

 [tianaina](https://profiles.wordpress.org/tianaina/) 2025-04-10 1 reply

Sorry, it didn’t work.I couldn’t even plan the updates because no link appeared 
on the posts after installing and activating the plugin.

![](https://secure.gravatar.com/avatar/cc1821bc39bfce959a0ad794ae793e0dfa232527d4927ff6feafe484af184592?
s=60&d=retro&r=g)

### 󠀁[Plugin has been updated and works perfectly](https://wordpress.org/support/topic/plugin-has-been-updated-and-works-perfectly/)󠁿

 [kmg27hotmailcom](https://profiles.wordpress.org/kmg27hotmailcom/) 2024-11-10 2
replies

I was a big fan of the Tao Schedule Update plugin and used it for years to schedule
multiple changes to the same already-published page on a website I manage. For example,
a livestream feed goes up on a page on the site at 9 a.m., comes down at 10 a.m.,
and a different livestream embed goes up at 11 a.m. When the Tao plugin broke, I
searched and searched for a replacement and couldn’t find any that would do multiple,
successive changes to the same page. Some would only do one change, one stripped
out my <iframe> code when it published, one published immediately even though I 
had scheduled the change, one forced a whole publishing approval process that I 
didn’t need. If you miss the Tao plugin, then Content Update Scheduler is what you
are searching for. It’s lightweight, simple, easy to use, and works exactly as you
would expect. Enjoy!

![](https://secure.gravatar.com/avatar/1a2f2a6db47b3f5b077208d81796d847c7b5b525d4d3c7788c0529e43adb32ac?
s=60&d=retro&r=g)

### 󠀁[Author Unresponsive](https://wordpress.org/support/topic/author-unresponsive/)󠁿

 [nemi5150](https://profiles.wordpress.org/nemi5150/) 2020-10-11

The plugin works for what it does, but I submitted a bug months ago that has been
ignored, so that does not inspire confidence in the author. Beware that the plugin
may be abandoned.

 [ Read all 12 reviews ](https://wordpress.org/support/plugin/content-update-scheduler/reviews/)

## Contributors & Developers

“Content Update Scheduler” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Constantin Oesterling ](https://profiles.wordpress.org/infinitnet/)

“Content Update Scheduler” has been translated into 3 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/content-update-scheduler/contributors)
for their contributions.

[Translate “Content Update Scheduler” into your language.](https://translate.wordpress.org/projects/wp-plugins/content-update-scheduler)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/content-update-scheduler/),
check out the [SVN repository](https://plugins.svn.wordpress.org/content-update-scheduler/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/content-update-scheduler/)
by [RSS](https://plugins.trac.wordpress.org/log/content-update-scheduler/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 4.0.2

 * feat: Add overdue event recovery
 * fix: Capability checks with proper fallbacks when post type object is unavailable
 * fix: Enhanced meta cleanup to prevent schedule timestamp inheritance
 * fix: Improve scheduled homepage changes reliability and backwards compatibility
 * fix: Plugin Check errors resolved

#### 4.0.1

 * fix: Namespace issue
 * fix: Scheduled Republications table display

#### 4.0.0

 * refactor: Refactored and modernized entire codebase

#### 3.1.5

 * fix: Correct date selection offset calculation

#### 3.1.4

 * fix: Add time format validation and trim whitespace

#### 3.1.3

 * fix: Improve Elementor compatibility

#### 3.1.2

 * fix: Correct homepage dropdown filter implementation

#### 3.1.1

 * fix: Correct regex patterns for Unicode escape sequence protection

#### 3.1.0

 * feat: Add after_publish_post hook for post-publication actions
 * fix: Correct Unicode escape sequence patterns to match Gutenberg content

#### 3.0.1

 * fix: Prevent Unicode escape sequence corruption in Gutenberg content

#### 3.0.0

 * feat: Add admin interface for monitoring scheduled republications under Tools
   menu
 * feat: Add real-time status indicators and quick actions in admin interface
 * feat: Add static homepage scheduling functionality
 * feat: Add current server time display and live-updating clock to scheduling interface
 * feat: Implement JavaScript-based validation for date/time inputs
 * refactor: Remove all debug logging statements for production readiness
 * refactor: Replace generic error messages with specific, actionable feedback
 * refactor: Standardize AJAX error handling with proper wp_send_json functions
 * refactor: Add class constants for frequently used magic strings
 * fix: Resolve scheduled republication timing issues with timezone comparison logic
 * fix: Add cron event cleanup after successful publishing to prevent retry loops
 * fix: Improve overdue posts query with proper filtering and status checking
 * fix: Resolve WooCommerce stock status and quantity variable initialization bug
 * fix: Prevent content corruption in modern WordPress with Gutenberg
 * fix: Resolve missing ‘Scheduled Content Update’ link in post row actions
 * fix: Correct timezone display in republication date column
 * fix: Replace PHP_INT_MIN priority with normal value for cron action hook

#### 2.3.5

 * refactor: Improve meta and terms copying with filter management and visibility
 * refactor: Improve Elementor and Oxygen data copying with focused, robust methods
 * refactor: Add WPML relationship handling for duplicated posts

#### 2.3.4

 * feat: Add per-post option to preserve original publication date
 * refactor: Enhance custom post type support with opt-out filter mechanism

#### 2.3.3

 * fix: Properly handle timezone when saving publication date
 * refactor: Improve copy_meta_and_terms method to handle serialized and JSON data

#### 2.3.2

 * fix: Implement locking and transaction-like mechanism in publish_post
 * fix: Use WordPress timezone for scheduling and publishing

#### 2.3.1

 * WordPress 6.6.1 fix/workaround: Implemented custom cron job to check and publish
   overdue scheduled posts

#### 2.3

 * Refactored datepicker: fixed bugs, allow time selection by minute
 * Improved WooCommerce compatibility
 * Don’t show “Republication Date” for original posts but only for republication
   drafts

#### 2.2

 * Improved fix for 404 issue
 * Date picker timezone is now always the site’s timezone

#### 2.1

 * Fixed 404 error for republished posts: Removed unused code, added check for scheduled
   publish date, and added deactivation hook to remove custom post meta.
 * Adjusted the datepicker to start the week on Sunday and added an onSelect event
   handler to call the checkTime function.
 * Improved the date parsing logic and scheduling of content updates in the content-
   update-scheduler.php file.

#### 2.0

 * Fixed bug with date selection

#### 1.9

 * Ensure correct copying and maintenance of WooCommerce stock status during republication
   process and when saving the republication draft
 * Update WooCommerce stock status and quantity from the original product before
   updating during republication

#### 1.8

 * Various bug fixes

#### 1.7

 * Fixed fatal error when class definition of metadata is missing and skip copying
   over metadata entries that fail to unserialize

#### 1.6

 * Updated functions to handle post ID references correctly and ensure “Republication
   Date” column appears for all post types
 * Corrected nonce verification, function call, and meta data deletion for scheduled
   date handling

#### 1.5

 * Updated meta field references during republication to handle original post ID
   correctly

#### 1.4

 * Copy all meta fields dynamically for maximum compatibility with custom fields,
   WooCommerce products, etc.

#### 1.3

 * Elementor compatibility: Updated handling of Elementor CSS and added meta data
   copying

#### 1.2

 * Fixed the incorrect usage of action and filter hooks
 * Moved CSS output to admin_head action to avoid ‘header already sent’ error
 * Ensured all meta fields are correctly copied when creating the republication 
   draft for WooCommerce variable products

#### 1.1

 * Pull request #4 from Immediate Media merged (Github)
 * Use local WordPress time zone instead of UTC+1
 * Retain original post author
 * Deduplication of some pieces of code
 * Deprecated functions and practices reduced
 * Replaced the date_i18n() function with the newer wp_date() function
 * Simplified the checkTime function in js/publish-datepicker.js
 * Wrapped wp_get_current_user() call in a conditional to check if the user is logged
   in

#### 1.0

 * First version.

## Meta

 *  Version **4.0.2**
 *  Last updated **4 ай ago**
 *  Active installations **2 000+**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/content-update-scheduler/), [Japanese](https://ja.wordpress.org/plugins/content-update-scheduler/),
   [Spanish (Spain)](https://es.wordpress.org/plugins/content-update-scheduler/),
   һәм [Swedish](https://sv.wordpress.org/plugins/content-update-scheduler/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/content-update-scheduler)
 * Tags
 * [publication](https://tt.wordpress.org/plugins/tags/publication/)[republish](https://tt.wordpress.org/plugins/tags/republish/)
   [schedule](https://tt.wordpress.org/plugins/tags/schedule/)[scheduling](https://tt.wordpress.org/plugins/tags/scheduling/)
   [update](https://tt.wordpress.org/plugins/tags/update/)
 *  [Advanced View](https://tt.wordpress.org/plugins/content-update-scheduler/advanced/)

## Ratings

 4.3 out of 5 stars.

 *  [  9 5-star reviews     ](https://wordpress.org/support/plugin/content-update-scheduler/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/content-update-scheduler/reviews/?filter=4)
 *  [  1 3-star review     ](https://wordpress.org/support/plugin/content-update-scheduler/reviews/?filter=3)
 *  [  1 2-star review     ](https://wordpress.org/support/plugin/content-update-scheduler/reviews/?filter=2)
 *  [  1 1-star review     ](https://wordpress.org/support/plugin/content-update-scheduler/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/content-update-scheduler/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/content-update-scheduler/reviews/)

## Contributors

 *   [ Constantin Oesterling ](https://profiles.wordpress.org/infinitnet/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/content-update-scheduler/)