diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 0a5475d6c..e39f45491 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -302,6 +302,7 @@ All definitions files include a header with the author and editors, so at some p
* [Teechart](http://www.steema.com) (by [Steema](http://www.steema.com))
* [text-buffer](https://github.com/atom/text-buffer) (by [vvakame](https://github.com/vvakame))
* [three.js](http://mrdoob.github.com/three.js/) (by [Kon](http://phyzkit.net/))
+* [TimelineJS](https://github.com/NUKnightLab/TimelineJS) (by [Roland Zwaga](https://github.com/rolandzwaga))
* [Toastr](https://github.com/CodeSeven/toastr) (by [Boris Yankov](https://github.com/borisyankov))
* [trunk8](https://github.com/rviscomi/trunk8) (by [Blake Niemyjski](https://github.com/niemyjski))
* [TweenJS](http://www.createjs.com/#!/TweenJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
diff --git a/timelinejs/timelinejs-tests.ts b/timelinejs/timelinejs-tests.ts
new file mode 100644
index 000000000..da6aef966
--- /dev/null
+++ b/timelinejs/timelinejs-tests.ts
@@ -0,0 +1,41 @@
+/**
+ * Created by Roland on 6/15/2014.
+ */
+///
+
+var timelineSource:knightlab.ITimelineModel = {
+ timeline: {
+ headline: 'Test Headline',
+ type: 'default',
+ text: 'Test Text',
+ asset: {
+ media: 'http://www.vertex42.com/ExcelArticles/Images/timeline/Timeline-for-Benjamin-Franklin.gif',
+ credit: 'http://www.vertex42.com',
+ caption: 'Test Caption'
+ },
+ date: [
+ {
+ startDate: '2011,12,09',
+ endDate: '2011,12,10',
+ headline: 'Test Date Headline',
+ text: 'Test test test test'
+ },
+ {
+ startDate: '2012,12,09',
+ endDate: '2012,12,10',
+ headline: 'Test Date Headline 2',
+ text: 'Test2 test2 test2 test2'
+ }
+ ]
+ }
+};
+
+var source:knightlab.ITimeLineConfiguration = {
+ width: '100%',
+ height: '100%',
+ type: 'timeline',
+ embed_id: 'test',
+ source: timelineSource
+};
+
+createStoryJS(source);
\ No newline at end of file
diff --git a/timelinejs/timelinejs.d.ts b/timelinejs/timelinejs.d.ts
new file mode 100644
index 000000000..6101b93aa
--- /dev/null
+++ b/timelinejs/timelinejs.d.ts
@@ -0,0 +1,136 @@
+// Type definitions for timelinejs
+// Project: https://github.com/NUKnightLab/TimelineJS
+// Definitions by: Roland Zwaga
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare function createStoryJS(config:knightlab.ITimeLineConfiguration):void;
+
+declare module knightlab {
+
+ export interface ITimeLineConfiguration {
+ width: string;
+ height: string;
+ /*
+ * path to json/ or link to googlespreadsheet
+ * source Should be either the path to the JSON resource to load, or a JavaScript object corresponding to the
+ * Timeline model.
+ *
+ * Here is an example using a data object:
+ *
+ * var dataObject = {timeline: {headline: "Headline", type: ... }}
+ * createStoryJS({
+ * type: 'timeline',
+ * width: '800',
+ * height: '600',
+ * source: dataObject,
+ * embed_id: 'my-timeline'
+ * });
+ * If source is a string, we will try to automatically recognize resources that are Twitter searches, Google
+ * Spreadsheets or Storify stories. Failing that, we assume the source is either JSON or JSONP. If string
+ * matches on .jsonp, we will treat it as JSONP, otherwise, we will append ?callback=onJSONP_Data.
+ */
+ source: any;
+ type?: string;
+ /*
+ * Optional use a different div id for embed
+ */
+ embed_id?: string;
+ /*
+ * Optional start at latest date
+ */
+ start_at_end?: boolean;
+ /*
+ * Optional start at specific slide
+ */
+ start_at_slide?: string;
+ /*
+ * Optional tweak the default zoom level
+ */
+ start_zoom_adjust?: string;
+ /*
+ * Optional location bar hashes
+ */
+ hash_bookmark?: boolean;
+ /*
+ * Optional font
+ */
+ font?: string;
+ /*
+ * Optional debug to console
+ */
+ debug?: boolean;
+ /*
+ * Optional language
+ */
+ lang?: string;
+ /*
+ * Optional path to css
+ */
+ css?: string;
+ /*
+ * Optional path to js
+ */
+ js?: string;
+ /*
+ * required in order to use maptype
+ */
+ gmap_key?: string;
+ /*
+ * Stamen Maps:
+ * toner
+ * toner-lines
+ * toner-labels
+ * watercolor
+ * sterrain
+ *
+ * Google Maps:
+ * ROADMAP
+ * TERRAIN
+ * HYBRID
+ * SATELLITE
+ *
+ * OpenStreetMap:
+ * osm
+ */
+ maptype?: string;
+ }
+
+ export interface ITimelineModel {
+ timeline:ITimeLine;
+ }
+
+ export interface ITimeLine {
+ headline?:string;
+ type?:string;
+ text?:string;
+ asset?:ITimeLineAsset;
+ date?:ITimelineDate[];
+ era?:ITimelineEra[];
+ }
+
+ export interface ITimeLineAsset {
+ media:string;
+ thumbnail?:string;
+ credit:string;
+ caption:string;
+ }
+
+ export interface ITimelineDate extends ITimelineEra {
+ classname?:string;
+ asset?:ITimeLineAsset;
+ }
+
+ export interface ITimelineEra {
+ /*
+ * format example: 2011,12,10
+ */
+ startDate:string;
+ /*
+ * format example: 2011,12,10
+ */
+ endDate:string;
+ headline:string;
+ text:string;
+ tag?:string;
+ }
+}
\ No newline at end of file