per ilc alendario puoi utilzizare un buon calendarietto in javascript tipo JSCALENDAR che ritengo il migliore (http://www.dynarch.com/projects/calendar/): quando scegli le date di inizio e fine che vengono messe nel texbox di un form e poi tramite una query sql verifica che le date scelte non rientrano in date già occupate.