There shouldn't be anything special about the time period used to group the timeline entries. Evolve the component to group by a programmatic duration. Perhaps use the already available Moment library to specify the durations.
For the group labels, let the user specify a data format method (again, use Moment) to state the label for the timestamp that indicates the start of the group.
I very much agree! At the very least, there should be additional groupings beyond just "group by day". By week, by month, by quarter would be useful to start.
+1 on this, although personally, it feels like this could also be done by enabling nested list views instead.
Albeit would probably be more difficult to setup from a user perspective than this.
Nested listed views, or a grouping key on a listed view would allow a much more flexible layout other than a templated string to be used on the repeated elements of the "timeline"