diff --git a/angular-bootstrap-calendar/angular-bootstrap-calendar-tests.ts b/angular-bootstrap-calendar/angular-bootstrap-calendar-tests.ts
new file mode 100644
index 0000000000..a704ced3b2
--- /dev/null
+++ b/angular-bootstrap-calendar/angular-bootstrap-calendar-tests.ts
@@ -0,0 +1,46 @@
+///
+///
+
+var myApp = angular.module('testModule');
+
+interface MyAppScope extends ng.IScope {
+ events: ng.bootstrap.calendar.IEvent[];
+}
+
+myApp.config(function (calendarConfig: ng.bootstrap.calendar.ICalendarConfig) {
+
+ calendarConfig.templates.calendarMonthView = 'path/to/custom/template.html'; //change the month view template to a custom template
+
+ calendarConfig.dateFormatter = 'moment'; //use either moment or angular to format dates on the calendar. Default angular. Setting this will override any date formats you have already set.
+
+ calendarConfig.allDateFormats.moment.date.hour = 'HH:mm'; //this will configure times on the day view to display in 24 hour format rather than the default of 12 hour
+
+ calendarConfig.allDateFormats.moment.title.day = 'ddd D MMM'; //this will configure the day view title to be shorter
+
+ calendarConfig.i18nStrings.weekNumber = 'Week {week}'; //This will set the week number hover label on the month view
+
+ calendarConfig.displayAllMonthEvents = true; //This will display all events on a month view even if they're not in the current month. Default false.
+
+ calendarConfig.displayEventEndTimes = true; //This will display event end times on the month and year views. Default false.
+
+ calendarConfig.showTimesOnWeekView = true; //Make the week view more like the day view, with the caveat that event end times are ignored.
+
+});
+
+var someController: Function = ($scope: MyAppScope) => {
+ $scope.events = [
+ {
+ title: 'My event title', // The title of the event
+ type: 'info', // The type of the event (determines its color). Can be important, warning, info, inverse, success or special
+ startsAt: new Date(2013, 5, 1, 1), // A javascript date object for when the event starts
+ endsAt: new Date(2014, 8, 26, 15), // Optional - a javascript date object for when the event ends
+ editable: false, // If edit-event-html is set and this field is explicitly set to false then dont make it editable.
+ deletable: false, // If delete-event-html is set and this field is explicitly set to false then dont make it deleteable
+ draggable: true, //Allow an event to be dragged and dropped
+ resizable: true, //Allow an event to be resizable
+ incrementsBadgeTotal: true, //If set to false then will not count towards the badge total amount on the month and year view
+ recursOn: 'year', // If set the event will recur on the given period. Valid values are year or month
+ cssClass: 'a-css-class-name' //A CSS class (or more, just separate with spaces) that will be added to the event when it is displayed on each view. Useful for marking an event as selected / active etc
+ }
+ ];
+};
\ No newline at end of file
diff --git a/angular-bootstrap-calendar/angular-bootstrap-calendar.d.ts b/angular-bootstrap-calendar/angular-bootstrap-calendar.d.ts
new file mode 100644
index 0000000000..0d92b3be84
--- /dev/null
+++ b/angular-bootstrap-calendar/angular-bootstrap-calendar.d.ts
@@ -0,0 +1,138 @@
+// Type definitions for angular-bootstrap-calendar
+// Project: https://github.com/mattlewis92/angular-bootstrap-calendar
+// Definitions by: Egor Komarov
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+
+declare module angular.bootstrap.calendar {
+ interface IEvent {
+ /**
+ * The title of the event
+ */
+ title: string;
+ /**
+ * The type of the event (determines its color). Can be important, warning, info, inverse, success or special
+ */
+ type: string;
+ /**
+ * A javascript date object for when the event starts
+ */
+ startsAt: Date;
+ /**
+ * Optional - a javascript date object for when the event ends
+ */
+ endsAt?: Date;
+ /**
+ * If edit-event-html is set and this field is explicitly set to false then dont make it editable.
+ */
+ editable?: boolean;
+ /**
+ * If delete-event-html is set and this field is explicitly set to false then dont make it deleteable
+ */
+ deletable?: boolean;
+ /**
+ * Allow an event to be dragged and dropped
+ */
+ draggable?: boolean;
+ /**
+ * Allow an event to be resizable
+ */
+ resizable?: boolean;
+ /**
+ * If set to false then will not count towards the badge total amount on the month and year view
+ */
+ incrementsBadgeTotal?: boolean;
+ /**
+ * If set the event will recur on the given period. Valid values are year or month
+ */
+ recursOn?: string;
+ /**
+ * A CSS class (or more, just separate with spaces) that will be added to the event when it is displayed on each view. Useful for marking an event as selected / active etc
+ */
+ cssClass?: string;
+ }
+
+ interface ICalendarConfig {
+ allDateFormats: {
+ angular: IFormats;
+ moment: IFormats;
+ };
+ dateFormats: IDateFormats;
+ titleFormats: ITitleFormats;
+ dateFormatter: string;
+ displayEventEndTimes: boolean;
+ showTimesOnWeekView: boolean;
+ displayAllMonthEvents: boolean;
+ i18nStrings: { weekNumber: string; };
+ templates: {
+ calendarDayView: string;
+ calendarHourList: string;
+ calendarMonthCell: string;
+ calendarMonthCellEvents: string;
+ calendarMonthView: string;
+ calendarSlideBox: string;
+ calendarWeekView: string;
+ calendarYearView: string;
+ };
+ }
+
+ interface IFormats {
+ date: IDateFormats;
+ title: ITitleFormats;
+ }
+
+ interface IDateFormats {
+ hour: string;
+ day: string;
+ month: string;
+ weekDay: string;
+ time: string;
+ datetime: string;
+ }
+
+ interface ITitleFormats {
+ day: string;
+ week: string;
+ month: string;
+ year: string;
+ }
+
+ interface ICalendarCell {
+ label: number;
+ date: moment.Moment;
+ inMonth: boolean;
+ isPast: boolean;
+ isToday: boolean;
+ isFuture: boolean;
+ isWeekend: boolean;
+ events: IEvent[];
+ badgeTotal: number;
+ }
+
+ module events {
+ interface IOnEventClick {
+ (calendarEvent: IEvent): void;
+ }
+
+ interface IOnEventTimesChanged {
+ (calendarEvent: IEvent, calendarNewEventStart: Date, calendarNewEventEnd: Date): void;
+ }
+
+ interface IOnEditEventClick {
+ (calendarEvent: IEvent): void;
+ }
+
+ interface IOnDeleteEventClick {
+ (calendarEvent: IEvent): void;
+ }
+
+ interface IOnTimespanClick {
+ (calendarDate: Date, calendarCell: ICalendarCell): void;
+ }
+
+ interface IOnViewChangeClick {
+ (calendarDate: Date, calendarNextView: string): void;
+ }
+ }
+}
\ No newline at end of file