Home Assistant Timetable Card

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

  • :spiral_calendar: Weekly grid view β€” displays events from one or more calendar entities in a clean day-column layout
  • :artist_palette: Per-entity colors β€” assign individual colors to each calendar entity
  • :key: Keyword rules β€” color, hide, or rename events by keyword
  • :date: 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
  • :stopwatch: Flexible time axis β€” Event-based or fixed time interval grid
  • :straight_ruler: Custom size - Configurable event size (pixels-per-minute)
  • :shuffle_tracks_button: Overlap layout β€” overlapping events are displayed side-by-side
  • :round_pushpin: Location & notes β€” optionally show event location and description
  • :tear_off_calendar: Custom weekdays β€” show only the days you need (e.g. Mon–Fri only)
  • :one_o_clock: Time axis position β€” place the time column on the left or right
  • :record_button: Live indicator - Live "now" indicator line with pulsing badge
  • :counterclockwise_arrows_button: Auto refresh β€” card updates automatically or whenever you prefer
  • :gear: Visual settings UI β€” no YAML required
  • :speech_balloon: Multi-Language Support - Available in English and German

Installation

HACS (recommended)

  1. Open HACS β†’ Frontend β†’ Custom repositories
  2. Add https://github.com/KingDando8430/timetable-card as type Dashboard
  3. Install Timetable Card
  4. 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