As you may know it’s possible to have multiple snippets on one page. However this may cause side effects. Especially if you’re using multiple snippets that can create a Rich Snippet on search results. Let’s say you have a blogpost that generates the following snippets:
The Review- and the Event-Snippet can create a Rich Snippet on search results. But how do you tell search engines which one to show?
As far as I know, search engines can only show one Rich Snippet at a time. So if they recognize multiple snippets they would show the first found in the sourcecode. For example, if the Review snippet is found first, they would display this one (that means a picture, some data for the calories, etc.).
They would not display “WebPage” because it does not produce a Rich Snippet (nothing to show here).
However there is one exception: if the primary topic of your entire website fits to a snippet they may use the other one instead. For example if you’re running an event-website (that almost always just uses the event snippet), search engines may use the event- instead of the review snippet. Even if it’s the last one found in the sourcecode.
At this point in time, everything above is just speculation. This is because no one knows how search engines really work. So to be sure you should do the following:
If you want search engines to show the Event snippet you need to use the mainEntityOfPage property. There is a description of how the property works on schma.org but it’s really weird.
Google describes on their help pages how this works. Here is an example for the article snippet used in the Rich Snippets WordPress Plugin: