kiosko-plugin-calendar 0.0.0-stage → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +92 -2
- package/dist/index.js +8219 -0
- package/package.json +52 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Loksly
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,93 @@
|
|
|
1
|
-
#
|
|
1
|
+
# kiosko-plugin-calendar
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Meetings from published ICS calendars (Outlook/Teams, Google…): a countdown to the next one and the agenda of the next days.
|
|
4
|
+
|
|
5
|
+
A plugin for [Kiosko](https://github.com/kiosko-lcd/kiosko), the widget mosaic for small USB LCD panels.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
In Kiosko, **Plugins → Install from npm** → `kiosko-plugin-calendar`, then restart Kiosko. Or from a terminal:
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
npm install --prefix ~/.config/kiosko/plugins kiosko-plugin-calendar
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
(macOS: `~/Library/Application Support/Kiosko/plugins`, Windows: `%APPDATA%\Kiosko\plugins`.)
|
|
18
|
+
|
|
19
|
+
## Requirements
|
|
20
|
+
|
|
21
|
+
- The ICS address of a published calendar (Outlook: *Settings → Calendar → Shared calendars → Publish*; Google: *Secret address in iCal format*). Treat it as a password.
|
|
22
|
+
|
|
23
|
+
## Widgets
|
|
24
|
+
|
|
25
|
+
### Next meeting — `calendar/next`
|
|
26
|
+
|
|
27
|
+
A big countdown to your next meeting. Its colour climbs the semaphore as it nears, and it takes the tile over when it’s about to start.
|
|
28
|
+
|
|
29
|
+

|
|
30
|
+
|
|
31
|
+
Uses: `calendar/events`.
|
|
32
|
+
|
|
33
|
+
| Option | Type | Default | |
|
|
34
|
+
|---|---|---|---|
|
|
35
|
+
| `showTitle` | boolean | `true` | Show the title. Off: only the time and the countdown. Private meetings never show it. |
|
|
36
|
+
| `showAttendees` | boolean | `true` | Show who attends. With the title. Outlook’s published calendars don’t carry them. |
|
|
37
|
+
| `greyMs` | duration (ms) | `7200000` | Awake from (before it starts). Further away it is drawn dim and lets the panel sleep. |
|
|
38
|
+
| `readyMs` | duration (ms) | `1800000` | Info colour from (before it starts) |
|
|
39
|
+
| `warnMs` | duration (ms) | `600000` | Warning colour from (before it starts). Also when, back to back, the next meeting replaces the one under way. |
|
|
40
|
+
| `alertMs` | duration (ms) | `180000` | Alert from (before it starts). From here until it ends, it takes its tile over. |
|
|
41
|
+
| `hideTentative` | boolean | `false` | Skip tentative meetings. Invitations not accepted yet. |
|
|
42
|
+
| `calendars` | list | `[]` | Calendars. Empty: all. Names as each calendar calls itself (Work, Holidays…), comma-separated; * matches anything, a leading ! leaves out. |
|
|
43
|
+
|
|
44
|
+
### Agenda — `calendar/agenda`
|
|
45
|
+
|
|
46
|
+
The meetings left today and those of the next days: the one under way highlighted, the next one with its countdown.
|
|
47
|
+
|
|
48
|
+

|
|
49
|
+
|
|
50
|
+
Uses: `calendar/events`.
|
|
51
|
+
|
|
52
|
+
| Option | Type | Default | |
|
|
53
|
+
|---|---|---|---|
|
|
54
|
+
| `days` | number | `2` | Days. Today included: 1 is only today, 2 today and tomorrow. The source must look as many days ahead, minus one. |
|
|
55
|
+
| `showTitle` | boolean | `true` | Show the titles. Off: "Meeting" instead, for a screen others see. Private meetings never show theirs. |
|
|
56
|
+
| `rows` | number | `0` | Rows. 0 = as many as fit. A number shows that many, in rows of a readable size (fewer when the tile is too small for them); the rest are counted in "+N more". |
|
|
57
|
+
| `calendars` | list | `[]` | Calendars. Empty: all. Names as each calendar calls itself (Work, Holidays…), comma-separated; * matches anything, a leading ! leaves out. |
|
|
58
|
+
| `greyMs` | duration (ms) | `7200000` | Awake from (before it starts). With no meeting this close, it lets the panel sleep. |
|
|
59
|
+
| `warnMs` | duration (ms) | `600000` | Warning colour from (before it starts). From here the card takes its tile over. |
|
|
60
|
+
| `alertMs` | duration (ms) | `180000` | Alert colour from (before it starts) |
|
|
61
|
+
| `holdMs` | duration (ms) | `600000` | Keep the tile after a start. Once you know where you are, the tile goes back to its rotation. |
|
|
62
|
+
|
|
63
|
+
## Data sources
|
|
64
|
+
|
|
65
|
+
### Calendar meetings — `calendar/events`
|
|
66
|
+
|
|
67
|
+
Meetings of today and the next days from one or more published calendars (ICS). Free and focus-time events are left out, and all-day ones unless you ask for them. Read every 5 min while a widget uses it. Options are set once in Kiosko → Settings → Data sources.
|
|
68
|
+
|
|
69
|
+
| Option | Type | Default | |
|
|
70
|
+
|---|---|---|---|
|
|
71
|
+
| `urls` | list | `[]` | Calendars (ICS addresses). The secret address of a published calendar (Outlook on the web: Settings → Calendar → Shared calendars → Publish a calendar → ICS). Anyone with it can read your agenda: treat it like a password. |
|
|
72
|
+
| `ignore` | list | `["focus time","tiempo de concentración"]` | Ignore titles containing. Busy blocks that are not meetings, like focus time. Case and accents don’t matter. |
|
|
73
|
+
| `horizonDays` | number | `6` | Days ahead. Besides today. The agenda shows as many days as this plus one, at most. |
|
|
74
|
+
| `includeAllDay` | boolean | `false` | Include all-day events. Holidays, trips, on-call days: listed at the top of their day in the agenda. They never count as the next meeting. |
|
|
75
|
+
|
|
76
|
+
## Development
|
|
77
|
+
|
|
78
|
+
```sh
|
|
79
|
+
npm install
|
|
80
|
+
npm test # node:test
|
|
81
|
+
npm run check # TypeScript
|
|
82
|
+
npm run build # dist/index.js, what Kiosko loads
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
To try it in a running Kiosko without publishing: `kiosko plugins link .` and restart Kiosko.
|
|
86
|
+
|
|
87
|
+
Working on Kiosko and its plugins together: clone them side by side
|
|
88
|
+
(`kiosko/` and `kiosko-plugins/kiosko-plugin-calendar/`) and run `npm install` in
|
|
89
|
+
`kiosko/`; its workspaces link every plugin found in `../kiosko-plugins`.
|
|
90
|
+
|
|
91
|
+
## License
|
|
92
|
+
|
|
93
|
+
MIT
|