# Schedule Logo Change: Automate Discourse site logo(s)

**URL:** https://meta.discourse.org/t/schedule-logo-change-automate-discourse-site-logo-s/406901
**Category:** Theme component
**Created:** [6 ביולי,‏ 2026,‏ 11:59am UTC](https://meta.discourse.org/t/schedule-logo-change-automate-discourse-site-logo-s/406901 "2026-07-06T11:59:39Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![chapoi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chapoi/32/537252_2.png) [@chapoi](https://meta.discourse.org/u/chapoi)
#### Post date: [6 ביולי,‏ 2026,‏ 11:59am UTC](https://meta.discourse.org/t/schedule-logo-change-automate-discourse-site-logo-s/406901/1 "2026-07-06T11:59:39Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **Summary** | Seasonal Logo Changes |
| 🛠 | **Repository** | [Scheduled Logo Change](https://github.com/chapoi/discourse-scheduled-logo-change) |
| ❓ | **Install Guide** | [How to install a theme or theme component](https://meta.discourse.org/t/how-do-i-install-a-theme-or-theme-component/63682) |
| 📖 | **New to Discourse Themes?** | [Beginner’s guide to using Discourse Themes](https://meta.discourse.org/t/beginners-guide-to-using-discourse-themes/91966) |

Install this theme component

A Discourse theme component that automatically replaces the site logo with uploaded images on a recurring, calendar-based schedule. Use it for seasonal logos (Halloween, Christmas, special events, anniversaries, etc.) without having to manually swap the site logo each year.

Open the component settings and add one or more entries to Schedules. Each entry has:

| **Field** | **Required** | **Purpose** |
| --- | --- | --- |
| Name | ✅ | Label used to identify the schedule in the admin UI |
| Start month / Start day | ✅ | First day the logo is shown |
| End month / End day | ✅ | Last day the logo is shown |
| Logo | | Desktop logo, light mode |
| Logo (dark) | | Desktop logo, dark mode |
| Small logo | | Minimized-header logo, light mode |
| Small logo (dark) | | Minimized-header logo, dark mode |
| Mobile logo | | Mobile logo, light mode |
| Mobile logo (dark) | | Mobile logo, dark mode |

 ![image](https://global.discourse-cdn.com/meta/original/4X/e/1/4/e14044d27d09c39dbb9fc7c438f9b35a2a939fff.png)

Any image left blank falls back to the site’s default logo for that variant. Dark-mode variants fall back to their light-mode counterpart from the same schedule when not provided, so dark mode still shows the seasonal logo.

Schedules recur every year: you set a start and end month/day, not a specific year. Ranges may wrap around the end of the year (e.g. December 15 → January 5). When multiple schedules overlap, the first matching schedule in the list wins.

ℹ At least one logo must be chosen per schedule – otherwise the component does nothing (logically…)

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [6 ביולי,‏ 2026,‏ 12:07pm UTC](https://meta.discourse.org/t/schedule-logo-change-automate-discourse-site-logo-s/406901/2 "2026-07-06T12:07:52Z")

</div>

> [@chapoi](#):
>
> ℹ At least one logo must be chosen per schedule – otherwise the component does nothing (logically…)

So not setting anything would simply fallback to just the default site logo, not some blank image? (I assume that’s what happens when null goes into the value transformer?)

---

<div class="post-metadata">

### Author: ![chapoi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chapoi/32/537252_2.png) [@chapoi](https://meta.discourse.org/u/chapoi)
#### Post date: [6 ביולי,‏ 2026,‏ 12:11pm UTC](https://meta.discourse.org/t/schedule-logo-change-automate-discourse-site-logo-s/406901/3 "2026-07-06T12:11:08Z")

</div>

Yes, if you set nothing, it falls back to the default so essentially does nothing.

---

<div class="post-metadata">

### Author: ![one1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/one1/32/493591_2.png) [@one1](https://meta.discourse.org/u/one1)
#### Post date: [8 ביולי,‏ 2026,‏ 9:36am UTC](https://meta.discourse.org/t/schedule-logo-change-automate-discourse-site-logo-s/406901/4 "2026-07-08T09:36:10Z")

</div>

Thanks!

I’m getting an error:

 ![image](https://global.discourse-cdn.com/meta/original/4X/e/5/3/e53b1305ad8ca349656f825df59d33d66a02ebdb.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/d/e/f/defcffd997afe7eae5a4b9023b36c647d73400e8.png)

Oh… Once I _change_ the month from the defaults, then it works. Maybe a bug?

---

<div class="post-metadata">

### Author: ![chapoi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chapoi/32/537252_2.png) [@chapoi](https://meta.discourse.org/u/chapoi)
#### Post date: [8 ביולי,‏ 2026,‏ 9:37am UTC](https://meta.discourse.org/t/schedule-logo-change-automate-discourse-site-logo-s/406901/5 "2026-07-08T09:37:44Z")

</div>

Ah maybe, will take a look.
