IMO the most efficient way is to have a programmable room stat that allows you to set different temperatures for different times of day and days of the week. It can be connected to replace your existing room stat.
It's not efficient to heat the house fully when you are all in bed; but you want the heat to kick to maintain a modest temperature if a blizzard starts during the night. When the house is empty you only need a low temperature, and most often the heat will not come on because the house will stay warm enough during the day. It will only start up if, again, there is a cold spell, which is better than simply turning it off. It's your choice what this fallback temperature should be.
If you want to extend the evening heating, you use the "party" button to add x hours onto the usual finish time. After that it will revert to normal.
When you are on holiday, you tell it how many days you will be away, and set it to a frost protection temp of, say, 12C. It will use hardly any fuel because many houses hardly ever get that cold, and the boiler will not start unless it does. The day you are due back from holiday it will revert to its usual programme, and get the house ready for you.i
For example, from half an hour before bedtime to half an hour before getting up, you might set it to 16C. That might be 11pm - 7am Mon-Fri and midlight-8am weekends. Then up to 18-20C while you are getting up and dressed, and 12C from 8am - 4pm when everybody is out, but not atr weekends which stay at 18-20C. Then up to 18-20C at 4pm when people start coming home, up again to 20C at 8pm when people are having baths and it's dark so you feel colder. But on Wednesdays when you go to Karate classes it has different times and temperatures, and on Fridays when you do the pub quiz and get home at midnight. You can set any temperature for any time on any day according to your whim.
BTW you will sometimes meet people who tell you that it is more economical to heat the house 24 hours a day, 7 days a week. This is not true.