This can be done, with some effort on the administrator's part. Refer to our website, https://www.vancouvercommunitybaseball.com/page/show/3816229-calendar, to see an example.
We made a sub-page from the Calendar page for each field & batting cage that our organization manager. Those pages have the "Enable Events" option enabled. Then, every game & practice has a tag applied which represents the resource it's using (which field or cage). This allows anyone to view the site calendar or subscribe to an iCal feed for each field/cage, and makes it super-easy to see open spaces on any field.
The downside to this approach is that only site admins can create events (practices and games). If a team creates its own event, it won't have the field tag applied to it so it won't appear on the field calendar. So if a team does create their own event, they have to ask the administrator (me) to add the field tag. Existing practices or games can be rescheduled without the assistance of the administrator if they're not changing venues.
Tagging the events isn't too hard. It's best done when the schedule is first imported. If your schedule is already on the website, you can export it, add the necessary tags to each using your favorite .csv file editor, then re-import it. As long as the eventIDs are there, the importer will just update the existing event rather than creating a new one.
We started using this process this year and I have to say I'm very happy with it.