Polyatic Stargazing Night Planner
All tools

Stargazing Night Planner

Type your town: how much of tonight is dark and moonless, which planets are up, and when to go out.

0/100  
0 / 100 0m

Dark-sky places to try:

Sky
Moon
  • Civil (Sun 0 to −6°)
  • Nautical (−6 to −12°)
  • Astronomical (−12 to −18°)
  • True dark (below −18°)
  • Moon above the horizon

Planets tonight

Mercury to Saturn for the night that starts on the date above, at the coordinates above. Times are on the Clock offset; “best” is the planet’s highest moment once the Sun is 6° down.

PlanetRisesHighestSetsBest time to lookMag.In

The night in full

—
Sunrise
—
Solar noon
—
Sunset
—
Day length
—
Civil dusk
—
Nautical dusk
—
Astronomical dusk
—
Astronomical dawn
—
Moonrise
—
Moonset
—
Moon phase
—
Illuminated
—
Astro night
—
Moonless dark

Sunrise, solar noon, sunset, day length and astronomical dawn belong to the calendar date you chose. Astronomical dusk is that evening, and the dark window runs from it into the following morning.

The astronomy runs in your browser. No coordinate or town you type is uploaded — the Sun, Moon and planet maths is small committed code on this page. The town box is the only part that touches the network, and it loads a place list from this same site.

What this tool answers, and what it cannot

Most “is tonight good for stargazing?” questions collapse into two facts you can know in advance and one you cannot. You can know exactly how long the sky will be properly dark, and exactly how much of that darkness the Moon will be sitting in. You cannot know from geometry whether it will be cloudy. This page does the first two precisely and refuses to guess at the third.

The address bar keeps the place and date as you change them (for example /sky-planner/?lat=40.71&lon=-74.01&date=2026-12-24 for Christmas Eve over New York), so a link to this page — from the Copy link button or a bookmark — reopens the same night for whoever follows it; the link lives only in your browser until you share it.

What the stargazing score actually measures

It measures one thing: how many minutes of the night are both astronomically dark and free of the Moon. Astronomical darkness begins when the Sun is 18 degrees below the horizon; the Moon counts as up whenever its centre is above the horizon, sampled every 5 minutes across the night. The moonlit minutes are subtracted from the dark ones, and what is left is scored against a 360-minute reference — six hours of moonless dark scores 100, three hours scores 50, and a night with no astronomical darkness at all scores 0. Nothing else feeds the number.

That reference is a deliberate plateau, not a cap on how good a night can be. Six hours of genuinely dark, Moon-free sky is already more than a single observing session uses; a nine-hour polar-winter night is not meaningfully “better” for the person standing under it, so the score stops climbing rather than rewarding latitude.

Does this tell me whether tonight will be clear?

No, and it is important that you know that. Every figure on this page comes from orbital geometry — where the Sun and the Moon are, for a date and a point on Earth. Geometry cannot see cloud, haze, humidity, atmospheric seeing or the skyglow from the town you are standing in. A score of 100 means the sky will be dark and moonless if it is clear; it does not promise that it will be clear. Check a weather forecast for cloud and a light-pollution map for skyglow before you drive anywhere.

Why the Moon matters so much to the score

Because a bright Moon erases faint objects even in a perfectly clear sky. A full Moon raises the brightness of the sky background by roughly three magnitudes, which cuts the number of stars a naked eye can pick out from a few thousand to a few hundred and makes the Milky Way effectively invisible. That is why this tool subtracts moonlit time instead of reporting darkness on its own: a nine-hour winter night with a full Moon riding high from dusk to dawn scores 0, and that 0 is the honest answer for someone hoping to see anything faint.

A worked example you can reproduce above. Press the Roskilde chip (55.65°N) and set the date to 20 September 2026: astronomical night runs 7h 23m, but the Moon is above the horizon for 2h 29m of it, so the moonless figure is 4h 54m and the score is 82. Now move the date a week either way. On 13 September the dark window is shorter, 6h 43m — but the Moon is a 9%-lit crescent that has set before darkness begins, so every one of those minutes is moonless and the score is 100. On 27 September the dark window is longer, 8h 01m — and a 98%-lit Moon is up across the whole of it, so the moonless figure is 0m and the score is 0. The night itself lengthens by only about forty minutes a week around the equinox; the usable part of it swings from all of the night to none of it. That gap is the entire reason this tool exists, and it is why a “how long is the night?” answer on its own misleads.

Reading the twilight ladder

The timeline is banded by how far the Sun has sunk. Civil twilight (0 to −6 degrees) is bright enough to read outside and useless for faint objects. Nautical twilight (−6 to −12) is when the horizon and the brighter stars are both visible. Astronomical twilight (−12 to −18) still has a measurable glow in the sky. Only below −18 degrees is the Sun’s contribution gone, and that band — the darkest one on the chart — is the only part the score counts.

Why the score falls to zero every summer

Above roughly 49 degrees of latitude the Sun stops dipping a full 18 degrees below the horizon around midsummer, so astronomical darkness never arrives and the score is 0 by definition rather than by bad luck. In London the gap runs from about 22 May to 20 July in 2026 — sixty consecutive nights with no astronomical darkness at all. In Copenhagen, four degrees further north, the same gap stretches from early May to early August; north of the Arctic Circle it widens into continuous daylight. When it happens this page says so in words instead of printing a small number that looks like a near miss.

Which planets are visible tonight?

The Planets tonight table answers the other half of a stargazer’s question. For the five planets you can see without a telescope — Mercury, Venus, Mars, Jupiter and Saturn — it gives the rise, the highest point and the set for the night that starts on your date, and then the best time to look: the planet’s highest moment after the Sun is 6° below the horizon, which is when even Mercury stands out. Direction is a 16-point compass bearing; altitude is in degrees and in fists, because a closed fist held at arm’s length covers about 10° of sky. The magnitude column is brightness on the astronomer’s backwards scale (Venus near −4 is the brightest thing after the Moon; Saturn near +1 is still brighter than all but a dozen stars), and “In” is the constellation the planet sits in by the official IAU boundaries.

A planet only counts as visible if it climbs at least 5° above the horizon while the sky is that dark. When it does not, the table says why instead of printing a time you could not use: too close to the Sun (within 30°, lost in its glare — Mercury spends most of the year like this), only up in bright twilight, below the horizon while it is dark, or, in high-latitude summer, the sky never gets dark enough.

A worked check. For Copenhagen on 24 December 2024 (clock UTC+1), the table puts Jupiter’s rise at 14:17 and its set at 07:13 the next morning, Mars rising at 17:47, and Saturn setting at 22:15. NASA JPL’s Horizons ephemeris gives 14:18, 07:13, 17:47 and 22:15 for the same place and night; the test suite holds every one to within 3 minutes. The positions use JPL’s published Keplerian elements for the planets, which JPL rates at 15 arcseconds (Mercury) to 10 arcminutes (Saturn) of heliocentric error for 1800–2050 — at most about a minute of rise or set time, and the same code that places the planets on our star map. Times ignore hills, buildings and weather: a planet “rising” at 18:00 behind a tree line may not clear it until much later.

When is the next meteor shower, and will the Moon spoil it?

Under the score, the Next meteor shower line names the first of the ten major annual showers whose peak night is your chosen night or later, with the time its radiant (the point the meteors seem to fly out of) clears your horizon and what the Moon does while it is dark. The dates are not copied from a calendar: each peak is a fixed position of the Earth in its orbit (a solar longitude from the International Meteor Organization’s 2026 working list), turned into a date for the year you pick by the same engine that draws the radiant on our star map. The peak night is the night around the peak by the almanac rule: the 2026 Geminid maximum falls at 13:40 UT on 14 December, daytime in Europe, so the night to go out is 13–14 December.

The closing word rates the Moon and nothing else. It multiplies the Moon’s lit fraction by the share of the dark, radiant-up minutes (Sun at least 12° down) during which the Moon is above the horizon: under 0.15 is good, 0.5 or more is poor, and a night when the radiant never rises in the dark is poor outright. The 2026 Geminids rate good from Copenhagen because a 4-day-old crescent sets early in the evening. When your chosen night falls inside a shower’s activity window, the sentence under the score says so, with the number of nights to the peak. The hour-by-hour rates, the town’s own legal clock and a printable chart are on the meteor showers from your town page the line links to. Two honest limits: the Moon times on this line come from the star map’s fuller lunar model, so they can differ by a few minutes from the planner’s own moonset above; and nothing here knows about cloud or streetlights, which cost more meteors than a thin crescent ever does.

How accurate are the times?

The solar events use the NOAA solar-position algorithm and land within about a minute of published tables at mid-latitudes. The Moon is the weaker half, and you should know by how much. This planner uses a leading-term lunar model: one periodic correction each to the Moon’s longitude, latitude and distance. Measured against the fuller 30-term Meeus series that drives our own Moon Phase page, its moonrise and moonset times differ by a median of about 4 minutes across the 365 nights of 2026 at 55 degrees North, and by up to about 20 minutes on the worst of them. Those minutes feed the score, so read the moonless figure as good to about a quarter of an hour rather than to the minute. Near the poles, or on a date when the Moon only grazes the horizon, the error grows. Times are printed on the whole-hour UTC offset in the Clock box, which knows nothing about daylight saving, so check it if a time looks an hour out.

Does the town search send my location anywhere?

No. The first time you type in the town box, the page loads a list of 29,919 places of 18,000+ people from this same site and does all the matching in your browser; if a name is not in it, the matching slice of the other 141,122 smaller places (171,041 in all, down to 1,000 people — Skagen included) is fetched from this same site too. Nothing you type is uploaded, no coordinate is sent to a geocoding service, and if you use the latitude and longitude box instead, the town list is never requested at all.

If you want the daytime side of the same maths — golden hour, blue hour and the twilight windows for photography — the sunrise and sunset calculator covers it, and the moon phase calculator goes deeper on the Moon itself, including its altitude, compass bearing and distance.

Use it in your own code

The score, the dark window, the Sun and Moon times and the Moon's phase on this page come from one call to a published Node module — MIT, no dependencies to install (its solar and lunar cores ship inside the tarball).

npm i @verifyhash/sky-planner

Three lines — New York on the 2026 Geminid peak night

const { planNight } = require('@verifyhash/sky-planner');
const p = planNight({ lat: 40.71, lon: -74.01, date: { year: 2026, month: 12, day: 14 }, tz: -5 });
console.log(`score ${p.stargazing.score}/100, ${p.stargazing.moonlessDarkMinutes} moonless dark minutes, Moon ${p.moon.phaseName} ${p.moon.illuminationPercent}%`);

prints

score 100/100, 462.7 moonless dark minutes, Moon Waxing Crescent 31%

Same answer as the page: open the planner for 40.71, −74.01 on 14 December 2026 at UTC−5 and it shows a score of 100, 7h 43m moonless dark and a 31% waxing crescent. The result object also carries sunrise, sunset, all three twilights, golden and blue hour, and moonrise and moonset as UTC Date instants. What the package does not include: the meteor-shower and eclipse lines, the planets table, the timeline chart and the town search — those are this page's own code.

@verifyhash/sky-planner on npm · version 0.1.0 · MIT · source in the public verifyhash/libs repository · listed with our other libraries on Polyatic libs.