Skip to main content

Modules Documentation

SEO / AEO requirements

Meta, structured data, hreflang per page.

Complete

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".