Way to do a time event every x hours/days/weeks?

Is there a way to do a timed event that happens every 4 weeks on Monday and if so, how can you control what Monday to start on in case you need to make a change to the schedule?

TIA

Having something happen every 4 weeks (on Monday) can be accomplished with a timer. When you click to add a statement, Timer is one of the basic statement options. It brings up a dialog box like such:

To change the schedule (but have it resume every 4th Monday), I would consider using a global variable as a counter. One piston increments the counter each Monday. When it reaches 4, it resets and activates whatever should happen.
Not sure what would cause the need to set/reset the counter variable, so not sure if that would best be another piston, a dashboard button, or something else?

Along with above using driver listed below might help. I have found it useful for scheduling things.