kiosko-plugin-calendar 0.0.0-stage → 0.1.0

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.
Files changed (4) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +92 -2
  3. package/dist/index.js +8219 -0
  4. 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
- # Temporary Holding Version
1
+ # kiosko-plugin-calendar
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
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
+ ![Next meeting](docs/next.png)
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
+ ![Next meeting](docs/next.png)
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
+ ![Agenda](docs/agenda.png)
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