Is there a proper way to show multiple events on one page in Schema.org? Ideally, we don't want a page for each event. Here is a sample structure of what we want:
<div itemscope itemtype="http://schema.org/Event">
<div itemprop="name"><h2>Chili Cookoff</h2></div>
<div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<h3><span itemprop="addressLocality">Manhatten</span>, <span itemprop="addressRegion">New York</span> - <span itemprop="addressCountry">US</span></h3>
</div>
<div>
May, 1st 2014 - May 4th, 2014
<meta itemprop="startDate" content="2014-05-1:00.000">
<meta itemprop="endDate" content="2014-05-4:00.000">
</div>
<div itemprop="description">An awesome chili cookoff you won't want to miss!.</div>
</div>
<div itemscope itemtype="http://schema.org/Event">
<div itemprop="name"><h2>Dinner on the River</h2></div>
<div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<h3><span itemprop="addressLocality">Brooklyn</span>, <span itemprop="addressRegion">New York</span> - <span itemprop="addressCountry">US</span></h3>
</div>
<div>
<meta itemprop="startDate" content="2014-05-1:00.000">May, 1st 2014 -
<meta itemprop="endDate" content="2014-05-2:00.000">May 2nd, 2014
</div>
<div itemprop="description">A dinner to remember forever.</div>
</div>
Using the Google Rich Snippits tool, it doesn't want to respect there being multiple events, but I am not sure if that means the crawlers will not notice them.
Your usage of Microdata and the Schema.org vocabulary is valid.
Every conforming parser will understand this. See for example http://linter.structured-data.org/, which shows snippets that could result from markup.
However, actual search engine providers decide for themselves if, when or how to use your annotations, for example for enhancing search results. It may be the case that some providers decide that they don’t "support" multiple items on a single webpage, where "support" only means that they, for example, don’t show an enhanced snippet on their SERPs.
This is different from provider to provider, their behaviour may change over time and it may depend on many other factors of your site, too. (Discussing such SEO-related things is typically off-topic on Stack Overflow, but Webmasters SE may be an appropriate place.)
Example: Google recommends to mark up all entities on a page: