Modules Documentation
SEO / AEO requirements
Meta, structured data, hreflang per page.
The Calendar emits the richest event-specific JSON-LD on the platform. Every details page produces a schema.org Event (or BusinessEvent / EducationEvent subclass depending on category) with full eventAttendanceMode, eventStatus, organizer, location, offers, and superEvent linkage. This is the primary AEO surface — Google Knowledge Panels and event-search carousels pull from this.
JSON-LD per page type
- Landing (/calendar)
- CollectionPage + ItemList (top 10 upcoming events as @type=Event). WebSite SearchAction so site:search works inline in Google. No per-event detail in the JSON-LD — just identity + URL.
- Listing pages
- CollectionPage + ItemList of up to 25 cards. BreadcrumbList for the listing hierarchy (Home > Calendar > [Country / Category / Audience / Stage]).
- Details page
- Event (or BusinessEvent / EducationEvent / Hackathon subclass per category) with: name, description, startDate, endDate, eventAttendanceMode (OfflineEventAttendanceMode / OnlineEventAttendanceMode / MixedEventAttendanceMode), eventStatus (EventScheduled / EventPostponed / EventCancelled / EventMovedOnline), location (Place or VirtualLocation), organizer (Organization), offers (when registrationUrl exists), inLanguage, image.
- Submit page
- WebPage. No event data (the page is a form). robots=noindex,follow to avoid junk pages indexing.
Category → schema subclass mapping
- startup-conference, ecosystem-gathering, exhibition → BusinessEvent.
- workshop, webinar, university-event → EducationEvent.
- hackathon → Hackathon (yes, schema.org has it).
- demo-day, pitch-competition, founder-meetup, investor-meetup, accelerator-program, incubator-program, government-policy, partner-event → Event (base).
- application-deadline, funding-deadline → no Event JSON-LD; treated as Action pages with WebPage + targeted meta only.
Open Graph + Twitter cards
Every details page emits og:type="event", og:title=title, og:description=shortDescription, og:image=coverImageUrl (or a generated SVG fallback with the date + category icon + organizer logo composited). Twitter card type is "summary_large_image".
