Nearly all of this is provided by my (fairly standard European) Thermostat from Junkers, where you can define a "warm" and "cold" temperature-setting, and then set timeframes to switch between those settings for each weekday (individual or ranges like Mon-Fri).
Exception is the "Make it a bit warmer for 2 hours" button (which leaves alot of room for interpretation and error, i.e. what is "warmer", should the 2h start while still heating up, WILL it even heat up within 2 hours,...), but that is more or less achieved by just rotating the dial, as whatever is set will be overwritten when entering a new timeframe...
Nothing fancy in there, no Wi-Fi or anything, just a display, a dial and a few buttons under a lid.
I configured this once, and all I do is move a switch from "automatic" to "permanently cold" in summer to stop it from switching to heating