GreyhawkCalendar: The DM Dashboard That Behaves Like a Planet

A single-file Greyhawk tool tracks dates, moons, tides, latitude, and weather so a Dungeon Master can run a living world instead of a static calendar.

8 min read • View on GitHub • More from gumyr

A Dungeon Master's desk has been transformed into a compact observatory, with a calendar wheel at the center and moon, tide, sun, and weather instruments arranged around it. The image explains that GreyhawkCalendar treats time as a connected world system, not just a date picker.
GreyhawkCalendar turns a campaign calendar into an instrument panel for a living setting.
Key Takeaways

A calendar that thinks like a planet

GreyhawkCalendar is not trying to be a prettier date grid. It is trying to make the World of Greyhawk feel physically continuous, so the DM is not inventing astronomy, tides, and weather from scratch every session.

That is the useful trick. A single calendar state becomes the source of truth for the setting, which means the world can behave like a system instead of a stack of notes.

What GreyhawkCalendar is actually simulating

The repo models the Calendar of Neol as a 364-day year with 12 months and 4 festival weeks, then layers in the parts most DMs normally approximate. Two moons advance on different cycles, sunrise and sunset shift with latitude, tides respond to lunar and solar alignment, and weather follows seasonal continuity instead of daily amnesia.

Two interlocking gears stand in for Greyhawk's two moons, and their motion pushes a tide needle while nudging a weather ribbon forward. The image shows that celestial cycles are not decorative here, because they drive the rest of the world state.
The calendar's real work happens when one cycle nudges the others.

The trick: one input drives four worlds

The interesting part is not that the app has moon phases or weather. It is that one day value fans out into several linked simulations at once. Change the date, and you are also changing the moon phase, the tide state, the daylight arc, and the weather trend.

One date does not just update a calendar cell. It cascades into astronomy, tides, daylight, and weather.

That coupling is the whole product. The point is not to simulate every law of physics perfectly. The point is to make the outputs agree with one another well enough that the campaign world feels internally honest.

Why the simulation feels believable

The repository leans on the right kinds of approximation. Seasonal temperature moves in a sine-like pattern, latitude changes the length of the day, and weather does not reset every morning like a bad spreadsheet macro. That continuity matters more than mathematical purity, because DMs need a world that stays legible between sessions.

A split desk scene contrasts a notebook full of disconnected moon scribbles and weather notes with a clean dashboard where the same state stays synchronized. The image explains the central tradeoff: manual tracking versus one unified simulation.
The tool replaces a pile of separate notes with one synchronized model.
DimensionGreyhawkCalendarManual DM workflow
Date trackingOne calendar state drives every subsystem.Dates live in notes or a spreadsheet, separate from the rest.
Moon phasesTwo moons advance from the same day value.Phases are estimated or ignored.
DaylightLatitude changes sunrise and sunset.Daylight is usually fixed or looked up by hand.
TidesLunar and solar alignment shape the tide output.Tides rarely stay consistent across scenes.
WeatherConditions persist across days.Weather is rerolled or improvised scene by scene.
PortabilityA single HTML file runs anywhere a browser does.Depends on scattered tools, handouts, or extra setup.

Built like a tool, not a framework demo

GreyhawkCalendar is plain HTML, CSS, and JavaScript. No build system. No framework. That matters because the entire simulation can load instantly, be inspected directly, and travel without ceremony from one machine to another.

The UI also behaves like a tool that expects to be used, not admired. Save and load controls, plus a visible unsaved state, suggest a working dashboard rather than a throwaway prototype, which is exactly what a DM needs when the world state becomes part of play.

What it replaces in the real world

The default DM stack is familiar: a spreadsheet for dates, a note page for moons, a random weather table, and a lot of mental glue. GreyhawkCalendar replaces that fragmentation with one synchronized model, so the setting can stay consistent without constant manual reconciliation.

Old habitWhat GreyhawkCalendar does instead
Handwritten calendar notesOne shared date model drives the whole world.
Estimated moon phasesTwo lunar cycles are computed from the same timeline.
Random weather rollsWeather evolves with seasonal continuity.
Manual sunrise and sunset guessesLatitude shifts daylight in a repeatable way.
Separate tools for each factA single browser file keeps the world in one place.

That is why the repo is more interesting than its category suggests. It is not a calendar app that grew a few fantasy features. It is a compact simulation engine that makes a campaign setting behave like a place with rules.