Thats quite a laundry list of features you need. If all those features are important I think the best plan for you is to purchase a 3rd party ASP.NET calendar component that has most of what you need and then wrap it in a custom feature you build to plug into mojoPortal.
There are quite a few elaborate commercial ASP.NET calendar and scheduling components out there, unfortunately no open source ones that I know of meet all your requirements.
I'm actually planning to build an enhanced Event Calendar very soon but it will not be free, it will be sold at a reasonable price as I need to come up with some revenue stream to keep mojoPortal efforts going. However, I don't think even my envisioned one has all that you need so probably one of the elaborate 3rd party ones is the way for you to go. The main feature I will be adding is ecommerce to sell tickets or registration for events. I do plan to add some features via these interesting open source projects:
DayPilot has both a commercial and an open source sheduling UI component. I'd say its the best open source one I know of but I think there are strong commercial contenders.
I also recently stumbled on Timeline.NET, which is derived from SIMILE, a javascript project from MIT. A very interesting UI for presenting events over time.
I plan to use both of these to enhance the mojoPortal events feature.
Best,
Joe