SharePoint Publishing Scheduling

So you’re going about your business in SharePoint, say when you want to publish an article page.  You open the page and click on Publish, and the Schedule option isn’t there!  Ack!  Oh the humanity!  If you’re uploading a document, the schedule items appear on the edit properties (editform.aspx) dialog. 

You may be asking, what scheduling option?  Well, it’s the option for being able to publish pages at a future date and time and is activated at the document library level.  If you have a publishing site, this feature should already be activated on the Pages library.  But it can be enabled on any site/library under the right conditions.  This is very likely a simple fix.  Let’s review the items to check.

  1. First, is this SharePoint Foundation?.  Item Scheduling is a component of the publishing features, which aren’t in Foundation.  Sorry, get used to it.
  2. As I said, it requires the publishing features.  Check to ensure you have the SharePoint Server Publishing Infrastructure site collection feature activated, and the SharePoint Server Publishing site feature.
  3. There’s a few other prerequisites at the library level as well.  Go to the library settings, and check the following:
    1. Make sure Content Approval is enabled (General settings –> Versioning Settings).
    2. Make sure Versioning is enabled, with both major and minor versions (General settings –> Versioning Settings).
    3. Make sure Enable Item Scheduling is checked (General settings –> Manage Item Scheduling).

Enable Item Scheduling

There’s also a Scheduling timer job, but this is likely already enabled.  The last option 3c is what I had missed.  After checking the box, the options appeared.  So you would likely see this if you created a Team Site, then activated the publishing features.  MSDN published a nice walkthrough of the above steps.

You can also enable this setting via PowerShell.  PowerShell guru Phil Childs runs a fantastic blog over at get-scripts.com.  He published an article on setting these options that can be found here.  Enable Item Scheduling isn’t set through these normal methods, but via the PublishingWeb methods.  In the comments, he posted this simple script to enable or disable item scheduling on the library.

#To disable:
$web = Get-SPWeb http://portal
$list = $web.Lists["Pages"]
[Microsoft.SharePoint.Publishing.PublishingWeb]::DisableScheduling($list)
#To enable:
$web = Get-SPWeb http://portal
$list = $web.Lists["Pages"]
[Microsoft.SharePoint.Publishing.PublishingWeb]::EnableScheduling($list)