216 lines
7.0 KiB
Markdown
Raw Normal View History

2016-04-01 14:16:39 +02:00
# Module: Calendar
The `calendar` module is one of the default modules of the MagicMirror.
This module displays events from a public .ical calendar. It can combine multiple calendars.
2016-04-01 14:16:39 +02:00
## Using the module
To use this module, add it to the modules array in the `config/config.js` file:
````javascript
modules: [
{
module: 'calendar',
position: 'top_left', // This can be any of the regions. Best results in left or right regions.
config: {
// The config property is optional.
// If no config is set, an example calendar is shown.
// See 'Configuration options' for more information.
2016-04-01 14:16:39 +02:00
}
}
]
````
## Configuration options
The following properties can be configured:
2016-04-01 14:19:50 +02:00
<table width="100%">
2016-04-01 14:16:39 +02:00
<!-- why, markdown... -->
<thead>
<tr>
<th>Option</th>
2016-04-01 14:19:50 +02:00
<th width="100%">Description</th>
2016-04-01 14:16:39 +02:00
</tr>
<thead>
<tbody>
<tr>
<td><code>maximumEntries</code></td>
<td>The maximum number of events shown.<br>
<br><b>Possible values:</b> <code>0</code> - <code>100</code>
<br><b>Default value:</b> <code>10</code>
</td>
</tr>
<tr>
<td><code>maximumNumberOfDays</code></td>
<td>The maximum number of days in the future.<br>
<br><b>Default value:</b> <code>365</code>
</td>
</tr>
2016-04-01 14:16:39 +02:00
<tr>
<td><code>displaySymbol</code></td>
<td>Display a symbol in front of an entry.<br>
<br><b>Possible values:</b> <code>true</code> or <code>false</code>
<br><b>Default value:</b> <code>true</code>
</td>
</tr>
<tr>
<td><code>defaultSymbol</code></td>
<td>The default symbol.<br>
<br><b>Possible values:</b> See <a href="http://fontawesome.io/icons/" target="_blank">Font Awsome</a> website.
<br><b>Default value:</b> <code>calendar</code>
</td>
</tr>
<tr>
<td><code>maxTitleLength</code></td>
<td>The maximum title length.<br>
<br><b>Possible values:</b> <code>10</code> - <code>50</code>
<br><b>Default value:</b> <code>25</code>
</td>
</tr>
<tr>
<td><code>fetchInterval</code></td>
<td>How often does the content needs to be fetched? (Milliseconds)<br>
<br><b>Possible values:</b> <code>1000</code> - <code>86400000</code>
2016-04-01 16:03:12 +02:00
<br><b>Default value:</b> <code>300000</code> (5 minutes)
2016-04-01 14:16:39 +02:00
</td>
</tr>
<tr>
<td><code>animationSpeed</code></td>
<td>Speed of the update animation. (Milliseconds)<br>
<br><b>Possible values:</b><code>0</code> - <code>5000</code>
<br><b>Default value:</b> <code>2000</code> (2 seconds)
</td>
</tr>
<tr>
<td><code>fade</code></td>
<td>Fade the future events to black. (Gradient)<br>
<br><b>Possible values:</b> <code>true</code> or <code>false</code>
<br><b>Default value:</b> <code>true</code>
</td>
</tr>
<tr>
<td><code>fadePoint</code></td>
<td>Where to start fade?<br>
<br><b>Possible values:</b> <code>0</code> (top of the list) - <code>1</code> (bottom of list)
<br><b>Default value:</b> <code>0.25</code>
</td>
</tr>
<tr>
<td><code>calendars</code></td>
<td>The list of calendars.<br>
<br><b>Possible values:</b> An array, see <i>calendar configuration</i> below.
<br><b>Default value:</b> <i>An example calendar.</i>
</td>
</tr>
2016-04-01 15:53:28 +02:00
<tr>
<td><code>titleReplace</code></td>
<td>An object of textual replacements applied to the tile of the event. This allow to remove or replace certains words in the title.<br>
<br><b>Example:</b> <br>
<code>
titleReplace: {'Birthday of ' : '', 'foo':'bar'}
</code>
</td>
</tr>
<tr>
<td><code>displayRepeatingCountTitle</code></td>
<td>Show count title for yearly repeating events (e.g. "X. Birthday", "X. Anniversary")<br>
<br><b>Possible values:</b> <code>true</code> or <code>false</code>
<br><b>Default value:</b> <code>false</code>
</td>
</tr>
2016-11-10 17:26:29 +01:00
<tr>
<td><code>dateFormat</code></td>
<td>Format to use for the date of events (when using absolute dates)<br>
<br><b>Possible values:</b> See <a href="http://momentjs.com/docs/#/parsing/string-format/">Moment.js formats</a>
<br><b>Default value:</b> <code>MMM Do</code> (e.g. Jan 18th)
</td>
</tr>
<tr>
<td><code>timeFormat</code></td>
<td>Display event times as absolute dates, or relative time<br>
<br><b>Possible values:</b> <code>absolute</code> or <code>relative</code>
<br><b>Default value:</b> <code>relative</code>
</td>
</tr>
2016-09-03 23:36:29 +02:00
<tr>
<td><code>getRelative</code></td>
2016-09-03 23:42:24 +02:00
<td>How much time (in hours) should be left until calendar events start getting relative?<br>
2016-09-03 23:40:29 +02:00
<br><b>Possible values:</b> <code>0</code> (events stay absolute) - <code>48</code> (48 hours before the event starts)
2016-09-03 23:36:29 +02:00
<br><b>Default value:</b> <code>6</code>
</td>
</tr>
<tr>
<td><code>urgency</code></td>
<td>When using a timeFormat of <code>absolute</code>, the <code>urgency</code> setting allows you to display events within a specific time frame as <code>relative</code>
This allows events within a certain time frame to be displayed as relative (in xx days) while others are displayed as absolute dates<br>
<br><b>Possible values:</b> a positive integer representing the number of days for which you want a relative date, for example <code>7</code> (for 7 days)<br>
<br><b>Default value:</b> <code>0</code> (disabled)
</td>
</tr>
<tr>
<td><code>broadcastEvents</code></td>
<td>If this property is set to true, the calendar will broadcast all the events to all other modules with the notification message: <code>CALENDAR_EVENTS</code>. The event objects are stored in an array and contain the following fields: <code>title</code>, <code>startDate</code>, <code>endDate</code>, <code>fullDayEvent</code>, <code>location</code> and <code>geo</code>.<br>
<br><b>Possible values:</b> <code>true</code>, <code>false</code> <br>
<br><b>Default value:</b> <code>true</code>
</td>
</tr>
2016-04-01 14:16:39 +02:00
</tbody>
</table>
### Calendar configuration
2016-04-01 16:03:12 +02:00
The `calendars` property contains an array of the configured calendars.
2016-04-01 14:16:39 +02:00
#### Default value:
````javascript
config: {
calendars: [
{
url: 'http://www.calendarlabs.com/templates/ical/US-Holidays.ics',
symbol: 'calendar',
},
],
}
````
#### Calendar configuration options:
2016-04-01 14:19:50 +02:00
<table width="100%">
2016-04-01 14:16:39 +02:00
<!-- why, markdown... -->
<thead>
<tr>
<th>Option</th>
2016-04-01 14:19:50 +02:00
<th width="100%">Description</th>
2016-04-01 14:16:39 +02:00
</tr>
<thead>
<tbody>
<tr>
<td><code>url</code></td>
<td>The url of the calendar .ical. This property is required.<br>
<br><b>Possible values:</b> Any public accessble .ical calendar.
</td>
</tr>
<tr>
2016-11-12 21:10:37 -03:00
<td><code>symbol</code></td>
2016-04-01 14:16:39 +02:00
<td>The symbol to show in front of an event. This property is optional.<br>
2016-08-27 20:35:00 +02:00
<br><b>Possible values:</b> See <a href="http://fontawesome.io/icons/" target="_blank">Font Awesome</a> website.
2016-04-01 14:16:39 +02:00
</td>
</tr>
<tr>
2016-11-12 21:10:37 -03:00
<td><code>repeatingCountTitle</code></td>
<td>The count title for yearly repating events in this calendar. <br>
<br><b>Example:</b> <br>
<code>'Birthday'</code>
</td>
</tr>
<tr>
2016-11-12 21:10:37 -03:00
<td><code>user</code></td>
<td>The username for HTTP Basic authentication.</td>
</tr>
<tr>
2016-11-12 21:10:37 -03:00
<td><code>pass</code></td>
<td>The password for HTTP Basic authentication.</td>
</tr>
2016-04-01 14:16:39 +02:00
</tbody>
</table>