There are a number of ways you can implement 2. The simplest would be to use DateTime Items to trigger a rule using an “at the time in Item timeOnly” which will trigger a rule to send commands at the time stored in the Item. You can modify that time through a UI.
If you have a set schedule (e.g. at sunrise do X, at noon do Y, at 22:00 do Z) you can use Time Based State Machine [4.0.0.0;4.9.9.9] to set up a state machine. Then you’ll trigger a rule on “Item TimeOfDay changed to MORNING” and the like to control the lights.
You can use the iCal binding and a calendar to schedule the commands to the Items.