use crontab macros, and support custom frequency

Closes #3