Add email reminders to calendar episodes; v1.1.15

- Per-episode reminder select (1d/2d/3d/1wk/2wk before publish date)
- Server checks hourly; fires Resend email to admin on reminder day
- reminderSentAt persisted so reminders don't re-fire; cleared if date or setting changes
- Bell indicator on calendar chips; sent confirmation in edit popover

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
nmemmert
2026-07-28 11:12:17 -04:00
parent 0161a0dacd
commit de201ff356
5 changed files with 150 additions and 5 deletions
+3
View File
@@ -50,6 +50,7 @@ import { register as registerStudyComments } from './server/routes/study-comment
import { register as registerStudyCertificate } from './server/routes/study-certificate.js'
import { register as registerEpisodeScripts } from './server/routes/episode-scripts.js'
import { register as registerContact } from './server/routes/contact.js'
import { startReminderScheduler } from './server/reminder.js'
import { register as registerInboundEmail } from './server/routes/inbound-email.js'
import { register as registerQuestions } from './server/routes/questions.js'
import { register as registerAnalytics } from './server/routes/analytics.js'
@@ -156,6 +157,8 @@ Promise.all([
createBackupSnapshot('scheduled').catch(() => {})
}, BACKUP_INTERVAL_MS)
startReminderScheduler()
// Purge expired study sessions every hour
setInterval(() => {
const now = Date.now()