{"id":277082,"date":"2026-02-24T22:37:17","date_gmt":"2026-02-24T22:37:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/scheduled-content-dashboard\/"},"modified":"2026-04-23T15:02:34","modified_gmt":"2026-04-23T15:02:34","slug":"scheduled-content-dashboard","status":"publish","type":"plugin","link":"https:\/\/kaa.wordpress.org\/plugins\/scheduled-content-dashboard\/","author":7640281,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.8","stable_tag":"2.0.8","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Scheduled Content Dashboard","header_author":"jeangalea","header_description":"Displays all scheduled posts, pages, and custom post types on the WordPress dashboard with quick edit links.","assets_banners_color":"e8eff2","last_updated":"2026-04-23 15:02:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/scheduled-content-dashboard\/","header_author_uri":"https:\/\/jeangalea.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":327,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"jeangalea","date":"2026-02-24 22:37:07"},"2.0.0":{"tag":"2.0.0","author":"jeangalea","date":"2026-04-21 11:56:05"},"2.0.1":{"tag":"2.0.1","author":"jeangalea","date":"2026-04-21 11:59:01"},"2.0.2":{"tag":"2.0.2","author":"jeangalea","date":"2026-04-21 12:01:37"},"2.0.3":{"tag":"2.0.3","author":"jeangalea","date":"2026-04-21 12:09:10"},"2.0.4":{"tag":"2.0.4","author":"jeangalea","date":"2026-04-21 12:11:20"},"2.0.5":{"tag":"2.0.5","author":"jeangalea","date":"2026-04-21 12:13:35"},"2.0.6":{"tag":"2.0.6","author":"jeangalea","date":"2026-04-21 16:39:43"},"2.0.7":{"tag":"2.0.7","author":"jeangalea","date":"2026-04-22 20:31:08"},"2.0.8":{"tag":"2.0.8","author":"jeangalea","date":"2026-04-23 15:02:34"}},"upgrade_notice":{"2.0.0":"<p>Major release. Adds full editorial calendar page with drag-and-drop, REST API, and optional email digest. The plugin grows beyond &quot;dashboard widget only&quot; \u2014 but the widget and all 1.x features still work the same way.<\/p>","1.2.0":"<p>Adds settings page, mini calendar view, post type and author filters, and optional drafts display. Existing users don&#039;t need to change anything \u2014 defaults match previous behaviour.<\/p>","1.1.0":"<p>Adds missed-schedule detection with free auto-fix, admin bar counter, and per-user filtering. Auto-fix is on by default \u2014 disable with the scheduled_content_dashboard_auto_fix_missed filter if you want manual control.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3511755,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3511755,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3511755,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3511755,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3511755,"resolution":"1","location":"assets","locale":"","width":1154,"height":454}},"screenshots":{"1":"The Scheduled Content widget grouping posts by when they're due","2":"Missed-schedule detection flagging stuck posts with a \"Publish now\" button","3":"Admin bar counter showing scheduled post count"}},"plugin_section":[262246],"plugin_tags":[434,11916,69797,6502,162],"plugin_category":[43],"plugin_contributors":[78515],"plugin_business_model":[],"class_list":["post-277082","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-dashboard","plugin_tags-editorial-calendar","plugin_tags-missed-schedule","plugin_tags-scheduled","plugin_tags-widget","plugin_category-customization","plugin_contributors-jeangalea","plugin_committers-jeangalea"],"banners":{"banner":"https:\/\/ps.w.org\/scheduled-content-dashboard\/assets\/banner-772x250.png?rev=3511755","banner_2x":"https:\/\/ps.w.org\/scheduled-content-dashboard\/assets\/banner-1544x500.png?rev=3511755","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/scheduled-content-dashboard\/assets\/icon-128x128.png?rev=3511755","icon_2x":"https:\/\/ps.w.org\/scheduled-content-dashboard\/assets\/icon-256x256.png?rev=3511755","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/scheduled-content-dashboard\/assets\/screenshot-1.png?rev=3511755","caption":"The Scheduled Content widget grouping posts by when they're due"}],"raw_content":"<!--section=description-->\n<p>Scheduled Content Dashboard gives you a clean view of everything queued up for publication. It adds a dashboard widget grouping scheduled content by when it's due, a full editorial calendar page where you can drag posts to different days, flags posts WordPress failed to publish on time, and quietly republishes them for you.<\/p>\n\n<p>Most scheduling plugins bolt on social sharing, complex settings, and marketing upsells. This one doesn't. It shows what's scheduled, lets you reshuffle it, and keeps it publishing. That's it.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Full editorial calendar page<\/strong> \u2014 full-screen month grid with drag-and-drop rescheduling (time of day preserved)<\/li>\n<li><strong>Dashboard widget<\/strong> \u2014 scheduled content grouped by Today, Tomorrow, This Week, Next Week, and Later<\/li>\n<li><strong>Mini calendar view<\/strong> \u2014 switch the widget to a month grid with dots on days that have scheduled posts<\/li>\n<li><strong>Missed-schedule detection<\/strong> \u2014 posts stuck in <code>future<\/code> status past their date are flagged in red<\/li>\n<li><strong>Auto-fix missed schedules<\/strong> \u2014 quietly republishes stuck posts on admin page loads (most competitors gate this in a paid tier)<\/li>\n<li><strong>One-click \"Publish now\"<\/strong> \u2014 manually push any missed post live from the widget<\/li>\n<li><strong>Admin bar counter<\/strong> \u2014 see how many posts are scheduled (and if any are missed) from anywhere in the admin<\/li>\n<li><strong>Optional email digest<\/strong> \u2014 daily or weekly summary of missed + upcoming posts to any recipients<\/li>\n<li><strong>REST API<\/strong> \u2014 endpoints for scheduled, missed, counts, publish-now, and reschedule<\/li>\n<li><strong>Post type + author filters<\/strong> \u2014 drill down inside the widget without leaving the dashboard<\/li>\n<li><strong>\"Mine only\" toggle<\/strong> \u2014 multi-author sites can filter the widget to the current user's content<\/li>\n<li><strong>Drafts in widget (optional)<\/strong> \u2014 show drafts alongside scheduled items<\/li>\n<li><strong>Settings page<\/strong> \u2014 configure item limit, which post types to include, default view, auto-fix, and digest<\/li>\n<li><strong>All public post types<\/strong> \u2014 posts, pages, products, events, custom post types<\/li>\n<li><strong>Privacy-friendly<\/strong> \u2014 no tracking, no external requests, no cookies<\/li>\n<\/ul>\n\n<h4>Use cases<\/h4>\n\n<ul>\n<li>Editorial teams managing a content calendar<\/li>\n<li>Bloggers scheduling posts in advance<\/li>\n<li>Agencies juggling multiple client sites<\/li>\n<li>Anyone frustrated by WordPress missing scheduled publish times<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin does not collect data, send data to external servers, use cookies, or track users. Everything displayed is already in your WordPress database.<\/p>\n\n<h4>Developer hooks<\/h4>\n\n<pre><code>scheduled_content_dashboard_query_args \u2014 filter the WP_Query args used for the scheduled content list.\n\nscheduled_content_dashboard_auto_fix_missed \u2014 return `false` to disable the auto-publish of missed scheduled posts.\n<\/code><\/pre>\n\n<h4>REST API<\/h4>\n\n<p>Base namespace: <code>scheduled-content-dashboard\/v1<\/code>. All endpoints require a logged-in user with the <code>edit_posts<\/code> capability.<\/p>\n\n<ul>\n<li><code>GET \/scheduled<\/code> \u2014 list scheduled posts (query args: <code>post_type<\/code>, <code>author<\/code>, <code>limit<\/code>)<\/li>\n<li><code>GET \/missed<\/code> \u2014 list missed scheduled posts<\/li>\n<li><code>GET \/counts<\/code> \u2014 return <code>{ total, scheduled, missed }<\/code><\/li>\n<li><code>POST \/publish\/{id}<\/code> \u2014 publish a scheduled post now<\/li>\n<li><code>POST \/reschedule\/{id}<\/code> \u2014 change a scheduled post's publish date (body: <code>date<\/code> in any format <code>strtotime()<\/code> understands)<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Go to Plugins &gt; Add New in your WordPress admin<\/li>\n<li>Search for \"Scheduled Content Dashboard\"<\/li>\n<li>Click Install Now, then Activate<\/li>\n<li>Visit your Dashboard to see the widget<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20does%20the%20widget%20appear%3F\"><h3>Where does the widget appear?<\/h3><\/dt>\n<dd><p>On your main WordPress admin dashboard. You can drag it to reposition it among your other widgets.<\/p><\/dd>\n<dt id=\"what%20content%20types%20are%20displayed%3F\"><h3>What content types are displayed?<\/h3><\/dt>\n<dd><p>All public post types: posts, pages, and any custom post type registered as public (products, events, portfolios, etc.).<\/p><\/dd>\n<dt id=\"what%20is%20a%20%22missed%20schedule%22%3F\"><h3>What is a \"missed schedule\"?<\/h3><\/dt>\n<dd><p>WordPress uses wp-cron to publish scheduled posts at their designated time. If cron doesn't fire (low traffic sites, server cron issues, fatal errors), posts stay stuck in <code>future<\/code> status past their publish date. This plugin detects those posts, flags them, and by default auto-publishes them next time you load an admin page.<\/p><\/dd>\n<dt id=\"how%20do%20i%20disable%20auto-fix%3F\"><h3>How do I disable auto-fix?<\/h3><\/dt>\n<dd><p>Add this to your theme's <code>functions.php<\/code> or a mu-plugin:<\/p>\n\n<pre><code>add_filter( 'scheduled_content_dashboard_auto_fix_missed', '__return_false' );\n<\/code><\/pre>\n\n<p>You'll still see missed posts flagged in the widget with a manual \"Publish now\" button.<\/p><\/dd>\n<dt id=\"how%20many%20scheduled%20items%20are%20shown%3F\"><h3>How many scheduled items are shown?<\/h3><\/dt>\n<dd><p>Up to 50 per group, ordered by scheduled date (soonest first).<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20gutenberg%20%2F%20the%20block%20editor%3F\"><h3>Does this work with Gutenberg \/ the block editor?<\/h3><\/dt>\n<dd><p>Yes. The plugin displays scheduled content and links to standard edit screens \u2014 editor-agnostic.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20multisite%3F\"><h3>Does this work with Multisite?<\/h3><\/dt>\n<dd><p>Yes. Each site has its own widget showing that site's scheduled content.<\/p><\/dd>\n<dt id=\"the%20widget%20isn%27t%20showing%20%E2%80%94%20what%20now%3F\"><h3>The widget isn't showing \u2014 what now?<\/h3><\/dt>\n<dd><ol>\n<li>Confirm the plugin is activated<\/li>\n<li>Confirm you have scheduled content (posts with future publish dates)<\/li>\n<li>On the Dashboard, click Screen Options at the top and make sure \"Scheduled Content\" is ticked<\/li>\n<\/ol><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.8<\/h4>\n\n<ul>\n<li>Editorial calendar: uniform faint borders around every day cell, cleaner outer grid, removed the separator line under the legend.<\/li>\n<\/ul>\n\n<h4>2.0.7<\/h4>\n\n<ul>\n<li>Dashboard widget switching view, toggling \"Mine only\", or applying filters no longer reloads the whole page \u2014 swaps content in place.<\/li>\n<li>Fresh installs now default to the Post type only. Page, Media, and CPTs are unchecked by default.<\/li>\n<li>Settings page now lives under Scheduled \u2192 Settings (was jumping to WP Settings). Old URL redirects automatically.<\/li>\n<li>Editorial calendar: softer day-of-week header, legend has room to breathe.<\/li>\n<\/ul>\n\n<h4>2.0.6<\/h4>\n\n<ul>\n<li>Changed: Editorial calendar visual redesign \u2014 solid dark header row, proper 1px borders on every cell, today cell gets a blue top-bar marker, weekends lightly shaded, other-month days clearly faded, missed days highlighted red<\/li>\n<li>Added: Legend below the calendar showing Scheduled \/ Missed \/ Today<\/li>\n<li>Changed: Item hover states for clearer interactivity<\/li>\n<\/ul>\n\n<h4>2.0.5<\/h4>\n\n<ul>\n<li>Changed: Admin bar counter now links to the full editorial calendar page instead of the dashboard widget<\/li>\n<li>Fixed: Editorial calendar row heights were variable; each day cell is now a fixed 140px and caps at 3 visible items with a \"+N more\" indicator<\/li>\n<\/ul>\n\n<h4>2.0.4<\/h4>\n\n<ul>\n<li>Fixed: Editorial calendar row heights were variable depending on how many posts were scheduled per day (superseded by 2.0.5)<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Changed: Widget item limit default lowered from 15 to 7 \u2014 keeps the widget tight by default, power users can raise it from settings<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Changed: Shortened the wp.org short description to fit the 150-character cap (previously truncated on import)<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Changed: Widget item limit default lowered from 50 to 15 \u2014 the dashboard widget no longer balloons to full height on sites with a heavy schedule<\/li>\n<li>Added: \"+N more scheduled \u2014 open full calendar\" footer link in the widget when there are more scheduled items than the display limit<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added: Full editorial calendar admin page with drag-and-drop rescheduling (jQuery UI)<\/li>\n<li>Added: Top-level \"Scheduled\" menu with Calendar and Settings submenus<\/li>\n<li>Added: REST API (<code>scheduled-content-dashboard\/v1<\/code>) with scheduled, missed, counts, publish, reschedule endpoints<\/li>\n<li>Added: Optional email digest (daily or weekly) sent at 9am local time, configurable recipients<\/li>\n<li>Added: \"Open full calendar\" link in the widget header<\/li>\n<li>Changed: Deactivation cleanly unschedules the digest cron event<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added: Settings page (Settings &gt; Scheduled Content) for item limit, included post types, default view, drafts, auto-fix toggle<\/li>\n<li>Added: Mini month calendar view with per-user preference, dots for days with scheduled posts, missed-day highlighting, and day detail<\/li>\n<li>Added: Post type + author filter dropdowns in the widget (collapsible)<\/li>\n<li>Added: Optional drafts group alongside scheduled content<\/li>\n<li>Added: \"List \/ Calendar\" view switcher per user<\/li>\n<li>Changed: Auto-fix now also respects the settings UI toggle in addition to the filter<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: Missed-schedule detection with red flagging in the widget<\/li>\n<li>Added: Auto-fix missed scheduled posts (admin-page-load cron, filterable)<\/li>\n<li>Added: One-click \"Publish now\" button for missed posts<\/li>\n<li>Added: Admin bar counter showing scheduled + missed post counts<\/li>\n<li>Added: \"Mine only\" toggle to filter the widget by current user<\/li>\n<li>Added: <code>scheduled_content_dashboard_auto_fix_missed<\/code> filter<\/li>\n<li>Changed: Scheduled items query skips missed posts (they render in their own group)<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Dashboard widget with grouped scheduled content<\/li>\n<li>Support for all public post types<\/li>\n<\/ul>","raw_excerpt":"Dashboard widget + full editorial calendar with drag-and-drop. Auto-fixes missed schedules. REST API and optional email digest. No bloat.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/277082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=277082"}],"author":[{"embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jeangalea"}],"wp:attachment":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=277082"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=277082"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=277082"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=277082"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=277082"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=277082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}