Ownership of many boats is syndicated and there are dedicated syndicate management platforms to administer time allocation and cost allocation. But, if the you are going to add a calendaring function for maintenance scheduling you should consider including some basic functionality to allocate time-share. I suggest flexibility for each user in the syndicate to have a certain number of points and to allow the syndicate to set different days with different points values e.g. weekends, public holidays, school holidays etc.