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
docs: update documentation and bump version to 2.3.0
- Updated README.md with v2.3 features:
- Named Calendars with friendly names
- Per-button calendar selection via dropdown
- Configurable warning thresholds (orange/red)
- Graceful calendar deletion migration
- Improved Settings UI documentation
- Updated Features section with new capabilities
- Updated Configuration section with Global/Per-Button settings
- Updated Changelog with detailed v2.3.0 changes
- Updated copilot-instructions.md with new patterns
- Bumped version to 2.3.0 in package.json, manifest.json, src/manifest.json
Copy file name to clipboardExpand all lines: README.md
+49-23Lines changed: 49 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,11 +8,16 @@ This plugin is available on the Stream Deck store, you can also download [the la
8
8
9
9
## ✨ New in v2.3
10
10
11
-
- ✅ **Multiple Calendars Support**: Use different calendars on different buttons! (#5)
12
-
- Enable "Use custom calendar" in the button settings
13
-
- Configure separate URL, time window, and all-day event options per button
14
-
- Label your calendars for easy identification (e.g., "Work", "Personal", "Family")
15
-
- Buttons using the same URL share a single cache (efficient!)
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
16
21
17
22
## ✨ New in v2.2
18
23
@@ -37,7 +42,9 @@ This plugin is available on the Stream Deck store, you can also download [the la
37
42
- ✅ **Provider Compatibility**: Optimized for Google Calendar, Microsoft Outlook/Office 365, and Apple Calendar
38
43
39
44
## Features ##
40
-
* ✅ **Multiple calendars** - Different buttons can show different calendars
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
41
48
* ✅ **Recurring events** with RRULE expansion and EXDATE handling
42
49
* ✅ **Configurable time window** (1, 3, 5, or 7 days)
43
50
* ✅ **Exclude all-day events** option (enabled by default)
@@ -50,8 +57,8 @@ This plugin is available on the Stream Deck store, you can also download [the la
50
57
51
58
### Time Left ###
52
59
* Shows time left until the meeting ends
53
-
* Changes icon color to orange when 5 minutes are left on the meeting
54
-
* 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)
55
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
56
63
* Supports multiple concurrent meetings, to switch between meeting just push the button
57
64
* Shows meeting indicator (e.g., "1/3") when multiple meetings are active
@@ -65,7 +72,7 @@ This plugin is available on the Stream Deck store, you can also download [the la
65
72
* Scrolling marquee for meeting titles (tap to show/hide)
66
73
* Concurrent meeting support (tap to cycle through active meetings)
67
74
* Flash alert when meetings start
68
-
*Color-coded countdown (orange at 5 min, red at 30 sec)
75
+
*Configurable warning thresholds (orange/red)
69
76
***Perfect for limited Stream Deck space** - one button does it all!
70
77
71
78
### Next Meeting ###
@@ -75,8 +82,8 @@ This plugin is available on the Stream Deck store, you can also download [the la
75
82
* If the button is pushed while the text is showing it will go back to show the time left until the next meeting
76
83
* At the end of the title animation, the button will go back to show the time left until the next meeting
77
84
***Optional flash alert** when meetings are about to start (disabled by default)
78
-
* Changes icon color to orange when there are 5 minutes left for the next meeting to start
79
-
* 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)
80
87
81
88
## Calendar Provider Support
82
89
@@ -138,15 +145,29 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup instructions.
138
145
139
146
## Configuration
140
147
148
+
### Global Settings (Settings Popup)
141
149
1. Drag an action to your Stream Deck
142
150
2. Click the action to open Property Inspector
143
151
3. Click "Settings" button
144
-
4. Enter your iCal URL
145
-
5. Choose time window (1, 3, 5, or 7 days)
146
-
6. Set title display duration (5, 10, 15, or 30 seconds)
147
-
7. Optionally enable "Flash when meeting starts" for visual alerts
148
-
8. Optionally uncheck "Exclude All-Day Events" to show all-day events
149
-
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
150
171
151
172
## Troubleshooting
152
173
@@ -195,12 +216,17 @@ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:
195
216
## Changelog
196
217
197
218
### v2.3.0 (2026)
198
-
- ✨ **Multiple Calendars Support**: Each button can use a different calendar (#5)
199
-
- ✨ Per-button custom URL, time window, and all-day event settings
200
-
- ✨ Calendar labels for easy identification in settings
201
-
- ✨ URL-level caching: buttons sharing the same URL share a single cache
202
-
- ✅ Added CalendarManager service with 28 tests
203
-
- ✅ Added 13 per-action settings tests
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)
204
230
205
231
### v2.2.0 (2026)
206
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