DoubleShore.Kit.OpeningHours 1.0.216
DoubleShore Opening Hours
A custom Umbraco property editor for managing weekly business opening hours, with support for two shifts per day (e.g. a morning and an afternoon block separated by a lunch break).
Features
- Edit opening and closing times for each day of the week (Monday through Sunday).
- Optional lunch break per day (
open2= lunch start,close2= lunch end) for split working hours. - Per-day "scheduled" toggle to mark a day as open or closed.
- Holiday / special dates — override the hours for a specific date or mark it closed (e.g. public holidays), with an optional note.
- Value stored as JSON and exposed to views through a strongly-typed property value converter (
OpeningHoursSchedule:Days+Exceptions), including a culture-aware abbreviated day name (e.g. "Mon" inen-US, "seg." inpt-PT). - "Open now / next open" helper —
schedule.GetStatus()/schedule.IsOpenNow()(inDoubleShore.Kit.OpeningHours.Extensions) compute whether the business is open right now and when it next opens, honouring lunch breaks and holiday exceptions. - schema.org JSON-LD —
OpeningHoursSchema.BuildOpeningHoursSpecification(schedule)(inDoubleShore.Kit.OpeningHours.Schema) emitsOpeningHoursSpecificationentries, including date-scopedvalidFrom/validThroughfor special dates. - 12-hour / 24-hour display — a data-type setting ("12-hour clock (AM/PM)") controls how times render on the website (e.g.
1:00 PMvs13:00). Times are always entered and stored in 24-hourHH:mm; useschedule.FormatTime(value)to render with the chosen format. Exposed onOpeningHoursSchedule.TwelveHour.
Data-type setup
Create the data type with the Opening Hours property editor (schema DoubleShore.OpeningHours). The "12-hour clock" setting only appears when the data type uses this schema — a data type built on the generic Umbraco.Plain.String schema with this UI will store/read values fine but won't surface the setting.
Value shape
The stored value is a JSON object: { "days": [ …7 days… ], "exceptions": [ … ] }. The legacy bare-array shape ([ …7 days… ]) is still read transparently, so existing content keeps working.
Requirements
- Umbraco 17
- .NET 10
Installation
dotnet add package DoubleShore.Kit.OpeningHours
The property editor and its backoffice UI register automatically once the package is installed — no manual configuration is required.
Usage
- In the Umbraco backoffice, go to Settings → Data Types and create a new data type.
- Choose DoubleShore Opening Hours as the property editor.
- Save the data type, then add it as a property on any document type.
- Editors can then set per-day opening/closing times (and an optional second shift) on content using that document type.
The saved value is available on your published models via the package's property value converter as a typed schedule you can render in your views.
License
MIT
Showing the top 20 packages that depend on DoubleShore.Kit.OpeningHours.
| Packages | Downloads |
|---|---|
|
DoubleShore.Kit.Cms
DoubleShore CMS — Razor Class Library with Umbraco BlockGrid views, helpers, and backoffice extensions for the DoubleShore base template.
|
0 |
.NET 10.0
- Umbraco.Cms.Core (>= 17.5.3 && < 18.0.0)
- Umbraco.Cms.Web.Common (>= 17.5.3 && < 18.0.0)
| Version | Downloads | Last updated |
|---|---|---|
| 18.1.1-dev.20260901T220314 | 0 | 02/09/2026 |
| 18.1.1-dev.20260901T213918 | 0 | 02/09/2026 |
| 18.1.1-dev.20260831T115349 | 0 | 02/09/2026 |
| 18.1.1-dev.20260831T113816 | 0 | 02/09/2026 |
| 18.1.1-dev.20260831T111816 | 0 | 02/09/2026 |
| 18.1.1-dev.20260831T104318 | 0 | 02/09/2026 |
| 18.1.1-dev.20260828T163817 | 0 | 02/09/2026 |
| 18.1.1-dev.20260828T154318 | 0 | 02/09/2026 |
| 18.1.1-dev.20260828T113555 | 0 | 02/09/2026 |
| 18.1.1-dev.20260828T111252 | 0 | 02/09/2026 |
| 18.1.1-dev.4 | 0 | 02/09/2026 |
| 18.1.1-dev.1 | 0 | 02/09/2026 |
| 18.1.0 | 0 | 02/09/2026 |
| 1.0.216 | 0 | 02/09/2026 |
| 1.0.215 | 0 | 02/09/2026 |
| 1.0.214 | 0 | 02/09/2026 |
| 1.0.213 | 0 | 02/09/2026 |
| 1.0.212 | 0 | 02/09/2026 |
| 1.0.211 | 0 | 02/09/2026 |
| 1.0.210 | 0 | 02/09/2026 |
| 1.0.209 | 0 | 02/09/2026 |
| 1.0.208 | 0 | 02/09/2026 |
| 1.0.207 | 0 | 02/09/2026 |
| 1.0.206 | 0 | 02/09/2026 |
| 1.0.205 | 0 | 02/09/2026 |
| 1.0.204 | 0 | 02/09/2026 |
| 1.0.203 | 0 | 02/09/2026 |
| 1.0.202 | 0 | 02/09/2026 |
| 1.0.201 | 0 | 02/09/2026 |
| 1.0.200 | 0 | 02/09/2026 |
| 1.0.199 | 0 | 02/09/2026 |
| 1.0.198 | 0 | 02/09/2026 |
| 1.0.197 | 0 | 02/09/2026 |
| 1.0.196 | 0 | 02/09/2026 |
| 1.0.195 | 0 | 02/09/2026 |
| 1.0.194 | 0 | 02/09/2026 |
| 1.0.193 | 0 | 02/09/2026 |
| 1.0.192 | 0 | 02/09/2026 |
| 1.0.191 | 0 | 02/09/2026 |
| 1.0.190 | 0 | 02/09/2026 |
| 1.0.189 | 0 | 02/09/2026 |
| 1.0.188 | 0 | 02/09/2026 |
| 1.0.187 | 0 | 02/09/2026 |
| 1.0.186 | 0 | 02/09/2026 |
| 1.0.185 | 0 | 02/09/2026 |
| 1.0.184 | 0 | 02/09/2026 |
| 1.0.183 | 0 | 02/09/2026 |
| 1.0.182 | 0 | 02/09/2026 |
| 1.0.181 | 0 | 02/09/2026 |
| 1.0.180 | 0 | 02/09/2026 |
| 1.0.179 | 0 | 02/09/2026 |
| 1.0.178 | 0 | 02/09/2026 |
| 1.0.177 | 0 | 02/09/2026 |
| 1.0.176 | 0 | 02/09/2026 |
| 1.0.175 | 0 | 02/09/2026 |
| 1.0.174 | 0 | 02/09/2026 |
| 1.0.173 | 0 | 02/09/2026 |
| 1.0.172 | 0 | 02/09/2026 |
| 1.0.171 | 0 | 02/09/2026 |
| 1.0.170 | 0 | 02/09/2026 |
| 1.0.169 | 0 | 02/09/2026 |
| 1.0.168 | 0 | 02/09/2026 |
| 1.0.167 | 0 | 02/09/2026 |
| 1.0.166 | 0 | 02/09/2026 |
| 1.0.165 | 0 | 02/09/2026 |
| 1.0.164 | 0 | 02/09/2026 |
| 1.0.163 | 0 | 02/09/2026 |
| 1.0.162 | 0 | 02/09/2026 |
| 1.0.161 | 0 | 02/09/2026 |
| 1.0.160 | 0 | 02/09/2026 |
| 1.0.159 | 0 | 02/09/2026 |
| 1.0.158 | 0 | 02/09/2026 |
| 1.0.157 | 0 | 02/09/2026 |
| 1.0.156 | 0 | 02/09/2026 |
| 1.0.155 | 0 | 02/09/2026 |
| 1.0.154 | 0 | 02/09/2026 |
| 1.0.153 | 0 | 02/09/2026 |
| 1.0.152 | 0 | 02/09/2026 |
| 1.0.151 | 0 | 02/09/2026 |
| 1.0.150 | 0 | 02/09/2026 |
| 1.0.149 | 0 | 02/09/2026 |
| 1.0.148 | 0 | 02/09/2026 |
| 1.0.147 | 0 | 02/09/2026 |
| 1.0.146 | 0 | 02/09/2026 |
| 1.0.145 | 0 | 02/09/2026 |
| 1.0.144 | 0 | 02/09/2026 |
| 1.0.143 | 0 | 02/09/2026 |
| 1.0.142 | 0 | 02/09/2026 |
| 1.0.141 | 0 | 02/09/2026 |
| 1.0.140 | 0 | 02/09/2026 |
| 1.0.139 | 0 | 02/09/2026 |
| 1.0.138 | 0 | 02/09/2026 |
| 1.0.137 | 0 | 02/09/2026 |
| 1.0.136 | 0 | 02/09/2026 |
| 1.0.135 | 0 | 02/09/2026 |
| 1.0.134 | 0 | 02/09/2026 |
| 1.0.133 | 0 | 02/09/2026 |
| 1.0.132 | 0 | 02/09/2026 |
| 1.0.131 | 0 | 02/09/2026 |
| 1.0.130 | 0 | 02/09/2026 |
| 1.0.129 | 0 | 02/09/2026 |
| 1.0.128 | 0 | 02/09/2026 |
| 1.0.127 | 0 | 02/09/2026 |
| 1.0.126 | 0 | 02/09/2026 |
| 1.0.125 | 0 | 02/09/2026 |
| 1.0.124 | 0 | 02/09/2026 |
| 1.0.123 | 0 | 02/09/2026 |
| 1.0.122 | 0 | 02/09/2026 |
| 1.0.121 | 0 | 02/09/2026 |
| 1.0.120 | 0 | 02/09/2026 |
| 1.0.119 | 0 | 02/09/2026 |
| 1.0.118 | 0 | 02/09/2026 |
| 1.0.117 | 0 | 02/09/2026 |
| 1.0.116 | 0 | 02/09/2026 |
| 1.0.115 | 0 | 02/09/2026 |
| 1.0.114 | 0 | 02/09/2026 |
| 1.0.113 | 0 | 02/09/2026 |