Why the iframe is not enough for a public page
An embedded Google Calendar is a separate application inside your page. It carries Google's design, not your theme's. It cannot be filtered by your categories, searched by your site search, or picked up by your SEO plugin. Search engines index an empty container, so a venue with fifty upcoming shows gets nothing from any of them.
That last point matters commercially. “Live music Thursday in [your town]” is a search somebody makes, and an event that exists only inside an iframe cannot answer it.
What “properly” means
Each event becomes a real entry on your site: its own URL, its own title and description, your theme's typography, your categories, your images. It appears in your site's search. It can be listed on your front page, filtered to one venue or one class type, and given structured data so search engines understand it is an event with a date and a place.
You get there by having your server read the calendar's .ics feed and create events from it, rather than by asking the visitor's browser to load Google.
The three things that go wrong
Missing timezones. Events created by some apps arrive with no timezone attached at all. Every reader is then free to interpret them in its own zone, and yours will pick one. This is the most common cause of “the website says 7pm and Google says 8pm”. The reader above flags these explicitly.
Recurring events expanded wrong. If your Thursday session is “the first Thursday of the month”, a plugin that only understands frequency and interval will render it as “the same date each month” — with no error message. Check a few months ahead by eye the first time.
Descriptions that arrive as a wall of text. Google stores the description as plain text with escaped line breaks. A plugin that dumps it straight into your page loses the paragraphs. It is cosmetic, but on a What's On page it looks careless.
What you cannot get from the feed
The .ics export carries title, description, location as free text, times, and recurrence. It does not carry your event images, your ticket prices, your performer names or any custom field you keep in Google. If your listings need more than the feed contains, plan to add it on the WordPress side — which is another argument for real events on your site rather than an embed.