{"product":"screenly","releases":[{"date":"2026-07-24","entries":[{"areas":["content-management"],"breaking":false,"content_html":"\u003cp\u003eScheduling a playlist used to mean filling in a condition builder and then trusting that the\nresult said what you meant. If a playlist had three rules, working out when it actually played\ntook some reading.\u003c/p\u003e\n\u003cp\u003eThe Schedule tab (Playlists \u0026gt; a playlist \u0026gt; Schedule) now lists each rule as a line of plain\ntext, naming the dates it covers, the days of the week it runs on, and the hours it plays,\ninstead of a form you have to read back to yourself. Above the list, an Effective schedule block\nstates when the playlist plays once every rule is taken together. A playlist with no rules says\nso directly: \u0026ldquo;Always active. This playlist plays on every screen, every day, all day.\u0026rdquo;\u003c/p\u003e\n\u003cp\u003eEditing a rule opens a dialog split into Dates, Time of day, and Days of week, so you work on one\npart of the schedule at a time and watch the sentence update as you go.\u003c/p\u003e\n\u003ch2 id=\"rules-that-will-not-do-what-you-meant-say-so\"\u003eRules that will not do what you meant say so\u003c/h2\u003e\n\u003cp\u003eA schedule can be self-contradictory in ways that are invisible until nothing plays. Each rule\nnow carries its own status:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNever plays, for a rule whose conditions cannot all be true at once, such as a date range that\ncontains none of the weekdays it allows\u003c/li\u003e\n\u003cli\u003eExpired, for a rule whose end date has passed\u003c/li\u003e\n\u003cli\u003ePending, for a rule that has not started yet\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"dates-can-have-exceptions\"\u003eDates can have exceptions\u003c/h2\u003e\n\u003cp\u003eA rule can now exclude individual days inside its own range, which is the difference between a\nQSR menu board that runs every day of the year and one that runs every day except December 25.\nExcluded dates show as removable labels under the date range, so a closure that moves is one\nlabel to swap rather than a schedule to rebuild.\u003c/p\u003e\n\u003ch2 id=\"schedules-the-rules-cant-show\"\u003eSchedules the rules can\u0026rsquo;t show\u003c/h2\u003e\n\u003cp\u003eA schedule created through the API that the dashboard can\u0026rsquo;t read at all stays read-only, as\nbefore, with the same notice. A schedule the dashboard can read but can\u0026rsquo;t turn into rules, or\none too large for the editor, is now read-only too, with a notice saying it is too complex to\nshow as rules. The old condition builder let you edit some of these in the dashboard; now they\ncan only be changed through the API. Either way the playlist keeps playing exactly as it did.\u003c/p\u003e\n","description":"The playlist Schedule tab was rebuilt around plain-language rules, with warnings for schedules that can never play, and support for excluding individual dates.","title":"Playlist schedules are now built from rules you can read","type":"release","url":"https://www.screenly.io/releases/screenly/26.7.0/playlist-schedule-rules/"},{"areas":["apps"],"breaking":false,"content_html":"\u003cp\u003eInstalled app settings open right away now. Go to Apps \u0026gt; My Apps \u0026gt; an app and the settings are\nsimply there, with no page reload between you and them. Adding a new app works the same way.\u003c/p\u003e\n\u003cp\u003eYou feel it most when setting up several apps in a row, or when adjusting one app and checking\nthe result: what used to be a stack of page loads is one continuous flow.\u003c/p\u003e\n","description":"Opening an installed app's settings, or adding a new app, now happens right where you are, with no page reload.","title":"Installed app settings open instantly","type":"improvement","url":"https://www.screenly.io/releases/screenly/26.7.0/installed-app-settings/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eWhen a subscription\u0026rsquo;s member or screen count is reduced, Screenly disables the excess seats or\nscreens automatically, so a workspace over its new limit does not have to be sorted out by hand.\u003c/p\u003e\n\u003cp\u003eThe dashboard notification about it failed to post, so the change happened without an\nexplanation attached. That notification now appears, with the new subscription size and how many\nmembers or screens were disabled, for example \u0026ldquo;Subscription updated to 1 screen. 1 screen\ndisabled.\u0026rdquo;\u003c/p\u003e\n","description":"Reducing a subscription's member or screen count disables the excess automatically, and the dashboard notification saying how many were disabled now appears.","title":"Subscription changes now say how many seats or screens were disabled","type":"fix","url":"https://www.screenly.io/releases/screenly/26.7.0/subscription-change-notifications/"}],"json":"https://www.screenly.io/releases/screenly/26.7.0/v1.json","product":"screenly","product_label":"Screenly","url":"https://www.screenly.io/releases/screenly/26.7.0/","version":"26.7.0"}],"title":"Screenly 26.7.0","url":"https://www.screenly.io/releases/screenly/26.7.0/","version":1}