I agree that you should have a separate process for each reminder as long wait steps are prone to error (ex. you have to remember to remove from flow based on certain criteria).
Let's say you are sending the 30 day notice today and you want to include all those that have the End Date in 30 days. Create another smart list ("End Date in future 29 days") that has the filter "End Date: in future 29 days". Go back to the smart campaign sending the email and use the filters:
"End Date: in future 30 days"
Member of smart list: not in: "End Date in future 29 days"
The resulting list will only include those that have the end date in exactly 30 days as you've filtered against those that have the end date up to 29 days in the future.
I'm not 100% sure I understand your question, but have you looked at this?
So if you want to target a date exactly 30 days in the future, you can do it with a combination of
In Future 30 days AND
In Future After 29 days
And no, that's not a "simple way to apply date calculation". ;-)
Thank you both!