dynamically generate calendar