I've had to futz with templates and calculating dates by hand enough and needed some helper objects to make the process easier so I created an integration that allows you to create entities based off some of these calculations that you can use in your automations.
Calculation Types
Timespan - Measure duration since state change
Offset - Trigger after elapsed time
Datetime Offset - Apply time offset to datetime
Date Range Duration - Measure duration between two datetimes
Season Detection - Detect spring, summer, autumn, or winter
Month Detection - Check specific months
Holiday Countdown - Days until US holidays or custom dates
Between Dates - True when current time is within range
Outside Dates - True when current time is outside range