How to tag specific hours?

The business I’m tagging has normal hours: Tu,Th-Sa 12:00-17:00; We 11:00-18:00 but donations are also accepted: `Tu-Sa 12:00-16:00`. If I even should tag them, how can I tag the donations accepted hours?

To be honest, seeing that they’re already open at those times, I wouldn’t add them.

Add also opening_hours:donation_accepted ? But would be likely not supported by any data consumer

But it will not break suport for regular opening_hours

For completeness sake, if hours similar to these are to be tagged:

Tu-Sa 12:00-16:00, Tu-Sa open 16:00-17:00 open "no donations accepted" || We 11:00-18:00 open "no donations accepted"

It seems a bit odd to limit donations and spell out “no donations”, but the syntax seems fine.

Another way:

Tu-Sa 12:00-16:00 open "donations processing available" || Tu,Th-Sa 12:00-17:00; We 11:00-18:00

That’s the equally valid other way around. There’s one difference:
Your version is going to display a message during the core hours of every day, while mine has a special note only during the few hours with limited service and can show the shop as open without conditions for most of the time.

It’s a question that occasionally comes up. We might want to write a sample of the different ways to do it. I’d call one period “all services” and the one beyond that “limited service”. How about the below. All four should given identical hours.

Tu-Fr 10:00-16:00, Mo 08:00-18:00 open "limited service", Tu-Fr 08:00-10:00 open "limited service", Tu-Fr 16:00-18:00 open "limited service"
Tu-Fr 10:00-16:00 || Mo-Fr 08:00-18:00 open "limited service"
Tu-Fr 10:00-16:00 open "all services" || Mo-Fr 08:00-18:00 open "limited service"
Mo-Fr 08:00-18:00 open "limited service", Tu-Fr 10:00-16:00

I want to keep opening_hours= for things that will be open. service_times=Tu-Sa 12:00-16:00 could be used.
Initially I thought the question wanted to ask free hours when only donations are suggested, which could be fee:conditional=donation @ (*) , although this would technically work for “No fee is required, but voluntary contributions are accepted.”. There does exist some donation*= that could be explored.

payment:*= is methods, not suitable for the system at least currently. However, it could be reviewed cf honesty boxes and honor systems.

From these, donation*=yes + donation*:opening_hours= would be useful. Then only donation services at offices need to be discussed. That being said, there are some electronic “donation terminals” too.

Therefore the amenity=* could have eg donation=office + donation:opening_hours= ; or fee:*= / payment:*= *:donation=office + *:donation:conditional=yes @ (Tu-Sa 12:00-16:00) (TBD) if reserving donation= for =yes (vs =recommended vs =optional ) vs =no , which might instead be distinguished by verb/gerund donating=

I would agree that the possibility of donating pet supplies in a pet shop does not fit to opening_hours and service_times might be a better fit.