Defines a 'weekly office hours' field type, allowing you add a field to any Content type, in order to display when a location is open or closed on a weekly basis. You can also add Exception days, specifying a Date, and Seasons.
Alternatively, instead of creating an 'office_hours' field, you can use it as a Widget and Formatter for a Recurring Dates Field
This has the advantage that opening times can be displayed in a Calendar view.
Please check the Field settings, Formatter settings and Widget settings to explore all features.
Resources
- See this nice use case, that shows how you can maintain and publish changing opening hours in advance. In the meantime, we are working on #1743366: [Season Meta] Add "Seasonal Hours / Duration" feature
- Drupal Modules: The One Percent has posted a nice, but fairly old tutorial (nov 2016)
Lullabot produced a review in their Module Monday series (aug 2014): Module Monday: Office Hours - Or check out the more recent review by Talking Drupal Newsletter #444 from april 2024 (Direct link to video)
- A list of comparable modules
Hot topics
Some help is appreciated for the following topics:
Add schema.org/openingHours microdata
Add timezone feature
#3218101: Add PHPUnit tests
Functionalities
- The module defines a field type, and the following widgets:
- a 'List' widget allows to add a timeslot day by day. (it is not recommended to use this. It is mainly used to test functionality against a close-to-standard widget.)
- a 'Week' widget shows all days of the week at once,
- a 'Week with exceptions and seasons' allows to additionally add exception dates, where office hours are different from normal weekdays (holiday, Christmas).
- The widget provides:
- 'allowed hours' restrictions;
- input validation;
- use of either a 24 or 12 hour clock;
- using 1, 2 or even more 'time blocks' per day;
- a comment per time slot (E.g., 'First friday of the month');
- links to easily copy or delete time slots.
- The formatter provides:
- an 'open now'/'closed now' indicator (formatter);
- options to group days (E.g., "Mon-Fri 12:00-22:00").
- options to maintain 'Exception days'. (v8.x-1.7)
- options to display a 'Select List', that can be opened/closed. (v8.x-1.7)
- integration for openingHours metadata from schema.org
- integration for openingHoursSpecification metadata from using the Schema.org Metatag module (v8.x-1.6)
- a hook to alter the formatted time (see office_hours.api.php) (v8.x-1.7).
- a hook to alter the 'current' time for timezones (see office_hours.api.php) (v8.x-1.7).
This allows you to easily create your own display. For example, next to the 'normal' tabular layout or text format, you can create a view to export the data to a Google Places bulk upload file.
Dependencies
This module depends on the Date module.
Project information
- Project categories: Site structure
- Ecosystem: Metatag, Webform, Office Hours, Recurring Dates Field
20,473 sites report using this module
- Created by Ozeuss on , updated
Stable releases for this project are covered by the security advisory policy.
Look for the shield icon below.
Releases
Development version: 8.x-1.x-dev updated 6 Nov 2026 at 10:54 UTC




