-
v3.6.0
StableSome checks failedCI / Docker image build (push) Successful in 18sRelease / Create Forgejo release (push) Successful in 21sCI / Backend lint (ruff) (push) Successful in 2m23sCI / Frontend tests, audit, and build (push) Successful in 2m43sRelease / Build and push versioned images (push) Successful in 4m9sCI / Bot tests and audit (push) Successful in 7m45sCI / Backend migration, tests, and audit (push) Has been cancelledreleased this
2026-07-17 22:29:59 +00:00 | 706 commits to main since this releaseScheduling: timezones, recurrence, availability & calendar sync.
Campaign-anchored timezone correctness, recurring session series, standing
player availability with quorum-based at-risk warnings, a subscribable iCal
feed, and emailed calendar invites. No API contract change
(BOT_CONTRACT_VERSIONstays 1). Ships four Alembic migrations.Added
- [webapp] Emailed calendar invites — opt in (Profile → "Email me calendar
invites") to receive a real calendar invite by email when a session is
confirmed. It adds straight to Gmail, Apple Calendar, or Outlook, updates in
place when the session is rescheduled, and is removed if it's cancelled — no
Google sign-in or setup required. (#189) - [webapp] Subscribable calendar feed — each user can generate a personal
iCal feed URL (Profile → Calendar subscription) and subscribe to it in Google
Calendar, Apple Calendar, or Outlook to see all their confirmed sessions,
updated automatically when a session is rescheduled or cancelled. (#107) - [webapp+bot] Standing availability, absences, and session-at-risk warnings —
players can set recurring weekly availability (in their own timezone) and mark
date-range absences on their profile; when a GM proposes times, the voting grid
and create form flag who is unavailable. Campaigns can set a minimum-players
quorum, and when a confirmed session is likely to fall below it (from absences
or explicit "no" votes) the GM gets a one-time Discord warning and the session
is flagged in the web app. (#104) - [webapp] Recurring session series — GMs can set a game to repeat (weekly,
every other week, or monthly on the same weekday) at a fixed campaign-time,
and Quest Board auto-creates the sessions a few weeks ahead. Times stay put
across daylight-saving changes. Individual occurrences can be rescheduled,
cancelled, or detached without affecting the rest, and editing the series can
either apply to just future sessions or also update upcoming unmodified ones.
Reminders work exactly as they do for one-off sessions. (#98)
Fixed
- [webapp] Session times are now anchored to the campaign's timezone — the
scheduler previously read the naive picker value in the browser's zone, so a
GM scheduling "7:00 PM" from a different timezone than the campaign stored (and
everyone saw) the wrong instant. Scheduling inputs now convert from campaign
time to UTC correctly (DST-aware), every displayed time carries an explicit
zone label, and the session detail page and voting grid add a "your time" line
when your zone differs from the campaign's. Milestone dates are treated as
floating calendar dates so they never shift a day across zones. Campaign
settings offer the full IANA timezone list. Backend and bot were already
correct (UTC storage; Discord dynamic timestamps). (#95)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- [webapp] Emailed calendar invites — opt in (Profile → "Email me calendar