This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Content Scheduler


Content Scheduler lets you control when content automatically expires, what to do with that content when it expires, and optionally provide notification to site contributors when the content expired.

Expiration Options

You control what happens upon expiration, including:

  • Change status to Pending, Draft, or Private
  • Add custom text to beginning or end of Post title
  • Unstick sticky Posts
  • Change Categories
  • Add and remove Tags
  • Move to the Trash

Notification Options

Content Scheduler can also notify you:

  • When expiration occurs

This reminder helps you keep content fresh, providing a reminder that content is out of date and needs updated or replaced. Content Scheduler lets you use notification tools without making any changes to content upon expiration, if you’d like.


  • The Content Scheduler options screen, where you determine what happens when the expiration date is reached.
  • Content Scheduler can optionally display the expiraton date and status in a column where your Posts and Pages are listed.
  • Scheduling content expiration uses a small, unobtrusive box on your Post and Pages edit screens.


Extract the zip file and just drop the contents in the wp-content/plugins/ directory of your WordPress installation and then activate the Plugin from Plugins page.


Does Content Scheduler work with Network / Multisite installations?

Yes. As of Version 2.0.0, Content Scheduler should actually work on WordPress Network Sites.

My content doesn’t seem to be expiring. What should I do?
  1. Check the plugin setting’s “expiration period” and make sure you have waited at least that long before checking your content for expiration.

  2. Make sure you have actually visited a page on your website after the post’s expected expiration date. WordPress only fires off scheduled tasks when people actually visit the site.

  3. Try simply deactivating the plugin and reactivating it, then testing again.

  4. Other plugins that schedule events might handle scheduling incorrectly, thereby removing Content Scheduler’s expiration period. Again, deactivating and reactivating Content Scheduler should re-instate the scheduling.


September 3, 2016
Sometimes it works, more times it doesn’t. Unpredictable.
September 3, 2016
This sadly appears not to be working. I set it to expire sticky status and to remove a tag, but neither of these things seem to be happening.
Read all 8 reviews

Contributors & Developers

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


Translate “Content Scheduler” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • FIX: Keep DatePicker call out of head if DatePicker disabled; Fixes JS error;


  • FIX: Added some error checking in DateTime class
  • UPDATE: Added back the option to show / hide pop-up DatePicker


  • FIX: Change array_replace for PHP 5.2.x compatibility, oops!


  • FIX: Change DateTime::add to DateTime::modify for PHP 5.2.x compatibility.


  • FIX: Allow changing expiration frequency setting to actually work, instead of default 60 minutes.
  • NEW: Setting to add text to beginning or end of title upon expiration.


  • FIX: Date and Time are now stored as unix timestamps, allowing for proper use of Date / Time formatting, as well as more reliable wp-cron scheduling.
  • FIX: Notifictions should now be triggered only once — as an item expires — and not continue to bug you.
  • FIX: Multisite works properly, allowing each blog to have its own Content Scheduler settings.
  • CHANGE: Datepicker changed to jQuery UI Datepicker with Timepicker add-on.
  • CHANGE: Options are retrieved and stored more efficiently.


  • FIX: addition and removal of post tags
  • CHANGE: removed option for setting absolute list of tags
  • FIX: multiple unwanted notifications
  • CHANGE: removed option for sending notifications prior to notification (only happens upon expiration event now)


  • Changed (de)activation functions to use the $network_wide flag to detect network (de)activation of plugin.


  • FIX: for WordPress 3.3, properly checking for user level allowed to see Content Scheduler fields, values, and shortcodes.
  • FIX: tag manipulation. NOTE: Tags must be comma-seperated.
  • NEW: DEFAULT date and time handling (Set expiration to ‘default’ and then default hours / days / weeks will be added to Publish time to get your expiration time. NEEDS documented!)


  • Users can set how often Content Scheduler checks content for expiration. (Helps not overload server if a lot of Posts exist.)
  • Notification to Authors now works properly.
  • Enhanced tagging ability to add OR remove multiple tags upon expiration. (e.g., +thistag -othertag)
  • Added template tag to be used in the loop for showing a Post’s expiration date.
  • Users can set a default amount of time to add to content for expiration. (e.g., all content could expire 5 days after published date.)
  • Fixed use of deprecated “user_level” for minimum user level that can see Content Scheduler controls.
  • Fixed bug in shortcode that displays a post’s expiration date.
  • Brushed up WordPress Multisite / Network support.
  • Added new debug info to Settings screen (if user has WP_DEBUG = true in wp-config.php)
  • Changed name of Content Scheduler variables from cs-enable-schedule to _cs-enable-schedule and cs-expire-date to _cs-expire-date (underscore hides fields from standard Custom Fields dialog on Edit screens.)


  • Implemented a fix for users with PHP version earlier than 5.3.


  • Added i18n support
  • Changed plugin option values that were english strings into numerical values


  • Ensured WordPress-configured timezone is honored upon plugin activation so expiration periods are not inadvertently delayed.


  • Added ability to select minimum user level that can see Content Scheduler fields and shortcodes.


  • Added support for Custom Post Types.
  • Added ability to add Tag(s) to expired items.
  • Added shortcode to display exipiration time in content.


  • Added the “Expiration period” option on the settings screen. This allows users to tell WordPress how often Content Scheduler expiration times should be checked.


  • First public release.