Two separate things are going on here, and the second one is the actual reason it works on manual test but not on schedule.
**1. The date math is off.** `TODAY()-24` subtracts **24 days**, not 24 hours (date arithmetic in AppSheet is in days), so `DAY(TODAY()-24)` is meaningless for “one day ahead.” @Suvrutt’s `DAY(TODAY())+1` fixes the intent, but it breaks at month boundaries: on the 31st it returns 32 (matches nothing), and it won’t fire the day-before for the 1st of next month. The robust way is to compare against tomorrow’s actual day-of-month rather than doing arithmetic on the number:
```
[Day of Month to trigger Bot] = DAY(TODAY() + 1)
```
`TODAY() + 1` is a real date (tomorrow), and `DAY()` of it correctly rolls over — on Jan 31 it gives 1 (Feb 1), end of month gives 1, etc. That alone is more correct than `DAY(TODAY())+1`.
**2. The real bug: your condition references a *virtual column*.** This is almost certainly why it fires on manual test but not on the schedule. A scheduled bot does **not** sync/recompute virtual columns the way an interactive session does — when the scheduler runs, `[Day of Month to trigger Bot]` (an app-formula virtual column = `DAY([DATE])`) may be stale or unevaluated, so the condition silently fails to match. Manual testing recomputes it, which is why it looks like it works.
Fix: don’t reference the virtual column in the scheduled bot’s condition. Inline the real expression against the physical date column instead:
```
DAY([DATE]) = DAY(TODAY() + 1)
```
That uses only the physical `[DATE]` column, which is always available to the scheduler. (Even better long-term: make “Day of Month” a *physical* column populated by an initial-value/app-formula and stored, so it’s reliably present for scheduled runs.)
**Also check the scheduler itself:** confirm the bot’s event is a **Scheduled** trigger set to run **daily** (not “For each row in a table” unless that’s intended), that the schedule is **enabled**, and that the app has been **deployed** — scheduled bots only run reliably on deployed apps, not in the editor/preview. A daily scheduled bot + the physical-column condition above should fire the 24-hour-ahead notification automatically.