What you’re looking for is a Nest. You can program it with as many setpoints as you like, but it’ll still repeat from week to week. However, you can also enable a handful of other features that will tell it to shut down (or go to a specific set point) if it doesn’t think anyone is home.
For example, set it to turn the heat up to 70 at 6pm*, but if it doesn’t notice anyone in the house, it’ll shut back down.
Further more, since it’s wifi, you can easily pull up the app on your phone and change things on the fly. Be it making changes to the schedule or just adjusting the temp.
It doesn’t always act like you’d expect it to and they have a habit of updating the firmware without saying anything which results in it acting odd, but I think it’s what you’re looking for.
For what you’re looking for, you’ll probably be best to put it in learning mode and with the ability to sense people in the room turned on. Yes, it might kick on when no one is home, but as soon as it realizes you’re not there, it’ll shut down and stay that way for the rest of the day. I’ve had mine for years and it still catches me off guard when the heat/AC turns on as soon as I walk past it (which, btw, is a downfall, it tends to shut down if you’re just sitting in one room for a long period of time).
*Which, by the way, means it’ll be 70 at 6pm. It learns how long it takes to get to a desired temperature and adjusts how early it turns on.
Also, this might not apply to you since you’re in an apartment, but it syncs up with the Nest smoke/CO detectors. It’ll use them as motion detectors as well. Plus, and this was a selling point for me, if it sense smoke or CO it’ll shut down you’re furnace. Either to stop a potential CO source or to keep smoke from blowing all over your house. Plus, it sends an alert to your phone. If your CO detector is going off when you get home, you have no way to know if it just started or if it’s been going for the last 6 hours. With the nest, I’ll get an alert right away.