`opening_hours` changing on nth Monday of a specific month

I have a ‘fun’ opening hours sign that I’m trying to translate into OSM’s format. To put it simply, the building has both ‘normal hours’ and ‘summer hours’, and figuring out how to represent the range of the ‘summer hours’ is the part I can’t figure out.

According to the sign, ‘summer hours’ are in effect from June 24 until Labor Day. In this case, Labour Day occurs on the 1st Monday of September. How do I handle a range like that, which might be different on any given year?

So far I have this:

Mo,Tu,Th,Fr 13:00-21:00;
Sa-Su 13:00-16:30;
Jun 24-Sep 01: Fr 10:00-18:00;
Jun 24-Sep 01: Sa 13:00-16:00;
Jun 24-Sep 01: Su off

Any ideas what I can replace the ‘Sep 01’ with? Is there some simpler way of denoting ‘seasonal hours’ that I’m missing?

After reading the answer by @westnordost and fiddling around with it a bit more I wound up with the following syntax:

Mo,Tu,Th,Fr 13:00-21:00;
Sa,Su 13:00-16:30;
Jun 24-Sep Mo[1]: Fr 10:00-18:00;
Jun 24-Sep Mo[1]: Su off;
PH off

The exact contents are slightly different in this one due to me misreading my photo originally, the date ranges are the important part anyway.

The opening hours validator linked in the wiki is showing the hours I expect from this, so if anyone can confirm that this should be correct in OSM as well I’ll close this thread and tag!

1 Like

So I understand that Labour Day is on the 1st Monday of September? Then unfortunately the correct way to specify it is

Mo,Tu,Th,Fr 13:00-21:00;
Sa-Su 13:00-16:30;
"24th of June till Labour Day": Fr 10:00-18:00;
"24th of June till Labour Day": Sa 13:00-16:00;
"24th of June till Labour Day": Mo-Th,Su off

The specification allows a text in prose instead of a months/dates. Of course, this means that the times cannot be evaluated automatically by software.

There is a syntax that almost is able to describe this:

Mo,Tu,Th,Fr 13:00-21:00;
Sa-Su 13:00-16:30;
Jun 24-Sep 01+Mo: Fr 10:00-18:00;
Jun 24-Sep 01+Mo: Sa 13:00-16:00;
Jun 24-Sep 01+Mo: Mo-Th,Su off

Sep 01+Mo means "the Monday after September 01, so if Labour day falls on the 1st of September, the above statement will be off by one week.