Hundreds of links should be fine, assuming the content isn't too repeated, thin, or stuff'd. Many sites use hundreds of links on every single page -- especially big ecoms due to their huge menus of categories/departments. Example is Wayfair with 568 links. They go [mostly] to diverse "high value" areas, mostly categories.
Also, it's quite common to use a router style page like you are doing. This comes mostly in the form of index.php?go=there, Google understands it perfectly fine and won't nuke you into page 90 because of it. Although, you could squeeze a bit more rank out by optimizing the URL struct to be cleaner, eliminate the router file and querystring/parameter directive, either with APP or at htaccess, and avoid having to deal with the parameters teaching in the next paragraph.
As far as link density VS assimilations, in your case, it's a bit different than large ecom because it's all pointing to similar URi. So you need to make sure the days have enough content oomph, there is enough diversity in that content as well as page title and metas, and that Google understands the "day=" parameter. You can "teach" Google about that parameter in Webmaster Tools > Crawl > Url Parameters. First find the day= parameter if its in the list, click edit, then expand show example URLs to make sure it's operating correctly. If the parameter isn't there, add it. In either case, I would teach it to:
- (Does this parameter change page content seen by the user?) Yes: Changes, reorders, or narrows page content
- (How does this parameter affect page content?) Specifies
- (Which URLs with this parameter should Googlebot crawl?) Let Googlebot decide, or you can choose just the calendar.php with only urls with value
Note: I'm not exactly sure why people are still recommending the 90's era technique of using robots.txt to block parameters that obviously affect site content in a pivotal way. Think of all the sorts, limits, and filters in the world. Google knows exactly what they mean now and can decide for itself whether it's an important view. Strangely, sometimes a strange limit and sort, with specific filter is indeed its favorite flavor of a view. But that's ok because those parameters all point to a canonical, right? Just like day= pages would point to canonical page.html, right? So instead of brute force blocking day= and assuming it's "for the best", you should try the modernized parameters method first and trust that Google can comprehend much more than it used to.