Keep your schedules and work calendars all in one place. Have agents manage their own calendars, or have team calendars that users in those teams can view or global calendars.
Create users with specific roles to manage all your calendar events and create re-occuring events.
Create specific categories for your agents to use and better categorize your events
Stop the SLA clock on statutory holiday's on a per team or global level allowing you to more easily manage customer expectations.
Managing workloads for any size team is a big tough job. What to do when cases assigned to agents are on holiday or sick? Create a trigger when a customer updates the case or create a scheduled trigger that sends the case to the correct queueu or agent.
You can automated the workflows based on the unavailablility of agents and give visibility to all users to see whos away for their teams.