small class name fixes, added a "valid" function to each model to check and see if input is valid, and a small change to recurrences for fixed events and relevant scheduling code changes
update for a user should work