Skip to content

Kinetic Timeline — Tutorial

A start-to-finish walkthrough for adding Kinetic Timeline to a Power BI report: binding a date column, selecting single days and contiguous ranges, narrowing to a window inside one day, and using it to drive a Kinetic Map on the same page.

For field wells, licensing, and troubleshooting, see the Kinetic Timeline support page.


You give it a date or date/time column and it draws a horizontal strip of days you can scroll through. Clicking a day emits a standard Power BI filter, so every other visual on the page narrows to that day — including both Kinetic maps. Ctrl-click or click-drag selects a contiguous range instead of one day. If your column carries a time component, a second slider appears that scopes the selection down to a window inside the chosen day. All processing happens locally; the visual makes no external network requests.


  • Power BI Desktop is the easiest place to build this (the Service works too once published).
  • Your tenant admin must have enabled “Allow visuals created using the Power BI SDK” (Admin portal → Tenant settings). Without it, you can’t import the visual.
  • You need a table with a date or date/time column. If you’re following along with the Gettysburg sample, that’s the Date column on the units table.
  • Nothing in this tutorial requires a Kinetic license.

  1. Download KineticTimeline.pbiviz from the latest release.
  2. In Power BI Desktop, go to Insert → Get more visuals → Import a visual from a file.
  3. Select the file and click Open. Power BI will warn you that custom visuals can access external services; the Timeline does not, but the warning is generic and unavoidable.
  4. The Kinetic Timeline icon appears at the end of the Visualizations pane.

Drop the visual on the page and drag your date column into the Date field well.

That is the only required binding. The strip immediately fills with the days your data spans.

If your column is a Date/Time, keep it that way even if you only care about days. The time component is what enables Step 5.


Three gestures, and they are worth learning because they are not discoverable:

Gesture Result
Click a day Selects that day alone
Ctrl + click additional days Adds each clicked day to the selection
Click and drag across days Selects a contiguous range
Click the selected day again Clears the selection, restoring the full range

Scroll the strip horizontally with the mouse wheel or a trackpad swipe. The strip shows a window onto your data’s full span, not all of it at once — scrolling is how you reach dates outside the current view.

Whatever you select is emitted as a standard Power BI filter. You do not need to wire anything up: any visual on the same page bound to the same table narrows automatically.


Add a Kinetic Map to the same page and bind its Date field well to the same column you gave the Timeline.

That last part matters. If the map is bound to a different date column — say ReportedAt while the Timeline uses ObservedAt — both visuals will work, and they will disagree, which is worse than an obvious break. Bind both to the same column unless you specifically intend otherwise.

With both bound, selecting a day on the strip leaves only that day’s units and events on the map. If the map has movement trails enabled, the trails redraw to cover only the selected span, which is the quickest way to watch a maneuver develop: drag a three-day range and the advance draws itself.


Step 5 — Narrow to a window inside one day

Section titled “Step 5 — Narrow to a window inside one day”

If your date column carries a time component, selecting a single day reveals a time-of-day slider beneath the strip. Drag its handles to scope the selection to a window — 06:00 to 10:00, say.

This is the tool for fast-moving data. A day-level filter on an engagement that lasted ninety minutes is not a filter at all; the time slider is what turns a busy map back into a readable one.

The slider only appears when exactly one day is selected. With a multi-day range there is no coherent within-day window to define, so it hides itself.


Kinetic Timeline handles dates that predate standardized time zones, which most date controls quietly mangle. The Gettysburg sample depends on this: July 2 1863 is before the 1883 introduction of US standard railway time, and a control that normalizes through a modern time-zone database can shift such a date by tens of minutes — enough to move an event across a day boundary.

If you are plotting anything historical, bind the raw date and let the Timeline handle it. Do not pre-convert to UTC in Power Query; that conversion is what introduces the error.


Open the Format pane and find the Colors card. Several pre-made schemes are available, and each element — selected day, unselected day, weekend, today marker, and the strip background — can be overridden individually.

Two things worth setting deliberately:

  • Contrast between selected and unselected days. The default scheme is legible, but if you have restyled the report around a dark theme, check that the selection still reads.
  • The today marker. On historical data it is meaningless and worth turning off, since it will never fall inside your data’s span.

A working page usually looks like this:

  1. Kinetic Timeline across the bottom, bound to your date column.
  2. Kinetic Map or Kinetic Map 3D filling the page, bound to the same date column plus your coordinate and symbol fields.
  3. Optionally a card or table showing counts, which the Timeline also filters.

Select a day, and all three agree. That agreement is the whole point of binding one column.


The strip is empty. The Date field well is unbound, or the column is typed as text. See Step 2.

Dates appear but selecting one filters nothing. The other visuals are bound to a different table, or to a different date column on the same table. Power BI only propagates the filter across visuals that share the field or a modeled relationship.

The time slider never appears. Your column is a Date, not a Date/Time, so there is no time component to scope — or you have more than one day selected.

Historical dates land on the wrong day. Something upstream converted them. Check for a UTC conversion or a time-zone step in Power Query and remove it.