If you offer services that aren't available year-round, such as seasonal landscaping, holiday decoration, tax prep, and annual inspections, Google's crawlers see those services as always available or never available unless you mark them up correctly. The difference between a booking bot and a dead listing often comes down to a single schema property that most service businesses skip.
Why Standard Service Schema Doesn't Work for Seasonal Work
The Service schema type includes an availability field, but it's designed for availability by day of week or time of day. When you mark a service as available, schema crawlers assume it's available in that format permanently. A tax preparation service marked as available Monday–Friday becomes invisible starting April 16. A snow removal service marked as unavailable in July blocks your July visibility when customers search early for winter bookings.
The schema property you need is `availabilityStarts` and `availabilityEnds`. These dates tell Google when a specific service becomes bookable and when it stops. Without them, you're either permanently advertising something you only do in February, or you're delisting it incorrectly.
The Markup Structure That Works
Use the LocalBusiness or Service schema with the `availableService` property. Inside that, nest the specific service object with `availabilityStarts` and `availabilityEnds` as ISO 8601 dates. Include the `potentialAction` object so Google knows it's bookable, not just descriptive.
- availabilityStarts: "2026-11-01" (when the service becomes available)
- availabilityEnds: "2027-03-31" (when it ends)
- areaServed: specify geography if you're multi-location (prevents ranking in wrong regions)
- potentialAction with actionPlatform: "http://schema.org/ReserveAction" (signals booking capability)
- priceRange or offers with Price (helps qualify search intent)
The crawl sees an unavailable service as dead inventory. It stops showing it in local results, stop-by cards, and Knowledge Panels. One date field difference moves your listing from visible to ghost.
Common Mistakes That Break Seasonal Markup
The first mistake is hardcoding availability into your markup and forgetting to update it. If your schema says availability ends March 31 and it's April 2, Google's crawlers index that as a past date. The service moves to a "no longer available" state even if you're still offering it.
The second is mixing availability states. You might mark a service as available on Tuesday–Thursday, then also set availabilityEnds to June 30. Google's schema validator accepts both, but crawlers prioritize the more restrictive rule. The service becomes unavailable starting Thursday of the week after June 30 ends, not on July 1.
The third is forgetting the `areaServed` property when you operate across multiple locations with different seasonal windows. A snow removal service available in the northeast from November–March looks the same to schema as one available in a southern location December–February. Crawlers can't differentiate without explicit geography.
- Static markup in code without a date refresh cycle (set up automatic re-crawl via Search Console to force validation)
- availabilityStarts after availabilityEnds (common copy-paste error)
- Using date format other than ISO 8601 (YYYY-MM-DD only; no "November 1" or "Nov 1")
- Nesting availability inside the wrong schema type (put it in Service, not the parent Organization)
- Delisting the service entirely instead of marking it as seasonally unavailable (hurts your future authority)
How to Validate Before It Costs You Visibility
Use Google's Rich Results Test with your full page markup. The validator will flag missing dates or format errors immediately. More important: test with a date that's currently live (today's date should fall between availabilityStarts and availabilityEnds). If it doesn't, Google won't surface the service.
After deployment, check Google Search Console's Rich Results section under Enhancements. Look for "Service" results. If your seasonal service disappears from that report the day after its availabilityEnds date passes, the markup worked; now you know your deadline for updating next season.
See who Google and AI recommend instead of you
Enter your website and get a free check of what Google and AI actually read about your business — and who they point people to instead. No call, no account: the report renders right on the page.
Run my free check →Share this article
Comments
Leave a comment