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.

Advanced Schedule Posts


Allows to you to set the datetime of expiration and the schedule which overwrites the another post.

Datetime of Expiration

When it becomes the datetime of expiration, the status of post is changed to ‘draft’.

Overwrite the another post

When the scheduled post(A) is published by wp cron, the new post(A) overwrite the another post(B) and the old post(B) is changed to draft.
The slug of the new post(A) is changed to the slug of the old post(B).
The slug of the old post(B) is changed to the slug of the new post(A).

This Plugin published on GitHub.


  • Setting - Expire
  • Setting - Overwrite
  • Posts
  • List of Schedule Posts
  • Initial Settings
  • Guternberg editor


  1. Upload ‘advanced-schedule-posts’ folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.


March 16, 2021
It appears to hide the post (somehow) with a status of "Published". At the scheduled time for expiration, it changes the post to a status of "Draft" - from hidden to hidden. What's the point? I was trying to use this plugin to schedule a post for when to appear and then disappear. At first I thought it simply conflicted with built-in scheduler for when to appear. However, after trying for an hour to get this to work, I tried only scheduling the expiration. That's when I discovered the post never shows when scheduled for expiration.
July 29, 2020
I'm using the latest version of Wordpress (5.4.2), the expire post features work well with 24 hours time format (H:i). Other time format like g:i a / g:i A, the expire post will run on date only. The expire post features also compatible with woocommerce product too, it can set woocommerce product to draft on certain date and time. I'm going to test the overwrite features which also come with this plugin. I hope the developer will keep update the plugin (security, etc).
June 21, 2020
This plugin helps me so much to expire post or page on the date I want. Thank you for creating this plugin. Hope you will be more successful in your career and your life. Thank you again for helping us. Cheers.
September 3, 2019
更新予約プラグインを探していましたが、古いものしかなくこちらを利用させていただきました。 slugを変更することなく新しい記事に差し替え予約ができるのでとても便利です。 Gutenbergでも動作するようになり、非常に助かりました。
Read all 8 reviews

Contributors & Developers

“Advanced Schedule Posts” is open source software. The following people have contributed to this plugin.




  • Bug Fix.


  • Bug Fix.


  • Bug Fix.


  • Bug Fix.


  • Bug Fix.


  • Bug Fix.


  • Bug Fix.


  • Generate a revision when overwritten.
  • PHP Notice Error Fix.


  • Support the Gutenberg editor from WordPress 5.0.
  • Set the reservation time to 00 seconds.
  • The Overwrite logic changed. After overwriting, The slug of the old post(B) is changed to the slug of the new post(A).
  • Bug Fix.


  • Bug Fix: html escaped post_title with esc_html().


  • Show schedule post list.
  • Multiple reservation.
  • When overwrite the another post, it change the post_id that is included in the ‘ACF Post Object Field’.
  • Change the display position of this plugin’s input-box into the Publish’s meta-box.
  • Change the width of input-box and select-box to 100%.
  • Sort the overwrite post list by parameter of ‘menu_order'( Respect for Intuitive Custom Post Order plugin). Defaults to ‘post_date’.
  • Enable Custom Post Types with parameter ‘public’ => ‘false’.
  • Bug Fix: Process when the overwrite destination can not be found.
  • Bug Fix: Improved Tag disappears in the editor.


  • Select function that you want to enable.

  • Bug Fix: Unsetting with Quick Edit For v4.7.2.


  • Bug Fix: Unsetting with Quick Edit.


  • Select Post Types that you want to enable.


  • When overwrite the another post, it change the post_id that is included in the menu objects.


  • Do action improved.( !is_admin() )


  • Overwrite function was changed from ‘wp-cron.php’ into ‘init action hook’.


  • Initial Release.