Background
Notification emails that show a deadline (currently the new peer-review-assignment email, and a good fit for deadline reminders too) render the deadline in UTC — e.g. "Thursday, 2 July 2026, 18:00 UTC".
We initially tried showing a fixed set of zones (PT/ET/London/Berlin/IST) but dropped it as noisy. For now we stick to UTC.
Goal
Show the deadline in each recipient's own timezone, similar to what the AI shipping lab does, so a learner sees the deadline in their local time without mental math.
Notes / considerations
- The deadline is formatted in
course_management/deadlines.py → format_deadline_for_email() (CMP side). Today it returns a single UTC string.
- To localise per recipient we need each user's timezone. Options:
- Store a timezone on the user profile (let users set it, or infer from browser/IP at signup).
- Since these emails go out as a Datamailer recipient-list send (one template, per-member context merged), per-recipient rendering means either (a) CMP includes each member's tz + a pre-formatted local string in member metadata, or (b) Datamailer renders the tz at send time. Prefer (a) to keep Datamailer platform-agnostic.
- Fall back to UTC when a recipient has no timezone set.
- Keep the weekday in the output.
Out of scope
Per-recipient localisation of all emails — start with the deadline-bearing ones.
Background
Notification emails that show a deadline (currently the new peer-review-assignment email, and a good fit for deadline reminders too) render the deadline in UTC — e.g. "Thursday, 2 July 2026, 18:00 UTC".
We initially tried showing a fixed set of zones (PT/ET/London/Berlin/IST) but dropped it as noisy. For now we stick to UTC.
Goal
Show the deadline in each recipient's own timezone, similar to what the AI shipping lab does, so a learner sees the deadline in their local time without mental math.
Notes / considerations
course_management/deadlines.py→format_deadline_for_email()(CMP side). Today it returns a single UTC string.Out of scope
Per-recipient localisation of all emails — start with the deadline-bearing ones.