We use cookies for analytics and to serve ads. Accept to enable Google Analytics and AdSense. You can decline to stay opt-out.
Event volunteer signup pages with Event + Offer, FAQs, and breadcrumb navigation.
Defines the volunteer event with date, location, and attendance mode.
Connects the volunteer signup to the event and registration URL.
Answers questions about requirements, training, and what to bring.
Provides navigation context to the volunteer signup page.
Ensure every applicable required property is present in your implementation. Nested props reference their parent objects (for example, `offers.priceCurrency`).
Paste as a single script tag. Keep product details, offer data, shipping/returns, and FAQ answers in sync with the page.
[
{
"@context": "https://schema.org",
"@type": "Event",
"@id": "https://www.example.com/volunteer/river-cleanup#event",
"name": "River Cleanup Volunteer Shift",
"description": "Help remove trash along the riverfront and restore native habitat.",
"startDate": "2025-04-20T08:30:00-05:00",
"endDate": "2025-04-20T12:00:00-05:00",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"url": "https://www.example.com/volunteer/river-cleanup",
"location": {
"@type": "Place",
"name": "Riverside Park",
"address": {
"@type": "PostalAddress",
"streetAddress": "500 Riverside Dr",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78702",
"addressCountry": "US"
}
},
"organizer": {
"@type": "Organization",
"name": "Green River Alliance",
"url": "https://www.example.com/volunteer"
},
"offers": { "@id": "https://www.example.com/volunteer/river-cleanup#offer" }
},
{
"@context": "https://schema.org",
"@type": "Offer",
"@id": "https://www.example.com/volunteer/river-cleanup#offer",
"name": "Volunteer Signup — Morning Shift",
"price": "0.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"availabilityStarts": "2025-03-01",
"url": "https://www.example.com/volunteer/river-cleanup/signup",
"itemOffered": { "@id": "https://www.example.com/volunteer/river-cleanup#event" },
"eligibleRegion": "US",
"description": "Free volunteer signup. Check-in begins at 8:00 AM."
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Do I need to bring equipment?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Gloves and bags are provided. Please bring water, sunscreen, and closed-toe shoes."
}
},
{
"@type": "Question",
"name": "Is there an age requirement?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Volunteers must be 14+ or participate with a guardian."
}
},
{
"@type": "Question",
"name": "How do I check in?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Arrive 30 minutes early at the registration tent to receive your assignment."
}
}
]
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
{ "@type": "ListItem", "position": 2, "name": "Volunteer", "item": "https://www.example.com/volunteer" },
{ "@type": "ListItem", "position": 3, "name": "River Cleanup", "item": "https://www.example.com/volunteer/river-cleanup" }
]
}
]Yes. Use price 0.00 with a signup URL so the registration path is explicit.
Add one Offer per shift (or separate Event pages) with distinct start times and signup URLs.