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.

Editorial Calendar


Did you remember to write a post for next Tuesday? What about the Tuesday after that? WordPress doesn’t make it easy to see when your posts are scheduled. The editorial calendar gives you an overview of your blog and when each post will be published. You can drag and drop to move posts, edit posts right in the calendar, and manage your entire blog.

Watch the video

Try it out

Try the calendar before you install it. Check out the demo installation at Zack’s WordPress Sandbox. You can log in with the username and password test.


  1. See all of your posts and when they’ll be posted.
  2. Drag and drop to change your post dates.
  3. Manage your drafts with our new drafts drawer.
  4. Quickedit post titles, contents, and times.
  5. Publish posts or manage drafts.
  6. Easily see the status of your posts.
  7. Manage posts from multiple authors.

Make it better

Thank you to everyone who has given us feedback and helped us improve this plugin. If you have questions, problems, or ideas for new features please let us know at

Translate it

Again, thanks to all who have already helped make the plugin available in so many languages. If you would like to help us translate the plugin into your language, or if you use it in a language other than English already and would like to help us keep it up to date, please write to us at


  • The calendar integrates seamlessly into the WordPress administration console
  • See the big picture with a view of all your posts and when they’ll be published.
  • Drag and drop posts to easily change dates and take control of your blog.
  • Create, edit, and schedule posts in one simple quickedit dialog.
  • Show as much or as little of your blog as you like.
  • Use a special calendar for each custom post type on your blog.
  • Use the new unscheduled drafts section to manage drafts before you schedule them.


  1. Backup your WordPress database.
  2. Upload the plugin directory editorial-calendar to the wp-content/plugins directory.
  3. Activate the plugin through the ‘Plugins’ menu in WordPress.
  4. Click the new ‘Calendar’ option under the ‘Posts’ menu or any other custom post types.


What is an editorial calendar?

An editorial calendar is simply a plan for your blog. It is thinking ahead about what you’re going to write. There’s a detailed explanation of editorial calendars at The Easy-to-Use Tool that Helps You Build a Breakthrough Blog from Copyblogger.

What are other people saying about the calendar?

From time to time people write articles about the editorial calendar. We appreciate every one.

5 Reasons You’ll Love the WordPress Editorial Calendar by Annabel Candy

Use An Editorial Calendar by Chris Brogan

Blogging For Web Designers: Editorial Calendars and Style Guides by Jessica Bordeau at Smashing Magazine

Editorial Calendar WordPress plugin review
by Stephen Duckworth at My Digital Internet

Brogan is right – the “Editorial Calendar” WordPress plugin truly rocks! by Dan York

Editorial Calendar Plugin for WordPress by Steve Campbell

An Editorial Calendar Plugin For WordPress
by Marketplace Mommies

Great WP Plugin for Online Editors: Editorial Calendar by Mequoda Daily

Drag and Drop Post Scheduling with the Editorial Calendar WordPress plugin by Chris Garrett

WordPress Plug-In Plug: Editorial Calendar on The Incidental Economist

How To Use The Editorial Calendar For WordPress by Rezdwan Hamid

Visually Manage Your Post Publication Dates with the Editorial Calendar WordPress Plugin on WordCast

Powerful Plugins That Keep You Organized and Increase Your Productivity at

SEO Copywriting Checklist for WordPress Blogs on @WebSuccessDiva is a good article about SEO and using an editorial calendar.

Can I see a demo of the calendar?

Check out our demo installation at Zack’s WordPress Sandbox.

How do I get help using the calendar?

The WordPress Editorial Calendar Google Group is a good place to ask questions, find answers, and post feedback. We also follow the forum Editorial Calendar discussion.

How do I navigate in the calendar?

You can move around in the calendar using the arrows next to the months at the top or your mouse wheel. You can also move using your keyboard:

  • Move 1 week into the past – Up Arrow
  • Move 1 week into the future – Down Arrow
  • Jump multiple weeks into the past – Page Up or Ctrl+Up Arrow
  • Jump multiple weeks into the future – Page Down or Ctrl+Down Arrow

How do I change the first day of the week?

The editorial calendar follows the Week Starts On preference on the WordPress General Settings page. Choose the day you want and the calendar will use that day as the first day of the week.

What languages does the calendar support?

The calendar is available in Brazilian Portuguese, Croatian, Czech, Danish, Dutch, English, French, German, Greek, Hebrew, Italian, Japanese, Lithuanian, Norwegian, Polish, Russian, Spanish, and Swedish.

Can I add new languages?

Yes please! We are looking for translators. It only takes about 20 minutes. If you’re interested please contact us.

How does the calendar work

The calendar is written in JavaScript. It contacts your blog when it scrolls to get data about your posts. Just like Google Maps. Creating a JQuery Powered Posts Calendar for WordPress explains a lot of the technical details.

Is the calendar collecting data about my blog?

After you use the calendar a few times we’ll prompt you to let us collect a little data about your blog. Information like the size of your browser window and the number of posts you have per day help us make the calendar even better.

The collected data is all available to the public. Check out the Editorial Calendar Statistics.

What users can use the calendar?

The editorial calendar works differently based on your permissions.

  • Administrators and Editors can use every feature available in the calendar.
  • Authors can use the calendar to edit, move, and publish their own posts, but other people’s posts are read-only.
  • Contributors see everyone’s posts and move their own posts, but can only save drafts.
  • Subscribers can’t see the calendar.

You can see how it looks for different users on our Zack’s WordPress Sandbox with the following users:

  • edgar the Editor
  • alice the Author
  • conrad the Contributor
  • sam the Subscriber

Each of these users has the password test.

Can I use the editorial calendar with pages?

Right now the calendar only supports posts. We’re considering adding pages. If you would like to see pages show up in the calendar let us know.

Does the calendar support group blogs?

If your blog has multiple authors the calendar will work just fine. You can show author names right in the calendar. Just look under screen options.

We are currently working on new features for multi-author blogs. If you have any ideas please contact us.

Can my readers tell I’m using the editorial calendar?

No. The calendar is only an administration tool. None of your readers will know you’re running it unless you tell them.

Why can’t I move published posts?

Moving published posts can cause problems with some RSS feeds and is generally not a very popular thing to do. The calendar only allows you to move scheduled and draft posts.

Can I change post colors or styles in the calendar?

You can style the posts in the calendar with CSS on your blog. The calendar adds a new CSS class to your post for every catalog. The class is based on the slug for the category.

For example, if you have a category named “My Category” you might have a slug for it named “my-category”. Then you can make all posts with that category show up as red in the calendar with CSS like this: {
    color: red;

You can use any CSS properties to change posts in the calendar based on the post category.

Can I change default post time or status when creating new posts?

The calendar allows you to create new posts. The default time for this new posts is 10:00 AM and the default status for this new posts is draft. You can change those values by specifying options in your blog.

The edcal_default_time property controls the default time for new posts in the calendar. This value is in 24 hour time and you can change it by specifying the time in a format like 11:00.

The edcal_default_status property controls the default status for new posts in the calendar. The allowed values are draft, future, and pending for the statuses of Draft, Scheduled, and Pending Review respectively. This value will only be used if the current user doesn’t have access to change that status. For example, if you’re an author then you can’t use a default status of pending since you aren’t allowed to publish posts.


Oktober 27, 2020 3 replies
I’ve been using this calendar for a while and love the simplicity. It does exactly what it’s supposed to do and isn’t bogged down by other non related functions. It could benefit from a little work on the UI, i.e., color coding post status (draft, published). It currently uses a subtle coloring of those statuses, but I’d love to see something more obvious. Given that that’s a personal preference and this calendar does everything else I need, I’m giving it a solid five stars.
Augustus 5, 2020 1 reply
Hi I very like this plugin. work as i wish. and I have seen .php .js code file and comment, I like because explanation so polite.
Read all 76 reviews

Contributors & Developers

“Editorial Calendar” is oopbron sagteware. Die volgende mense het bygedra tot die ontwikkeling van hierdie uitbreiding:


“Editorial Calendar” has been translated into 11 locales. Thank you to the translators for their contributions.

Translate “Editorial Calendar” into your language.

Interested in development?

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



  • Updated the allowed tags to allow script tags.


  • Improved posts sanitization.


  • Improved compatibility with PHP 8 and up.
  • Fixed sanitization on saving options.


  • Fixed error occurred while loading the calendar: undefined.


  • Fixed Vulnerability type: Cross Site Scripting (XSS).


  • Updated roles and capabilities.
  • Fixed data validation.
  • Fixed security issues.


  • The calendar will now add a CSS class for the post category on published posts and not just unpublished posts.


  • We’re now avoiding an error that shows up on the JavaScript console when opening the quick edit dialog.
  • This version adds support for Hungarian. A big thank you to @harasztigyula for providing this translation.


  • Fixed a minor error in two resourced strings so we can properly translate the drafts drawer title.


  • This version adds support for Traditional Chinese. A big thank you to Alex Lion for providing this translation.


  • This version fixes a CSS layout issue so the calendar works with WordPress 5.6.


  • This version tweaks the libraries that support the calendar to avoid warnings from the Enable jQuery Migrate Helper plugin.


  • The calendar now support quick edit when a post has either a title or content instead of requiring a title.


  • Fixed a specific issue which made the calendar show up as right to left instead of left to right in Dutch.


  • We are now making sure to set the correct right to left and left to right orientation in every language file.


  • This version fixes an error with the drafts drawer that broke compatibility with WordPress 5.0.


  • We now have an option so you can choose if you want to scroll the calendar with the mouse wheel or not.


  • The calendar no longer responds to the mouse wheel. We did some user testing and it was a better experience without having to worry about the mouse wheel.
  • The current date range is now doing a better display job and not jumping around when the date changes.


  • The calendar now properly shows scrollbars for individual days when there are too many posts in a single day.
  • The calendar is now showing the correct left to right orientation in Turkish.


  • The calendar is now showing in the correct left to right orientation in Japanese.


  • Added a new video and did complete testing to make sure the calendar is fully compatible with the latest version of WordPress.


  • The calendar will no longer prompt new users to collect data about how they use the calendar. We have all the data we need for now.
  • The calendar has now been updated and tested for WordPress version 4.9.1.


  • The calendar has now been updated and tested for WordPress version 4.8.


  • The calendar has now been updated and tested for WordPress version 4.7.


  • The calendar has now been updated and tested for WordPress version 4.5.
  • We have a new translation in turkish with updated strings and language fixes.


  • The calendar has now been updated and tested for WordPress version 4.4.


  • The calendar has now been updated and tested for WordPress version 4.3.1.


  • The calendar has now been translated into Turkish and updated for WordPress version 4.2.


  • The calendar has now been translated into Danish. Thank you to our Danish translator Thomas Christensen.


  • This version fixes an error handling apostrophes and ampersands in post titles in WordPress 4.0.


  • We now have a new option for specifying the default status of a new post and documented the option for specifying the default time of a post.
  • The calendar is now doing a better job of reporting errors when it can’t parse the post information from the blog.


  • This version is exactly the same as version 3.1, but it’s been fully tested against WordPress 3.9.


  • The calendar now adds the category slugs for each post as a class for the line of that post in the calendar.
  • The calendar has a new option called edcal_custom_posts_public to control if the calendar shows for private custom posts or not.


  • This version makes a few small bug fixes to work well with WordPress 3.8. This includes showing the screen options with some better formatting and deleting posts from the drafts drawer properly.


  • This version makes sure everything works great with WordPress 3.7.1.


  • This version makes sure everything works great with WordPress 3.6 and jQuery 2.0. It also has a couple of small bug fixes.


  • The calendar is now available in Italian thanks to Lorenzo Boldorini who blogs at
  • Changed all calls of the jQuery live method to use the new on method so the calendar will keep working when WordPress upgrades to jQuery 1.9.
  • The Mozilla team is now using the Editorial Calendar in one of their blogs and performed a security review of the calendar. They found a couple of potential issues which were fixed in this release.
  • The Editorial Calendar is now stripping all tags out of post titles created from the calendar. This fixes a potential security issue found by the Mozilla security testing team.
  • We are now preventing a potential SQL injection attack with the start date and end date filter when querying posts. This fixes a potential security issue found by the Mozilla security testing team.
  • We are adding an extra check to make sure that authors can’t delete a post created by another author. This fixes a potential security issue found by the Mozilla security testing team.


  • Fixed some layout issues with the previous and next calendar buttons in WordPress 3.5.
  • We are now properly saving new posts in the drafts drawer in WordPress 3.5.
  • Added unit tests to cover creating a new post in the drafts drawer.
  • Added a few performance improvements to the calendar like making sure we only load our code in the admin console.


  • The calendar is now handling the post ID in the same way for each call it uses to get data about each post when returning post data to the calendar to avoid some PHP warnings.
  • The calendar is now more careful about PHP warnings so it still works if the blog is set to show PHP warnings.
  • The unit tests are now using the correct CSS reference so they show up properly.
  • Moved the setting for the default post time to the edcal.php so it’s easier to change without recompiling the JavaScript.
  • The calendar now supports Russian thanks to Danny Zawacki and Lyudmila Kostryka. Danny blogs at
  • We have started to namespace css classes to avoid conflicts with other plugins & themes.


  • Creating a new unscheduled draft is now working properly from the calendar.


  • The calendar is now loading relative URLs for CSS, JavaScript, and image files using the right API so they load properly when using SSL.


  • Fixed a memory leak in the calendar where the calendar doesn’t load if you have too many posts in your blog.


  • The calendar is using JavaScript compression to load less data and run faster.
  • We’ve added a new mechanism to load the unscheduled drafts which spaces out the loading so the calendar responds super fast even when you have hundreds of unscheduled drafts.
  • Added a new button to jump to the last post in the calendar.
  • Added a namespace to fix a small issue of potential JavaScript file conflict with wp_enqueue_script().


  • The calendar now moves posts from the drafts drawer to the main calendar properly on blogs with the alternate functionality of the date function.
  • The calendar can now display up to eight weeks at a time instead of just five.


  • The calendar now has a new major feature, the “drafts drawer,” a post staging area where we make all unscheduled posts available to drag onto the calendar. You can also now drag posts from the calendar back into the drafts drawer to “un-schedule” them.
  • Moved around functions in the js and css to be a bit more readable, and added table of contents to css file.
  • Updated css of Screen Options to be more core WordPress.


  • The calendar is no longer blocking typing in the calendar quick edit dialog.


  • The calendar is now translated into Lithuanian. Thanks to Vincent G. from


  • The calendar is now using the proper he_IL locale code for Hebrew instead of he.


  • The calendar is now translated into Spanish. Thanks to Alberto Balsalobre Rios who blogs at
  • The calendar is now translated into Hebrew including right to left language support. Thanks to Meir Pinto who blogs at Pintolog.


  • The calendar is now translated into Norwegian.
  • The mouse wheel scrolling with the calendar is now working properly on WordPress 3.3. Previously it would only scroll up (into the past) and not down (into the future).
  • The calendar is now translated into Japanese. Thanks to Masahiro who blogs at
  • Support for WordPress version 3.3.1.


  • Version 1.7 supports WordPress 3.3 with fixes to the date display of newly created posts and alignment and margins of each day in the calendar.
  • The calendar is now scrolling in the right direction with the up and down arrows keys.


  • The calendar is now setting the correct post time for manual set times at noon or midnight instead of changing it by 12 hours.
  • The up, down, page up, and page down keys are now working properly for moving around in the text in the quick edit dialog.
  • The calendar is now translated into Swedish. Thanks to Johan Landström.


  • The post time field in the quick edit dialog is now editable so you can specify any time you want instead of having to pick in 30 minute increments.
  • The calendar is now translated into German. Thanks to Matthias Nattke who uses the Editorial Calendar on his site Kikamagazin Bloggt.
  • The calendar is now supporting a special post type “edcal_show_calendar_” to make sure certain custom post types don’t show up in the calendar.


  • We now have a new look and feel for the quick edit dialog and a few other elements to match WordPress 3.2.
  • We’ve refactored the Editorial Calendar into a PHP class for easier maintainability and better scoping.


  • The calendar now shows authors properly when they have double quotes in their names


  • The calendar now supports Dutch. Thanks to Helma Paternostre.
  • We are no longer including the thickbox media upload files so the calendar loads faster.
  • The calendar now loads JQuery UI drag and drop support from WordPress instead of embedding the code. This allows us to upgrade to the latest version of JQuery UI, avoid some conflicts with other plugins, and load faster.
  • Fixed an error with the message panels so they will close properly on Chrome.


  • We are now showing the full post content in the quick edit dialog even if there is a more tag
    so we don’t overwrite the post without the full post content.


  • Added an extra check so we aren’t calling functions for supporting custom post types when they aren’t available. This problem only happens on WordPress 2.9.X.


  • The Editorial Calendar will now show up for each custom post type and support a separate calendar for each type.
  • We are now disabling the save button on the quick edit dialog after it is pressed and before the post saves to prevent duplicate posts if the user presses the button twice in a row.
  • Upgraded the to the latest version of QUnit for our unit test framework
  • The calendar now supports Brazilian Portuguese. Thanks to Janio Sarmento who uses the Editorial Calendar on his site O Blogue do Janio.


  • We are now smarter about the way we scroll the calendar day to show the action links when the day has scroll bars.
  • The calendar is now doing a better job determining the height of the list of posts in each day so the posts don’t overlap other days.
  • The calendar will now show an error message when it can’t load due to JavaScript conflicts with other plugins.


  • There was a security hole in the calendar that allowed contributors to publish posts when they couldn’t in the standard edit screen. We now only allow contributors to save drafts and schedule a post for review.
  • Changed the easing we are using for the animation of the calendar so we can work with the BuddyPress plugin.
  • Changed the text of the edit link on published posts from Republish to Edit.


  • Fixed a scrolling issue that prevented clicking the action links on the last post if the individual day showed a scroll bar.


  • The calendar now uses the QUnit unit test framework to make sure the calendar maintains high quality in every release. You can see the tests run on our integration blog or run them on your own blog by adding &qunit=true to the end of the URL for the calendar.
  • Made it easier to see the first day of the month using a special header and background color.
  • Changed to a lighter gradient for the calendar header to match the new theme of WordPress 3.0.
  • We now support pending review posts in the calendar.
  • The calendar supports a feedback mechanism where we collect data about your use of the calendar. This anonymous data helps us improve the calendar and know which areas to focus on. Everyone can view the Editorial Calendar Statistics.
  • Auto-drafts are now hidden from the calendar.


  • We got the message and added an edit link that takes you to the WordPress edit page in addition to a link for the quick edit dialog in the calendar.
  • The calendar will now remember the last date and start there again the next time you access it.
  • Fixed a large performance problem that was causing the calendar to load the posts for and render many more weeks than it needed to. The calendar is now faster than ever!
  • The calendar quick edit screen now shows the post author.
  • Sticky posts are now available in the calendar. Schedule them like any other post.
  • The calendar now supports Greek. Thanks to Mihalis Papanousis.
  • We also support Polish. Thanks to Krzysztof Nowak who uses the Editorial Calendar on his site Classica, mediaevalia et cetera.


  • You can now edit post contents, title, and time directly in the calendar. You can also schedule a post for publication.
  • The layout of posts in the calendar has been optimized to you can see the maximum number of posts in a single day without scrolling.
  • The calendar is now available for Authors and grays out the posts the current user doesn’t have permission to edit.
  • The calendar has been translated into Czech. Thanks to Lukáš Adamec, who uses the Calendar on his blog Horni Hrad.
  • Added a link to view published posts directly from the calendar.
  • The calendar will now use the WordPress preference for the first day of the week and fall back on the server locale if it isn’t set.
  • The calendar is also using the WordPress preferences for time format.
  • The calendar is now loading JavaScript libraries for just the calendar page. That makes other pages load faster and avoids potential JavaScript conflicts with other plugins.
  • The visible weeks preference in the screen options is now a dropdown instead of a text box.


  • The new look and feel of the calendar makes it easier to scan over your posts while showing you more information.
  • You can customize the number of weeks you work with in the calendar using the screen options pull down in the upper right.
  • The calendar now starts with the current day as the first week.
  • When dragging posts the calendar will now automatically scroll when you move a post past the top or bottom of the calendar.
  • You can now access the edit, view, and delete post links directly in the calendar without bringing up a second dialog.
  • The calendar now prevents you from changing posts that have already been published.
  • The calendar now supports using HTTPS for admin with the define(‘FORCE_SSL_ADMIN’, true); option in wp-config.php.
  • The calendar is now properly handling posts with apostrophe’s in the title in Internet Explorer.
  • The calendar now supports French. Thanks to the guys at StressLimitDesign.


  • I think this should finally fix the date format bugs we’ve been having. Thanks for sticking with it guys.


  • Fixed a date formatting bug when we update posts into the WordPress database


  • Fixed a bug that way causing an invalid concurrency error when changing post dates in non-American countries


  • Fixed a bug with the post creation date that was making posts created from the calendar sometimes show up on the wrong day
  • We are now properly encoding the post title when changing the title or creating a new draft so we can handle non-English characters properly.


  • Added localization support for strings and dates in the calendar
  • The calendar is no longer showing posts that you have put in your trash
  • Fixed a problem that caused posts to never show up when working with WordPress in Croatian and other Eastern European languages.
  • The calendar now starts the week on the right day based on the configured locale in WordPress.
  • Added language support files for Croatian. Special thanks to Ivan Brezak Brkan.


  • We are now doing a better job arranging our tooltips and setting GMT dates correctly.
  • Fixed a problem with the post times so posts dragged with the calendar don’t change their time of day.
  • Added a dialog for creating new drafts on specific dates of the calendar.


  • Additional bug fixes and stabalizations as well as the ability to add new posts to a given date from the calendar.


  • This version fixes a large number of bugs, makes many usability improvements, and has some significant performance increases.


  • This version is just for beta testers