diff --git a/modules/default/calendar/README.md b/modules/default/calendar/README.md
index 385b917d..92574415 100644
--- a/modules/default/calendar/README.md
+++ b/modules/default/calendar/README.md
@@ -130,6 +130,12 @@ The following properties can be configured:
Default value: 'Today'
+
+ runningText |
+ Text to display when an event is still running.
+ Default value: 'Ends in'
+ |
+
diff --git a/modules/default/calendar/calendar.js b/modules/default/calendar/calendar.js
index b2828c22..1c2dfb28 100644
--- a/modules/default/calendar/calendar.js
+++ b/modules/default/calendar/calendar.js
@@ -33,7 +33,8 @@ Module.register("calendar",{
emptyCalendarText: "No upcoming events.",
// TODO: It would be nice if there is a way to get this from the Moment.js locale.
- todayText: "Today"
+ todayText: "Today",
+ runningText: "Ends in"
},
// Define required scripts.
@@ -119,7 +120,11 @@ Module.register("calendar",{
if (event.fullDayEvent) {
timeWrapper.innerHTML = (event.today) ? this.config.todayText : moment(event.startDate,"x").fromNow();
} else {
- timeWrapper.innerHTML = moment(event.startDate,"x").fromNow();
+ if (event.startDate >= new Date()) {
+ timeWrapper.innerHTML = moment(event.startDate,"x").fromNow();
+ } else {
+ timeWrapper.innerHTML = this.config.runningText + ' ' + moment(event.endDate,"x").fromNow(true);
+ }
}
// timeWrapper.innerHTML = moment(event.startDate,'x').format('lll');
timeWrapper.className = "time light";
diff --git a/modules/default/calendar/calendarfetcher.js b/modules/default/calendar/calendarfetcher.js
index 7e6501e3..a3c9b082 100644
--- a/modules/default/calendar/calendarfetcher.js
+++ b/modules/default/calendar/calendarfetcher.js
@@ -58,6 +58,7 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe
if (event.type === "VEVENT") {
var startDate = (event.start.length === 8) ? moment(event.start, "YYYYMMDD") : moment(new Date(event.start));
+ var endDate = (event.end.length === 8) ? moment(event.end, "YYYYMMDD") : moment(new Date(event.end));
if (event.start.length === 8) {
startDate = startDate.startOf("day");
}
@@ -88,8 +89,8 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe
newEvents.push({
title: (typeof event.summary.val !== "undefined") ? event.summary.val : event.summary,
startDate: startDate.format("x"),
+ endDate: endDate.format("x"),
fullDayEvent: (event.start.length === 8)
-
});
}
} else {
@@ -98,13 +99,13 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe
var fullDayEvent = (event.start.length === 8);
var title = (typeof event.summary.val !== "undefined") ? event.summary.val : event.summary;
- if (!fullDayEvent && startDate < new Date()) {
+ if (!fullDayEvent && endDate < new Date()) {
// it's not a fullday event, and it is in the past. So skip.
console.log("It's not a fullday event, and it is in the past. So skip: " + title);
continue;
}
- if (fullDayEvent && startDate < today) {
+ if (fullDayEvent && endDate < today) {
// it's a fullday event, and it is before today. So skip.
console.log("It's a fullday event, and it is before today. So skip: " + title);
continue;
@@ -120,6 +121,7 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe
newEvents.push({
title: title,
startDate: startDate.format("x"),
+ endDate: endDate.format("x"),
fullDayEvent: fullDayEvent
});
diff --git a/modules/default/calendar/debug.js b/modules/default/calendar/debug.js
index 22d23066..c709c312 100644
--- a/modules/default/calendar/debug.js
+++ b/modules/default/calendar/debug.js
@@ -8,7 +8,7 @@
var CalendarFetcher = require("./calendarfetcher.js");
-var url = 'https://github.com/MichMich/MagicMirror/files/217285/reachcalendar.txt';
+var url = 'http://p35-calendars.icloud.com/published/2/qsud2R2XlRhT3puEVfrzkeSd3X_QSfCMBmpgTsjVqOD2W_fyy0Y-5QskbvWw2jOQB_cPsmcjpGtcg1a3jBQ_QIS2H0XWSxjqCa8LX0dznpE';
var fetchInterval = 60 * 60 * 1000;
var maximumEntries = 10;
var maximumNumberOfDays = 365;