Making a timeline from a Google Spreadsheet

You can create a simple timeline in a few short minutes using our Google spreadsheet template, and this quick guide explaining the basic process. Experts can use their JSON skills to create custom installations, while keeping TimelineJS3's core look and functionality.

For an example of a completed spreadsheet, see the spreadsheet which powers the example on our home page.

Working with dates

The first four spreadsheet columns (A-D) are the date of your timeline entry. You can just enter the year, or you can get down to details such as month, day and even time of an event. You must enter at least the year, except for a 'title' slide. (To enter BCE dates, use a negative year, such as -500)

You have the option to add end dates (columns E-H). Again, you can just enter the year, or you can get as detailed as you like. End dates will cause TimelineJS to display spans of time (a.k.a. eras) in the bottom portion of the timeline. If your event doesn't have an "end date", leave these blank—you don't need to repeat the start date.

If you need more flexibility about how dates are shown in a slide, you can use column I to specify a "display date," which will override any decisions TimelineJS makes about how to show the date. This can be helpful if the actual date is not known, but you still need to specify some date using one or more of the previous (A-H) columns so that TimelineJS knows how to display it relative to other events. If you use this column, the display date is used on the slide where it is specified, and on labels for the "next" and "previous" buttons which lead to that slide.

Adding text content

Columns J and K of the spreadsheet contain the headline and the body text that will be displayed on each slide of your timeline. You can use simple HTML in these fields to style your text or to link to other pages on the web. Some HTML may be stripped out or changed as a security precaution.

Neither "headline" nor "text" are strictly required, but we recommend including at least a headline, as this is also used in the timeline navigation tool to label the markers.

Adding media (optional)

TimelineJS can pull in media from a variety of sources and has built-in support for Twitter, Instagram, Flickr, Google Maps, DropBox, DocumentCloud, Wikipedia, SoundCloud, Storify, iframes, major video sites (YouTube, Vimeo, etc.) and more. Read more about the media types TimelineJS works with.

You have the option to add media to your slides in columns L-O. Under the Media column (L) enter the link (URL) to the media you wish to display. TimelineJS supports multiple media types. In the next column (M), you can credit the media's original source, and in column N you can include a short caption. As with the text and headline, you may use basic HTML for formatting and linking in the credit and caption (M and N) columns.

If TimelineJS doesn't support the media type you want on your slide, you can often make do by entering <iframe> markup in the Media column (L) instead of a URL. You can also enter <blockquote> markup in column L.

Markers for slides that contain media show a small icon representing the type of media used. If you'd like, you can show a thumbnail of the media there, instead. Simply add the URL of the image you'd like to use to column O.

If you like, you can set the background of the slide to a specific color or an image. To do this, enter a CSS hex color value, CSS named color, or the URL to an image in the Background column (R).

Titles and Eras

The Type column (P) can be used to activate a few more specialized features in Timeline. In most cases, you'll leave it blank. Many support questions we get relate to people accidentally filling in the "type" column when they don't intend to use it.

If you use the word title in this column, then Timeline will use the row as a "title slide," which is shown before all others, and which does not require a date. Title slides do not appear in the markers in the navigation component of the Timeline. You should only have one row with "title" in the Type column.

If you use the word era in this column, then Timeline will use the row to label a span of time in the "axis" area of the timeline navigation component. Eras should have start and end dates (at least the year for each) and a headline. No other cells are relevant to rows with type 'era'.

Each era gets a distinct color, which is not currently configurable. At this time, overlapping eras are not well-supported, but we are investigating design strategies for that use case.

Organizing slides

TimelineJS automatically orders slides according to their start date, and always puts the title slide first, no matter how the rows in your spreadsheet are ordered. If you need to have two slides with exactly the same start date, then the row which appears first in the spreadsheet will be shown first in the timeline.

Using the Group column (Q), you can organize your slides by groups (formerly known as "tags"). You can put any values you want in the Group column. Events with the same group will be put in the same row or adjacent rows, and TimelineJS will use the text from the Group column as a label at the left edge of the row(s) containing those events. The group text will also be displayed on each slide. If you like, you can have a mix of slides in groups and slides with a blank value in the Group column. Creators cannot control the order in which groups are shown in the navigation area: they are listed based on the chronological order in which they are used, except that if there are slides with no group, those are at the bottom after the other groups.

Publishing your Timeline

Now that you have your spreadsheet set up, publish it to the web as explained in step 2 of "Make a Timeline", and follow the rest of the instructions on that page.