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.

Opening Hours


  • Supports multiple Sets of Opening Hours (e.g. one for your restaurant and one for your bar) that you can use independently.
  • Supports Holidays
  • Supports Irregular Openings (e.g. different opening hours during Christmas)
  • Supports child sets that overwrite your regular opening hours in a specific time period (e.g. seasonal opening hours or an extra day in every second week)
  • Four highly customizable Widgets and Shortcodes also displaying contextual information (e.g. “We’re currently closed but will be open again on Monday at 8am”)


  • Overview Widget: Lists up all Opening Hours with contextual information in a table or list
  • Is Open Widget: Indicates whether the selected venue is currently open or closed and optionally shows when it will be open again
  • Holidays Widget: Lists up all Holidays in a table or list
  • Irregular Openings Widget: Lists up all Irregular Openings in a table or list
  • Widgets: Inserts structured JSON-LD into a WordPress page or post

More on Widgets


All of the widgets listed up above are also available as shortcodes.
With the Opening Hours Shortcode Builder you can assemble a Shortcode by filling in a form. This is particularly useful when you are not comfortable with the shortcode syntax.

Further Documentation

Further documentation is available on GitHub.


There are multiple ways to install the Opening Hours Plugin

  1. WordPress Plugin Installer
  2. Manual Installation
  3. Composer
  4. Clone GitHub Repository


How can I change the styling of the widgets / shortcodes?

The Plugin provides very minimal styling, which is the red and green colors for the open / closed messages. All other kind of styling is left to the WordPress Theme you are using or your custom CSS.
To disable the styling of the text color the op_use_front_end_styles filter hook can be used.

My language is not provided in the Plugin

You can participate to Plugin translations to make it available in more languages.
Please read the section on contributing to translations

I found a bug and I would like to fix it

If you found a bug you would like to fix feel free to contribute to the project on GitHub.


September 10, 2021
Once I carefully read through the shortcode docs and experimented a little I realized I could do pretty much what I was hoping to with this plugin. It's flexible and gives me the control I need to display content the way I want. I find it better than similar paid plugins.
June 6, 2020
Absolutely great plugin! I used it in DIVI-builder with only the shortcodes and so much is adjustable. It perfectly fit my needs.
January 3, 2020
I've moved a site from editing three pages (for three separate languages and using tortuous table html) to instead editing one easy to use panel with dropdowns. It's sooooo much simpler for the end user. I needed to do a little bit of extra coding to make things look exactly as I wanted, but the plugin author was patient and helpful. Thanks Jannik!
July 22, 2019
It offers countless features and can be used anywhere. Thank you to the author(s)
Read all 39 reviews

Contributors & Developers

“Opening Hours” is open source software. The following people have contributed to this plugin.


“Opening Hours” has been translated into 7 locales. Thank you to the translators for their contributions.

Translate “Opening Hours” into your language.

Interested in development?

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



  • Fix a bug that would cause redundant database writes caused by a DB_VERSION mismatch
  • Add filter op_shortcode_template_path
  • Deprecate filter op_shortcode_template in favor of op_shortcode_template_path
  • Consistently use en dashes to separate dates and times in default formats
  • Add filter op_set_post_type_arguments


  • Add support for custom user locales in the admin panel for cases when the user locale differs from the site locale


  • Added [op-schema] shortcode and Widget for structured JSON-LD representation of opening hours, holidays and irregular openings
  • Added button for Shortcode Builder in Set edit page


  • Fixed a warning occuring in the Overview shortcode with PHP >= 7.2
  • Added method OpeningHours->clearSetProviders() to OpeningHours singleton


  • Fix concerning time formats of Irregular Openings and Periods when saving by @Braunson


  • Fixed JavaScript conflicts with other plugins


  • Fixed a bug that did not load the parent set’s irregular openings and holidays in active child sets.
  • Fixed a bug that blocked irregular openings and periods on the days after irregular openings that go beyond midnight.


  • Added today’s opening hours in Is Open shortcode / widget
  • Automatically hide past Holidays and Irregular Openings in the respective shortcodes / widgets
  • Sort Holidays and Irregular Openings ascendingly by start date
  • Use WordPress shipped version of jquery-ui to prevent conflicts with other plugins
  • Merge dates of Holidays if they only span one day
  • Added offset option to Overview shortcode / widget
  • Added filters
    • op_is_open_format_next
    • op_is_open_format_today
    • op_overview_model
  • Various bug fixes


  • fixed bug concerning child set initialization. thanks to @nikomuse


  • Added support for UTC offset timezones


  • Fixed timezone bug in WordPress 4.7


  • Fixed a bug that didn’t show next open Period when there are no regular Periods but Irregular Openings in the current Set


  • Added SetAlias functionality
  • Minor fixes including:
    • Fixed mixed content error (@foomep)
    • Fixed auto convert issue
    • Fixed PHP 5.3 incompatibility issues


Completely new version of the Opening Hours plugin.
Supports multiple Sets of Opening Hours and adds more flexibility to the Widgets and Shortcodes.
Offers Developer APIs to easily integrate your custom sources.


Read this article:


Read this article:


Read this article:


fixed a bug that displayed saturday instead of friday


initial version