Yes, best to store it in a database of course. What you need to decide first is if you want to use an existing calendar control that does what you want or if you want to make it yourself. You could probably start by looking at all the existing ones and seeing whether it matches your criteria or can be worked with to match.

http://geekswithblogs.net/mnf/archiv...CodeAgain.aspx

http://www.411asp.net/home/webapps/calendars