There are a couple of ways you can accomplish this, but keep in mind the appropriate approach will depend on your use case!
I’ll follow up shortly with some screenshots of an example, but I wanted to explain how both options would work.
In order to compare the time now to the schedule, you will need somewhere to store the user-defined schedule times. You could store these scheduled times in a Data Table, allowing for easy additions and updates (using the Table: Update Row and Table: Insert Row Nodes). You would then build your workflow with a Timer Node, and query the data table for that time using the Table: Get Rows Node. Using some conditionals, you could then turn on and off the lights depending on the time.
This approach is ideal for a more custom and scalable scheduler.
The Timer Node also supports advance scheduling with a Cron string. This approach is ideal for a simple custom schedule, but keep in mind the value is not temptable, and would need to be configured before the workflow is triggered. I use this approach in my own personal reminder workflow to water my plants! Every three days, I send myself a text at 10:30am, triggered by a Timer Node. The Cron string was ideal for my use case here, but I would have moved to the Data Table approach if my schedule needed more customization.
Again, I’ll follow up with an example of this shortly.
Thanks so much!