You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+54-11Lines changed: 54 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,19 @@ iCal Plugin for [elgato Stream Deck](https://www.elgato.com/en/gaming/stream-dec
6
6
7
7
This plugin is available on the Stream Deck store, you can also download [the last release](https://github.com/pedrofuentes/stream-deck-ical/releases) or build it yourself using the code on this repo.
8
8
9
+
## ✨ New in v2.3
10
+
11
+
- ✅ **Named Calendars**: Set up multiple calendars with friendly names in Settings (#5)
12
+
- Create a library of calendars (Work, Personal, Family, etc.)
13
+
- Each button can select which calendar to use from a dropdown
14
+
- Calendars sharing the same URL share a single cache (efficient!)
15
+
- ✅ **Per-Button Settings**: Each button can have its own time window and all-day event preferences
16
+
- ✅ **Configurable Warning Thresholds**: Customize when orange/red warnings appear
17
+
- Orange warning: Choose from 1, 2, 3, 5, 10, 15, or 30 minutes (default: 5 min)
18
+
- Red warning: Choose from 10, 15, 30, 45, or 60 seconds (default: 30 sec)
19
+
- ✅ **Graceful Calendar Deletion**: Buttons using a deleted calendar automatically fall back to default
20
+
- ✅ **Improved Settings UI**: Redesigned Property Inspector with collapsible help sections
21
+
9
22
## ✨ New in v2.2
10
23
11
24
- ✅ **Smart Calendar Action**: New all-in-one action that automatically switches between modes (#10)
@@ -29,6 +42,9 @@ This plugin is available on the Stream Deck store, you can also download [the la
29
42
- ✅ **Provider Compatibility**: Optimized for Google Calendar, Microsoft Outlook/Office 365, and Apple Calendar
30
43
31
44
## Features ##
45
+
* ✅ **Named calendars** - Set up multiple calendars with friendly names, assign to buttons via dropdown
46
+
* ✅ **Per-button settings** - Each button can use different calendar, time window, and all-day preferences
47
+
* ✅ **Configurable warning thresholds** - Customize orange/red warning times
32
48
* ✅ **Recurring events** with RRULE expansion and EXDATE handling
33
49
* ✅ **Configurable time window** (1, 3, 5, or 7 days)
34
50
* ✅ **Exclude all-day events** option (enabled by default)
@@ -41,8 +57,8 @@ This plugin is available on the Stream Deck store, you can also download [the la
41
57
42
58
### Time Left ###
43
59
* Shows time left until the meeting ends
44
-
* Changes icon color to orange when 5 minutes are left on the meeting
45
-
* Changes icon color to red when 30 seconds are left on the meeting and goes up to 5 minutes after the meeting
60
+
* Changes icon color to orange when time remaining reaches the orange threshold (default: 5 minutes)
61
+
* Changes icon color to red when time remaining reaches the red threshold (default: 30 seconds)
46
62
* When the meeting ends the counter will keep going and stay red for 5 minutes, if the user pushes the button it will show the next meeting if one is available
47
63
* Supports multiple concurrent meetings, to switch between meeting just push the button
48
64
* Shows meeting indicator (e.g., "1/3") when multiple meetings are active
@@ -56,7 +72,7 @@ This plugin is available on the Stream Deck store, you can also download [the la
56
72
* Scrolling marquee for meeting titles (tap to show/hide)
57
73
* Concurrent meeting support (tap to cycle through active meetings)
58
74
* Flash alert when meetings start
59
-
*Color-coded countdown (orange at 5 min, red at 30 sec)
75
+
*Configurable warning thresholds (orange/red)
60
76
***Perfect for limited Stream Deck space** - one button does it all!
61
77
62
78
### Next Meeting ###
@@ -66,8 +82,8 @@ This plugin is available on the Stream Deck store, you can also download [the la
66
82
* If the button is pushed while the text is showing it will go back to show the time left until the next meeting
67
83
* At the end of the title animation, the button will go back to show the time left until the next meeting
68
84
***Optional flash alert** when meetings are about to start (disabled by default)
69
-
* Changes icon color to orange when there are 5 minutes left for the next meeting to start
70
-
* Changes icon color to red when there are 30 seconds left for the next meeting to start
85
+
* Changes icon color to orange when time remaining reaches the orange threshold (default: 5 minutes)
86
+
* Changes icon color to red when time remaining reaches the red threshold (default: 30 seconds)
71
87
72
88
## Calendar Provider Support
73
89
@@ -129,15 +145,29 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup instructions.
129
145
130
146
## Configuration
131
147
148
+
### Global Settings (Settings Popup)
132
149
1. Drag an action to your Stream Deck
133
150
2. Click the action to open Property Inspector
134
151
3. Click "Settings" button
135
-
4. Enter your iCal URL
136
-
5. Choose time window (1, 3, 5, or 7 days)
137
-
6. Set title display duration (5, 10, 15, or 30 seconds)
138
-
7. Optionally enable "Flash when meeting starts" for visual alerts
139
-
8. Optionally uncheck "Exclude All-Day Events" to show all-day events
140
-
9. Click "Save Settings"
152
+
4.**Manage Calendars**: Add named calendars with friendly labels
153
+
- Click "Add Calendar" to create a new entry
154
+
- Give it a name (e.g., "Work", "Personal")
155
+
- Paste your iCal URL
156
+
- Set time window and all-day event preferences per calendar
157
+
- Click ★ to set as default calendar
158
+
5.**Warning Thresholds**: Customize when color warnings appear
159
+
- Orange warning: 1-30 minutes (default: 5 min)
160
+
- Red warning: 10-60 seconds (default: 30 sec)
161
+
6.**Other Options**:
162
+
- Title display duration (5, 10, 15, or 30 seconds)
163
+
- Flash on meeting start (optional visual alert)
164
+
7. Click "Save Settings"
165
+
166
+
### Per-Button Settings (Property Inspector)
167
+
Each button can override the default calendar:
168
+
1. Select the button on your Stream Deck
169
+
2. In Property Inspector, use the "Calendar" dropdown to select which calendar this button should use
170
+
3. The default calendar is indicated with "(Default)" in the dropdown
141
171
142
172
## Troubleshooting
143
173
@@ -185,6 +215,19 @@ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:
185
215
186
216
## Changelog
187
217
218
+
### v2.3.0 (2026)
219
+
- ✨ **Named Calendars**: Set up multiple calendars with friendly names in Settings (#5)
220
+
- ✨ **Per-Button Calendar Selection**: Each button selects calendar from dropdown
221
+
- ✨ **Configurable Warning Thresholds**: Customize orange (1-30 min) and red (10-60 sec) warnings
222
+
- ✨ **Graceful Calendar Deletion**: Buttons auto-migrate to default when calendar is deleted
223
+
- ✨ **Improved Settings UI**: Redesigned Property Inspector with collapsible help
224
+
- ✨ Per-button time window and all-day event settings
225
+
- ✨ URL-level caching: buttons sharing same URL share a single cache
226
+
- 🐛 Fixed button state preservation with SingletonAction pattern
227
+
- 🐛 Fixed calendar selection not persisting after Stream Deck restart
228
+
- ✅ Added CalendarManager service with 31 tests
229
+
- ✅ Added 104 new regression tests (529 total)
230
+
188
231
### v2.2.0 (2026)
189
232
- ✨ **Smart Calendar Action**: New combined action that auto-switches between Time Left and Next Meeting (#10)
Copy file name to clipboardExpand all lines: package.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "stream-deck-ical",
3
-
"version": "2.2.0",
3
+
"version": "2.3.0",
4
4
"description": "An elgato Stream Deck plugin that displays information from your calendar using an iCal URL. Visual cues and a countdown will help you end meetings on time and be ready for the next one.",
0 commit comments