Writing event calendars is always a fun and interesting exercise.
I feel like every time I try it, the art has changed, and I'm playing catch up.
It's also a great way to get up to speed, or back up to speed with a programming language. Doing things like correcting date and time slippage. It's never a straight 30 days or 7 days calculation. And when you're dealing with businessy apps, you need to think about things like federal holidays, and whatnot.
PHP makes it easy. Some truly valuable date processing functions. Interesting to note that this particular thing is different in every language you try. Javascript does not work the way PHP does. PHP does not work the same way C# does. Python and Go, also doing their own thing.
But still, working with unix timestamps is the way to go, even though it feels like cheating.