Skip to main content

Modules Documentation

Data fields

Entities, fields, and types.

Complete

The CalendarEvent interface (core/models/calendar-event.model.ts:98) is the single source of truth for every event record. 30+ typed fields grouped into 11 logical clusters: Identity, Editorial Copy, Organizer, Location, Time, Classification, Action URLs, Media, Provenance, Editorial Decisions, Cross-Module References, SEO, Audit.

Field clusters

Identity
id (string, internal); slug (URL kebab-case, EN canonical); title (Bilingual). Slug is the only field that appears in user-facing URLs.
Editorial copy
shortDescription (≤200 chars, Bilingual); fullDescription (markdown allowed); whyItMatters (optional editorial paragraph).
Organizer
organizerName + organizerType (Accelerator/Incubator/VC/Corporate/Government/University/Community/Media/Other) + organizerLogoUrl + organizerWebsite.
Location
country (CountryCode — 16 MENA codes); city; venue; venueAddress; geo {lat,lng}; onlineUrl; mode (physical/online/hybrid). For online events, country + city are still required (denotes the organizer’s base).
Time
startDate (ISO 8601); endDate (optional); timezone (e.g. "Africa/Cairo"); registrationDeadline; applicationDeadline. Status is computed from these — see status-badge-logic.
Classification
category (1 of 17 EventCategory values); status (1 of 7 EventStatus values); audiences[] (1+ of 9); stageRelevance[] (1+ of 7); industries[] (free string tags).
Action URLs
websiteUrl, registrationUrl, applyUrl, contactEmail, socialLinks {twitter,linkedin,instagram}. At least one of websiteUrl / registrationUrl / applyUrl is required (otherwise the event can’t funnel anywhere).
Provenance
sourceUrl (authoritative external URL); verificationStatus (pending/verified/rejected/needs_info); lastVerifiedAt (ISO 8601 — when an editor last re-confirmed the entry).
Editorial decisions
editorialPriority (standard/featured/spotlight — drives landing placement); coverageEligible (boolean); coverageStatus (not_planned/planned/covered) — feeds the Events Coverage queue.
Cross-module references
relatedEditorialIds[]; relatedStartupIds[]; relatedFounderIds[]; relatedOpportunityIds[]; relatedFileIds[]. All optional. Unconnected events render without the sidebar block.
SEO + audit
metaTitle, metaDescription (Bilingual — override defaults); createdAt, updatedAt, publishedAt (ISO 8601).