Staff Availability Tracking

Hello! I am interested in creating a Master Calendar that will allow individual freelance staff to access the calendar and input their availability dates. Each person can only be able to see their information, not the information another freelance individual has entered. I then want to be able to see all entries in my Master Calendar. Does anyone know how to do this? This will need to be a calendar they can access at any time to input or update their personal information. What is the best way for them to access it and for me to remind them to update on say a weekly basis? Thank you! I cannot seem to find specifics on this.