Skip to content

Releases: paulcheeba/about-time-next

v13.6.0.0

18 Jan 17:55
d3d7f78

Choose a tag to compare

About Time Next v13.6.0.0 (2026-01-18)

This release introduces Mini Calendar integration and resolves a critical Simple Calendar Reborn event duration bug.

Added:

  • Mini Calendar (wgtgm-mini-calendar) full integration with Time Authority Model A (ATN-managed time)
  • MCAdapter class implementing calendar configuration via Foundry's core calendar API
  • Intercalary day support with special handling for dayOfWeek: -1 and transparent 0-based to 1-based indexing conversion
  • Time runner awareness monitoring Mini Calendar's optional time runner and logging conflict warnings when both ATN and MC runners are active
  • Detection and settings integration with dynamic dropdown filtering and availability status display
  • Comprehensive debug logging throughout MCAdapter for initialization, formatting, interval calculations, and conflict detection

Fixed:

  • SCR event duration calculation bug where timestampPlusInterval(0, { seconds: N }) could return 0, causing events to trigger immediately with 00:00:00:00 remaining time. Adapter now handles both singular and plural interval key formats with fallback to conservative math.

Breaking Changes:

  • None

Manifest URL:

Patreon:

Discord:

Pinned URLs

Manifest: https://github.com/paulcheeba/about-time-next/releases/download/v13.6.0.0/module.json
Download: https://github.com/paulcheeba/about-time-next/releases/download/v13.6.0.0/about-time-next.zip

v13.5.0.0

10 Jan 18:11

Choose a tag to compare

About Time Next v13.5.0.0 (2026-01-10)

Major update bringing full Simple Calendar Reborn integration and neutral calendar selection system.

Added:

  • Simple Calendar Reborn (SCR) full integration with Time Authority Model B - SCR controls worldTime, ATN enhances with event scheduling
  • SCRAdapter class implementing proper time routing through SimpleCalendar.api.changeDate()
  • Calendar selection dialog appears when multiple calendars detected (compact 300px layout)
  • Time authority tooltips in settings showing which system manages time (ATN vs SCR)
  • Smart checkbox disabling - ATN pause/combat settings disabled when SCR manages them, showing SCR's values
  • Calendar selection template extracted to Handlebars file for better maintainability
  • Logic bypass for SCR - ATN skips pause/combat hooks when SCR is active to prevent conflicts
  • Comprehensive documentation including SCR API reference and integration guide

Fixed:

  • Timestamp-based events confirmed calendar-agnostic (switching calendars preserves all events)
  • Time routing architecture ensures proper delegation to calendar systems

Breaking Changes:

  • None - all existing functionality preserved, new features are additive

Migration Notes:

  • Simple Calendar (legacy) users should migrate to Simple Calendar Reborn v2.4.0+
  • Existing events continue to work unchanged
  • First-time users with multiple calendars see selection dialog
  • Existing calendar selections preserved unless additional calendar modules enabled

Manifest URL:

Patreon:

Discord:

v13.4.1.0

04 Jan 21:35

Choose a tag to compare

About Time Next v13.4.1.0 (2026-01-04)

This release adds a new required dependency (OEV Suite Monitor) and updates documentation links.

Added:

  • Module now requires the OverEngineeredVTT Suite Monitor (oev-suite-monitor) hub module.

Fixed:

  • Fixed issue with oev-suite-monitor failing to install by adding it's manifest to the relationships.

Breaking Changes:

  • OEV Suite Monitor is now required (install it alongside About Time Next).

Manifest URL:

Patreon:

Discord:

v13.4.0.1

21 Dec 08:38
bc23b42

Choose a tag to compare

About Time Next — Release Notes v13.4.0.1

Release Date: December 21, 2025
From: v13.2.1.0
To: v13.4.0.1
Foundry VTT Compatibility: v13


Overview

This release focuses on quality-of-life improvements for calendar/time display, event management, and delegated “timekeeper” permissions, plus several stability fixes around world refresh and calendar module interactions.


Highlights (QoL)

Better calendar support & clearer time display

  • Native D&D 5e calendar support (v5.2+) via a dedicated adapter that reads from Foundry’s game.time.calendar.
  • Unified date/time formatting across all adapters (D&D5e / Seasons & Stars / Simple Calendar / core time fallback).
  • New Time Format setting (12-hour or 24-hour) for consistent display across the module.
  • Dynamic Calendar System dropdown that only shows available options; adapter refresh happens automatically when changed.
  • Calendar recommendation prompt for GMs when Auto-detect is selected or a selected calendar is unavailable, with a “suppress until selection changes” option.

Easier, safer queue management

  • Timekeeper role threshold: a world setting that allows delegating queue management to non-GM users (GM always overrides).
  • Confirm/Cancel chat cards for destructive actions:
    • /at clear and /at stop now post a confirm card and update the same message in-place after confirm/cancel.
  • Pause/Resume support:
    • Added pause/resume controls in the Event Manager and corresponding /at pause / /at resume chat commands.

More reliable Event Manager updates

  • Event Status Board now prefers the persisted store as authoritative for display, reducing “stale queue” views after refresh.
  • Improved timestamp display & tooltips (e.g., stable “Started On” context where available).

Updates

Calendar & settings

  • Introduced the CalendarAdapter system and migrated time formatting and interval operations to use it (non-breaking refactor).
  • Added/updated calendar detection to support:
    • D&D 5e calendar (v5.2+)
    • Seasons & Stars
    • Simple Calendar (kept as a legacy/reference integration pending FVTT v13 readiness)
    • Foundry core time fallback
  • Added calendar settings migration from legacy Simple Calendar toggle to the new calendar-system setting.

Mini Panel

  • Layout refresh for readability.
  • Uses adapter formatting consistently and provides clearer tooltips indicating which calendar system is in use.

Event notifications / chat cards

  • Event notification cards continue to use standardized formatting.
  • Added user-facing context fields:
    • “Started On” (when available)
    • “Next Occurrence” for repeating events

Permissions

  • Added a minimum role required to be a timekeeper world setting.
  • Updated UI entry points (chat commands, Event Manager, toolbar button) to use timekeeper checks rather than GM-only gating.

Fixes & Stability

  • World refresh reliability: fixed an intermittent window during master timekeeper election where addEvent messages could be lost. Events are now queued until a master is acquired, then drained and persisted.
  • Notification sound trigger refinement: notification sounds now play only for scheduled event notification cards (standardized event cards), not for other About Time Next chat/status/confirmation cards.
  • Realtime clock safety: if advancing world time throws an error, realtime stops and warns once (prevents repeated tick errors).
  • Reduced console noise: most adapter and notification logs are now debug-gated (while keeping minimal always-on status info for troubleshooting).

Compatibility Notes

  • Simple Calendar: retained as a legacy/reference integration; full support depends on Simple Calendar being FVTT v13-ready.
  • Calendar auto-detect and recommendations are designed to avoid silent switches while still helping GMs converge on a “best available” calendar setup.

Migration Notes (Users)

  • No manual migration steps required for most users.
  • If you use delegated timekeeping, set Configure Settings → About Time Next → Minimum role required to be a timekeeper.

Full Changelog

See changelog.md for the complete version history.

What's Changed

v13.2.1.0

23 Nov 05:06
c5f69c8

Choose a tag to compare

About Time Next v13.2.1.0 Release Notes

Overview

Version 13.2.1.0 introduces standardized event notification cards with consistent formatting and fixes a critical bug where event metadata was lost after Foundry reloads.


Features

Standardized Event Chat Cards

All events created through the Event Manager now display detailed, consistently formatted notification cards:

Card Format:

[about-time-next]
Event Name: <name or NA>
Message: <message or NA>
Duration: DD:HH:MM:SS (or NA)
Repeating: Yes/No
Macro: <macro name or NA>
Event UID: <unique identifier>

Visual Design:

  • Green left border for quick identification
  • Monospace font for consistent alignment
  • Clear section labels with bold headings
  • Duration displayed in DD:HH:MM:SS format

Benefits:

  • Clarity: All event details visible at a glance
  • Persistence: Format maintained through Foundry reloads
  • Consistency: Same format for all events (with/without macros)
  • Notification Support: [about-time-next] prefix ensures sounds trigger correctly

Bug Fixes

Event Metadata Persistence (Critical)

Issue: After Foundry reload, event notification chat cards appeared empty or malformed due to metadata loss during serialization.

Root Cause: Direct assignment of _args array in FastPriorityQueue.exportToJson() didn't properly clone nested metadata objects. When Foundry's settings system serialized the queue using JSON.stringify(), object references were lost.

Solution: Implemented deep cloning using foundry.utils.deepClone() with fallback to JSON.parse(JSON.stringify()). Added defensive checks in createFromJSON() to ensure args is always an array.

Files Modified:

  • module/FastPriorityQueue.js - Added deep clone logic in exportToJson() and defensive checks in createFromJSON()

[about-time-next] Prefix Consistency

Issue: Event cards lost the [about-time-next] prefix after reload, preventing notification sounds from triggering (ATNotificationSound.js pattern matching failed).

Solution: Integrated prefix into formatEventChatCard() helper function used by both fresh handlers (ATEventManagerAppV2) and reconstructed handlers (FastPriorityQueue). Prefix now persists through reload cycle.

UID Display Issue

Issue: Event UID displayed as "null" in fresh event cards because handler was called before UID was available from doIn/doEvery return value.

Solution: Store UID in metadata (__uid) after doIn/doEvery returns, then handler accesses it via metaArg.__uid. Ensures UID displays correctly in both fresh and reloaded events.

Macro Integration

Events with macros now display notification card before macro execution:

  1. Show standardized event card (with all details)
  2. Execute linked macro (if configured)

This provides clear context about what triggered the macro.


Technical Implementation

New Helper Function

formatEventChatCard(meta, uid, recurring, increment)

Centralized formatter ensures consistent HTML generation across:

  • Fresh event handlers (ATEventManagerAppV2.js)
  • Reconstructed handlers after reload (FastPriorityQueue.js)

Parameters:

  • meta: Metadata object with __atName, __atMsg, __macroName, __macroUuid, __duration, __uid
  • uid: Event unique identifier (from metaArg.__uid or data.uid)
  • recurring: Boolean indicating if event repeats
  • increment: Seconds between repeats (for duration display)

Returns: HTML string with standardized card format

Duration Calculation

Duration now stored in metadata (__duration) and formatted as DD:HH:MM:SS:

const d = Math.floor(seconds / 86400);
const h = Math.floor((seconds % 86400) / 3600);
const m = Math.floor((seconds % 3600) / 60);
const s = Math.floor(seconds % 60);

Files Modified

Core Changes

  • module/FastPriorityQueue.js

    • Added formatEventChatCard() helper function (exported)
    • Updated exportToJson() with deep clone logic
    • Updated createFromJSON() reconstructed handler to use formatter
    • Added defensive array check for args
  • module/ATEventManagerAppV2.js

    • Added __duration to metadata object
    • Added __uid to metadata after event creation for display in fresh cards
    • Imported formatEventChatCard from FastPriorityQueue
    • Updated handler to always show event card (even with macros)
    • Handler now calls formatter with metaArg.__uid before macro execution

Documentation

  • changelog.md - Added v13.2.1.0 section with 5 bullet points including UID fix
  • module.json - Updated version to 13.2.1.0
  • README.md - Added Event Notification Cards section with example format
  • dev-docs/releaseNote-v13.2.1.0.md - Created comprehensive release notes
  • dev-docs/todo.md - Marked standardization task complete (updated in previous session)

Known Limitations

Out of Scope (Deferred to Future Releases)

  • /at Chat Commands: /at remind, /at every, etc. still use legacy format. Standardization planned for future release.
  • /at Chat Commands: /at remind, /at every, etc. will NOT trigger notifaction sounds until post-standardization.
  • ElapsedTime.message(): Direct API calls don't use new format yet. Functionality unchanged, standardization planned for future release.

Compatibility Notes

  • Requires Foundry VTT v13+
  • Event cards use inline CSS (no external stylesheet changes)
  • Deep clone fallback ensures compatibility with environments lacking foundry.utils.deepClone()

Migration Notes

For Users

  • No Action Required: Existing events will automatically use new format after reload
  • Settings Preserved: Notification sound settings from v13.2.0.0 remain unchanged
  • Event Queue Safe: Existing scheduled events maintain their trigger times and functionality

For Developers

  • Formatter Available: formatEventChatCard() exported from FastPriorityQueue.js for custom event integrations
  • Metadata Structure: Handlers expect __atName, __atMsg, __duration, __macroName, __macroUuid in args
  • Handler Marking: Use handler._atHandlerType = "gmWhisper" to ensure proper serialization

Credits

  • Deep clone fix pattern adapted from Foundry core utils
  • Duration formatting inspired by standard time display conventions
  • Card styling uses Dracula theme accent color (#50fa7b) for consistency

v13.1.3.2

05 Oct 04:48
cf071c2

Choose a tag to compare

About Time Next — Changelog

Version: v13.1.2.1 → v13.1.3.2

(Foundry VTT v13 compatible)

Note

Sorry for the double releases today. I released a version that was slightly premature and it shipped with a small bug. I squashed it and tackled a bit of CSS and layout improvements at the same time adding light/dark theme support.

I also most importantly set up a pre-release workflow action to allow me faster test cycles that aren't public and won't mess with the current stable release. So... less double release days in the future.


🔧 General

  • Version bump and internal prep for Event Manager V2 improvements.
  • Minor code cleanup and internal consistency updates to support single-instance lifecycle, UI theme compliance, and usability improvements.

🧭 Toolbar Toggle

Summary

  • The Event Manager Toolbar button now properly opens and closes the Event Manager window (single-instance behavior).
  • Mirrors the Time Manager experience — toggling reuses a single application instance rather than spawning new windows.

🎨 Light / Dark Theme Compliance (AppV2)

Summary

  • Full Auto light/dark theme support for Foundry’s AppV2 theme system.
  • Dark mode: unchanged — retains current Dracula-inspired palette.
  • Light mode: new palette and readability improvements.

Event Manager changes

UI Reorder (Improved Layout)

New button order (top action bar):
Stop all Events | Stop all +1h reminder | stopKey input | Stop by Name | Stop by UID | Send Queue to Chat | Create

Improves flow from destructive → targeted → neutral → constructive actions.

⚙️ Macro Picker: Type-or-Pick with <datalist> + Refresh

Summary

  • Macro Name field upgraded to a hybrid text input + datalist control:
    • Type freely to match or choose from suggestions.
    • Suggestions list all macros the user can access.
  • Added a refresh icon (⟳) to rebuild the macro list dynamically.

Features

  • Permission-aware:
    • GMs see all macros.
    • Non-GMs see macros they have Observer access or higher.
  • Tooltips: each suggestion shows "Folder • Type • ID".
  • Sorting: case-insensitive by name, then by folder.
  • Non-destructive: manual macro name entry still works exactly as before.
  • Per-instance safety: datalist uses unique ID binding to the app instance.
  • Refresh button: instantly updates the list after macro creation/deletion.

📁 Affected Files

module/ATToolbar.js
module/ATEventManagerAppV2.js
templates/ATEventManagerAppV2.hbs

v13.0.9.0

02 Sep 05:40
3d07234

Choose a tag to compare

v13.0.9.0 Pre-release
Pre-release

Changelog — About Time v13


v13.0.9.0 (Milestone Release)

✨ Major Changes

  • Event Manager V2 (ApplicationV2)

    • Toolbar button now opens the new EM V2 instead of EM V1.
    • V2 auto-refreshes rows when events fire or reschedule, fixing “remaining=0” on repeats.
    • Clean layout with countdowns, intervals, and stop controls per event.
  • Mini Time Manager Panel

    • Stable GM controls: Play/Pause, realtime toggles.
    • Player view: read-only current time (SC-aware if SC is present).
    • Settings for Link Pause and Auto-Pause on Combat confirmed working.
  • Realtime Runner Improvements

    • Stable single-owner GM clock (handoff via sockets).
    • Safe ranges for tick Hz and rate.
    • Works with/without Simple Calendar.

📖 Documentation Updates

  • README overhauled
    • Full list of supported /at chat commands with examples.
    • Updated descriptions for Event Manager V2 and Mini Panel.
    • Macros section: how to open EM V2 directly via macro.
    • Added usage scenarios (spell durations, rests, watch rotations, etc.).
    • New screenshots/images (thanks to user).

🛠 Internal Fixes

  • Added queue signature tracking in EM V2 to auto-refresh view after events fire.
  • Preserved backward compatibility with legacy globals (game.Gametime, DMf, DTM, etc.).
  • All GM-facing notifications standardized to GM-whispers where appropriate.

v13.0.8.x (Development Iterations)

  • v13.0.8.1.2 — Added EM V2 auto-refresh, fixed repeating event countdowns.
  • v13.0.8.1.1 — LKW baseline before EM V2 fixes.
  • v13.0.8.0 — Early 8.x branch with toolbar/event manager refinements.

v13.0.7.x and earlier

See archived changelog entries.

What's Changed

Full Changelog: v13.0.8.1.1...v13.0.9.0

v13.0.8.1.1

01 Sep 22:52
87816d7

Choose a tag to compare

v13.0.8.1.1 Pre-release
Pre-release

What's Changed

New Baseline

Fixed the Play/Pause button resizing with a fixed width.

Full Changelog: v13.0.8.0...v13.0.8.1.1

v13.0.8.1.0

28 Aug 04:35
726493f

Choose a tag to compare

v13.0.8.1.0 Pre-release
Pre-release

Changelog

[13.0.8.1.0] - 2025-08-28

Added

  • Event Status Board header and subtle board border.

Changed

  • Starts column fallback now shows in DD:HH:MM:SS (matches Remaining).

Removed

  • Copy UID action/button (text is selectable; use Ctrl/Cmd-C).

[13.0.8.0.7] - 2025-08-28

Fixed

  • Prevented content clipping by setting window width = 920px (removed content-level min-width).

Stability

  • Kept function-based actions; live Remaining ticker continues to start/stop with render/close.

[13.0.8.0.6] - 2025-08-28

Fixed

  • Resolved handler?.call is not a function & _on* is not a function by switching DEFAULT_OPTIONS.actions to function handlers:
    • onList, onFlush, onStopByName, onStopByUID, onRowStop, onCopyUID.
  • Implemented 1s ticker to refresh the Remaining column.

UI

  • Dracula styling scoped to EMV2 (contained within the app).

[13.0.8.0.2] - 2025-08-27

Added

  • Introduced ATEventManagerAppV2 (ApplicationV2 + HBS) initial build:
    • Queue table (Name, Starts, Remaining, Repeat, Message, UID, Actions).
    • Create / Stop / List / Flush controls.
    • GM-gated actions; players read-only.

[13.0.8.0.1] - 2025-08-27

Fixed

  • Restored normal chat behavior by removing duplicate /at list alias that interfered with generic chat submits.

[13.0.7.7] - (baseline prior to 2025-08-26)

Notes

  • Stable TM, toolbars, and /at commands; legacy Dialog-based EM.

New Baseline

I love it. its working great. Added a header and border to the event status board. Removed some redundant buttons. Next.... Theming, mostly because I want the EM window to match the TM window.

What's Changed

Full Changelog: v13.0.7.7...v13.0.8.1.0

v13.0.8.0

27 Aug 03:06
726493f

Choose a tag to compare

v13.0.8.0 Pre-release
Pre-release

What's Changed

Full Changelog: v13.0.7.7...v13.0.8.0