Promoting events without Event Schema = Google hides your date + location. Event Schema = rich card with "Get tickets" in search.
In this tutorial, you'll add Event Schema to Blogger event posts. Follow along and you'll get Google event rich results with date, time, venue, and price in 2025.
Step 1: Why Event Schema Gets More Registrations 2025
Google shows events in search + Maps + Google Events tab when Schema is present.
- Rich snippets: Google shows date, time, venue, price under title
- Event carousel: Schema required for "Events near me" carousel
- Google Maps: Physical events appear in Maps with Schema
- 60% higher CTR: "Free" or "Oct 15" badges beat plain results
Image: Google search showing "Blogger SEO Webinar" with Oct 15, 7PM, Free, Online
Step 2: Add Event Schema to Blogger Event Post
Paste this in post HTML editor for your event announcement.
- Posts → Edit Event Post → Switch to "HTML" view → Paste at BOTTOM:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "Blogger SEO Masterclass 2025 - Live Webinar",
"startDate": "2025-10-15T19:00:00+01:00",
"endDate": "2025-10-15T21:00:00+01:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"location": {
"@type": "VirtualLocation",
"url": "https://zoom.us/j/123456789"
},
"image": [
"https://yourblog.blogspot.com/seo-webinar-banner.jpg"
],
"description": "Free 2-hour live webinar. Learn Blogger SEO, Schema markup, and AdSense optimization. Q&A session included. Limited to 500 seats.",
"organizer": {
"@type": "Organization",
"name": "Your Blog Academy",
"url": "https://yourblog.blogspot.com"
},
"offers": {
"@type": "Offer",
"url": "https://yourblog.blogspot.com/p/seo-webinar.html",
"price": "0",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"validFrom": "2025-09-01T00:00:00+01:00"
},
"performer": {
"@type": "Person",
"name": "Your Name",
"jobTitle": "SEO Expert"
}
}
</script>
- Replace placeholders:
| Field | Replace With | Format |
| name | Event title | Blogger SEO Masterclass 2025 |
| startDate | Start date + time ISO 8601 | 2025-10-15T19:00:00+01:00 |
| endDate | End date + time | 2025-10-15T21:00:00+01:00 |
| location | VirtualLocation or Place | See Step 3 below |
| price | 0 for free, or ticket price | "0" or "49.00" |
| image | Event banner URL | 1200x600px minimum |
Step 3: Online vs Physical Event Schema Examples
Google needs different location blocks for virtual vs in-person events.
For Online Webinar/Zoom Event:
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"location": {
"@type": "VirtualLocation",
"url": "https://zoom.us/j/123456789"
}
For Physical Event/In-Person Workshop:
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "Lagos Tech Hub",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Allen Avenue",
"addressLocality": "Lagos",
"addressRegion": "Lagos State",
"postalCode": "100001",
"addressCountry": "NG"
}
}
For Hybrid Event - Online + In-Person:
"eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
"location": [{
"@type": "VirtualLocation",
"url": "https://zoom.us/j/123456789"
},{
"@type": "Place",
"name": "Lagos Tech Hub",
"address": { ... }
}]
Step 4: Add Visible Event Card to Match Schema
Schema must match visible content. Add this event box in your post:
<div style="background:#e6f4ea;border:2px solid #34a853;padding:20px;border-radius:8px;margin:20px 0;"> <h2>Blogger SEO Masterclass 2025 - Live Webinar</h2> <p><strong>Date:</strong> Wednesday, October 15, 2025</p> <p><strong>Time:</strong> 7:00 PM - 9:00 PM GMT+1</p> <p><strong>Location:</strong> Online via Zoom</p> <p><strong>Price:</strong> Free - Limited to 500 seats</p> <p><strong>Host:</strong> Your Name, SEO Expert</p> <p><strong>What you'll learn:</strong> Blogger SEO, Schema markup, AdSense optimization, Live Q&A</p> <a href="https://zoom.us/j/123456789" style="background:#1a73e8;color:#fff;padding:12px 24px;text-decoration:none;border-radius:4px;display:inline-block;margin-top:10px;">Register Free</a> </div>
Step 5: Event Status Updates - Cancelled or Postponed
Update eventStatus if event changes. Google removes from search fast:
Event Scheduled: "https://schema.org/EventScheduled" Event Cancelled: "https://schema.org/EventCancelled" Event Postponed: "https://schema.org/EventPostponed" Event Moved Online: "https://schema.org/EventMovedOnline" Event Rescheduled: "https://schema.org/EventRescheduled" + new startDate
Step 6: Test Event Schema + Fix Common Errors
- Rich Results Test: search.google.com/test/rich-results → Enter URL → Must show "Event" valid
- Search Console: Enhancements → Events → Monitor impressions
- Fix: "Missing field startDate" = Use ISO 8601: YYYY-MM-DDTHH:MM:SS+TZ
- Fix: "Invalid location" = Use VirtualLocation for online OR Place with full address for physical
- Fix: "Event in past" = Delete Schema after event ends or set eventStatus to EventCancelled
- Fix: No rich results = Add
offersblock even if free. Price "0" required
Bad practice to avoid: Adding Event Schema to blog posts or news articles. Only use on dedicated event pages with registration link. Google gives manual action for fake events.
Important: Event Schema only works for future dates. Remove or update to EventCancelled after event ends. For recurring events, use eventSchedule with multiple dates. Combine with Video Schema from Post #57 if event has replay video. Update availability to "SoldOut" when tickets finish.
0 Comments