Let members enter the hours in a typical week when they're available. Admins see everyone's availability combined as a heatmap, which shows when an event or class would reach the most people.
Schedules change at least every semester, so availability should reset on a regular schedule (for example each term), and members should be asked to update it.