I created a custom Timetable Card for Dashboards. Itβs incredibly useful, especially if you have your school calendar set up in Home Assistant.
Please try it out and let let me know what you think.
Timetable Card
A custom Home Assistant Lovelace card that displays calendar events in a weekly school-style timetable grid.
Features
Weekly grid view β displays events from one or more calendar entities in a clean day-column layout
Per-entity colors β assign individual colors to each calendar entity
Keyword rules β color, hide, or rename events by keyword
All-day event support β all-day events are shown separately above the timed grid- βοΈ Week navigation β browse forward and backward by week with the header arrows
Flexible time axis β Event-based or fixed time interval grid
Custom size - Configurable event size (pixels-per-minute)
Overlap layout β overlapping events are displayed side-by-side
Location & notes β optionally show event location and description
Custom weekdays β show only the days you need (e.g. MonβFri only)
Time axis position β place the time column on the left or right
Live indicator - Live "now" indicator line with pulsing badge
Auto refresh β card updates automatically or whenever you prefer
Visual settings UI β no YAML required
Multi-Language Support - Available in English and German
Installation
HACS (recommended)
- Open HACS β Frontend β Custom repositories
- Add
https://github.com/KingDando8430/timetable-cardas type Dashboard - Install Timetable Card
- Reload the Browser
Configuration
Add the card via the visual editor.
Options
| Option | Default | Description |
|---|---|---|
entities |
[] |
List of calendar entity IDs with optional color |
weekdays |
[0,1,2,3,4,5,6] |
Visible day indices (0 = Monday, 1 = Tuesday, 6 = Sunday) |
show_location |
true |
Show event location below title |
show_notes |
true |
Show event description as third line |
time_position |
left |
Time axis position: left or right |
time_interval |
event_based |
Grid lines: event_based, 15, 30, 60 |
px_per_min |
3.6 |
Pixel height per minute (controls zoom level) |
refresh_interval |
auto |
Reload interval: auto, 5, 10, 15, 30, 60, 120, 180, 360 minutes |
keywords |
[] |
Keyword rules (see below) |
Keyword Rule Options
| Option | Default | Description |
|---|---|---|
keyword |
β | Text to match against event title |
color |
β | Highlight color (hex) |
exact_match |
true |
true = exact title match, false = contains match |
color_mode |
block |
block = filled background, border = left border only |
hidden |
false |
Hide matching events completely |
rename |
"" |
Override displayed label (empty = no rename) |
Screenshots
Timetable Card v1.1.0
