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