Rather special Calendar/booking stack?

Hello everyone,
I am currently running research expeditions on board my Sailboat and take researchers and guests with me. For Researchers spots are free, guests basically finance everything, so I would like to put up a calendar on the website with a half year timeslot where I am working in the area, where

  • In empty weeks people can pick their window of XX days they would like to do an expedition
  • You can choose whether you are doing research or want to join as guest
  • People can join already put in expeditions
  • an existing expedition can only be booked if there is still space available (only have 6 spots at any given point…)

Is there anything like that out there or a “simple” way to make it happen?
Thank you already for all ideas and insights!