I’d always like to recommend my calendar and scheduling suite plugin. It integrates with your google calendar and can read events from several data sources. Those data plus inputting a teachers daily scheduled availability will output a list of potential day/times that are not currently occupied by other events.