Having your requirements, I think it would be more stable to add the check "should I show the calendar" into the source code itself. When the check is well written, it should not consume measurable response time.
Having the cron job, you always will have to look at an additional thing. This could be forgotton or whatever. Have experienced that too often ;)
Example for a code that checks that:
$now = new DateTime();
if($now >= new DateTime('14 Mar') && $now < new DateTime('15 May')) {
show_calendar();
}