That is correct.
For this use case where the on and off times are static I would say yes.
You can get that behavior with Design Pattern: Expire Binding Based Timers and persistence.
If you persist this Item:
Switch ChristmasTimer {expire="7h,command=OFF"}
Then you can use these rules:
rule "Reset timer"
when
System started
then
ChristmasTimer.sendCommand(ChristmasTimer.previousState)
end
rule "Turn on lights"
when
Time cron "0 0 17 ? * *"
then
// turn on the lights
ChristmasTimer.sendCommand(ON)
end
rule "Turn off the Christmas Lights"
when
Item ChristmasTimer received command OFF
then
// turn off the lights
end