Timeline JS is my first choice for making a timeline based on a book. I've been using Timeline JS for nearly a decade to make timelines that include text, images, videos, and links. Timelines created with Timeline JS can have events separated by as little as a minute because you can specify the date and time of each event in the timeline. Watch this video for a short demonstration of how to use Timeline JS.
Using one of Canva's timeline templates is my second choice for making a timeline based on a book. While it doesn't support as many media types as Timeline JS, you could argue that the aesthetics of Canva timelines is much better than those of Timeline JS. Here's my demo of how to create a timeline in Canva.
By the way, the image in this post is a picture of the cover of a fun read titled Harry Truman's Excellent Adventure. The book retraces Harry Truman's steps as he drove from his home in Missouri to New York and back during the summer of 1953.