<i>The best way to get the right answer on the internet is not to ask a question; it's to post the wrong answer."</i> -- Cunningham's Law<p>I'd suggest that you create a language for doing this. Don't make it good, make it barely functional. Don't do any research on what might already exist, just go ahead and think about what you'd want, and implement a half-assed version. Then post it here as a "Show HN:".<p>One of two things will happen:<p>(a) People will pile in to say, "It's good, but why didn't you just use XXXX"; or<p>(b) People will say "We've long needed something like this ... thanks!"<p>In the latter case, if you've put it on GitHub (or similar) people might actually start offering improvements and sending you pull requests, and then you'll end up with the thing you want that didn't previously exist.
The iCalendar syntax (<a href="https://en.m.wikipedia.org/wiki/ICalendar" rel="nofollow">https://en.m.wikipedia.org/wiki/ICalendar</a>) is the dominant DSL.
The "remind" program has a pretty well-developed DSL to represent dates and recurring schedules, with backends to produce postscript/html/etc calendars.<p><a href="https://dianne.skoll.ca/projects/remind/" rel="nofollow">https://dianne.skoll.ca/projects/remind/</a><p>It's available already-packaged in most mainstream distros I know of.