Availability/timesheets

Hi all
Pleeease I need help

I would like to create a page where my workers can put their availability - which days each week they can work, which want to have as rest days, which days they taking as holiday. So each user would be able to see only his own availability and amend it when needed, but me as admin to see what each worker inputted and assign shift on days when they available.

And then week after I would need them to send their timesheet, where they input exact days and hours they worked previous week.

Do I use calendar plugin and work with it? Any tips/tricks/plugins/advises would be really appreciated. I understand how I want it to look and work but don`t have full idea of how to set it up correctly.

Thank you :blush: