100% agree that core can do this.
That said I wrote a program to do this last week, but it is a little easier to use. It sounds like in your case you want to just control some kind of switch.
This program allows you to specify a switch, dimmer, color temperature lights, (color lights coming soon) and set the associated parameters (dim level, color, color temperature). You then can set the lights to stay on for x seconds and off for y seconds. So in your case x = 1800 and y = 120. You can also set it to only function during a time period (including between sunset and sunrise).
Example Scenarios…
1 - Turn a light on for 5 minutes, off for 2 minutes.
2 - Turn on a Wemo (or similar zwave / zigbee device) for 86370 seconds [23 hours, 59 minutes, 30 seconds] and off for 30 seconds to reboot a device like a roku.
I plan on adding the feature to only run during a mode so you can have lights flash based on a mode.
I haven’t actually had a chance to use this extensively.