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.
- GreyhawkCalendar turns a campaign date into shared state that drives moons, tides, daylight, and weather together.
- Its real novelty is coupling, not cosmetics, because one day value fans out into a coherent world model.
- The single-file vanilla build keeps the tool portable, inspectable, and easy to trust at the table.
- It replaces fragmented DM bookkeeping with a simulation that stays consistent from scene to scene.
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.
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.
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.
| Dimension | GreyhawkCalendar | Manual DM workflow |
|---|---|---|
| Date tracking | One calendar state drives every subsystem. | Dates live in notes or a spreadsheet, separate from the rest. |
| Moon phases | Two moons advance from the same day value. | Phases are estimated or ignored. |
| Daylight | Latitude changes sunrise and sunset. | Daylight is usually fixed or looked up by hand. |
| Tides | Lunar and solar alignment shape the tide output. | Tides rarely stay consistent across scenes. |
| Weather | Conditions persist across days. | Weather is rerolled or improvised scene by scene. |
| Portability | A 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 habit | What GreyhawkCalendar does instead |
|---|---|
| Handwritten calendar notes | One shared date model drives the whole world. |
| Estimated moon phases | Two lunar cycles are computed from the same timeline. |
| Random weather rolls | Weather evolves with seasonal continuity. |
| Manual sunrise and sunset guesses | Latitude shifts daylight in a repeatable way. |
| Separate tools for each fact | A 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.





