Cron is a bit limited, e.g. doesn't represent ranges of time.
This seems like a really common problem, anybody solving this in their work today?
Looks like it has a decent API for this: https://developers.google.com/calendar/api/guides/recurringe...
Edit: also this: https://developers.google.com/calendar/api/v3/reference/even...
https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-...
https://jakubroztocil.github.io/rrule/
https://github.com/jakubroztocil/rrule
All best with your project