eventContent
Vue component that renders the inner content of every event. Replaces the default event markup. The renderer-owned wrapper element and layout behavior stay intact.
Usage
eventContent?: Component<{
event: CalendarEvent;
mode: EventContentMode;
}>;
The component receives these props:
| Prop | Type | Description |
|---|---|---|
event | CalendarEvent | The event being rendered, including any custom fields. |
mode | EventContentMode | The renderer that mounted the component (see values below). |
EventContentMode values:
"grid"- time-grid slot (day, week, resources, timeline)"bars"- multiday bar at the top of time-grid views"boxes"- month-grid box"list"- agenda list row"year-tooltip"- popup shown when hovering a year-view day
Example
<script setup lang="ts">
import { Calendar } from "@wx/vue-calendar";
import EventBlock from "./EventBlock.vue";
</script>
<template>
<Calendar :events="events" :eventContent="EventBlock" />
</template>
<!-- EventBlock.vue -->
<script setup lang="ts">
import type { CalendarEvent, EventContentMode } from "@wx/vue-calendar";
const props = defineProps<{ event: CalendarEvent; mode: EventContentMode }>();
</script>
<template>
<div class="event-block" :class="{ compact: mode === 'boxes' }">
<strong>{{ event.text }}</strong>
<span v-if="mode !== 'boxes'">{{ event.location ?? "" }}</span>
</div>
</template>
Related articles
eventCss— adjust the wrapper around your custom content.tooltip— secondary surface for hover previews.eventPopup— clickable detail card on event click.- Styling cells and events — when to reach for
eventContentvseventCss.