diff --git a/CHANGELOG.md b/CHANGELOG.md
index ffb4e9c6..a2285c74 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -50,6 +50,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Added console warning on startup when deprecated config options are used
- Add option to display temperature unit label to the current weather module
- Added ability to disable wrapping of news items
+- Added in the ability to hide events in the calendar module based on simple string filters.
- Updated Norwegian translation.
- Added hideLoading option for News Feed module
- Added configurable dateFormat to clock module.
diff --git a/modules/default/calendar/README.md b/modules/default/calendar/README.md
index 655ab89c..68a66ab5 100644
--- a/modules/default/calendar/README.md
+++ b/modules/default/calendar/README.md
@@ -44,6 +44,7 @@ The following properties can be configured:
| `urgency` | When using a timeFormat of `absolute`, the `urgency` setting allows you to display events within a specific time frame as `relative`. This allows events within a certain time frame to be displayed as relative (in xx days) while others are displayed as absolute dates
**Possible values:** a positive integer representing the number of days for which you want a relative date, for example `7` (for 7 days)
**Default value:** `7`
| `broadcastEvents` | If this property is set to true, the calendar will broadcast all the events to all other modules with the notification message: `CALENDAR_EVENTS`. The event objects are stored in an array and contain the following fields: `title`, `startDate`, `endDate`, `fullDayEvent`, `location` and `geo`.
**Possible values:** `true`, `false`
**Default value:** `true`
| `hidePrivate` | Hides private calendar events.
**Possible values:** `true` or `false`
**Default value:** `false`
+| `excludedEvents` | An array of words / phrases from event titles that will be excluded from being shown.
**Example:** `['Birthday', 'Hide This Event']`
**Default value:** `[]`
### Calendar configuration
diff --git a/modules/default/calendar/calendar.js b/modules/default/calendar/calendar.js
index 79e9edca..d8aa6aa4 100644
--- a/modules/default/calendar/calendar.js
+++ b/modules/default/calendar/calendar.js
@@ -38,7 +38,8 @@ Module.register("calendar", {
"De verjaardag van ": "",
"'s birthday": ""
},
- broadcastEvents: true
+ broadcastEvents: true,
+ excludedEvents: []
},
// Define required scripts.
@@ -128,6 +129,19 @@ Module.register("calendar", {
for (var e in events) {
var event = events[e];
+ var excluded = false;
+ for (var f in this.config.excludedEvents) {
+ var filter = this.config.excludedEvents[f];
+ if (event.title.toLowerCase().includes(filter.toLowerCase())) {
+ excluded = true;
+ break;
+ }
+ }
+
+ if (excluded) {
+ continue;
+ }
+
var eventWrapper = document.createElement("tr");
if (this.config.colored) {