← single night · whole-night plan
Which nights are best for a target over the coming weeks. The astronomy mark (darkness × altitude × Moon) is computed for every night; the weather and the overall mark exist only where Open-Meteo has a forecast (the next four days) or ERA5 history (past nights) — the rest is honestly blank.
| night of | astronomy | weather | overall | best window | highest | dark h | Moon | Moon sep. |
|---|---|---|---|---|---|---|---|---|
| 2048-01-15 Wed | 100 | — | unknown | 18:55–23:35 (good, 4.67 h) | 89.5° 17:25 | 11.23 | 0% | 85.7° |
| 2048-01-16 Thu | 100 | — | unknown | 18:55–23:30 (good, 4.58 h) | 89.7° 17:25 | 11.21 | 3% | 73.3° |
| 2048-01-17 Fri | 100 | — | unknown | 19:00–23:30 (good, 4.5 h) | 89.8° 17:20 | 11.19 | 8% | 61.5° |
| 2048-01-18 Sat | 94 | — | unknown | 19:00–23:25 (good, 4.42 h) | 89.8° 17:15 | 11.16 | 14% | 50.6° |
| 2048-01-19 Sun | 89 | — | unknown | 19:00–23:20 (good, 4.33 h) | 89.7° 17:10 | 11.14 | 22% | 41.0° |
| 2048-01-20 Mon | 76 | — | unknown | 19:00–23:15 (good, 4.25 h) | 89.5° 17:10 | 11.12 | 31% | 33.4° |
| 2048-01-21 Tue | 59 | — | unknown | 19:00–22:50 (good, 3.83 h) | 89.7° 17:05 | 11.09 | 41% | 29.0° |
| 2048-01-22 Wed | 45 | — | unknown | 19:05–21:00 (good, 1.92 h) | 89.8° 17:00 | 11.06 | 50% | 29.0° |
| 2048-01-23 Thu | 35 | — | unknown | 19:05–23:30 (marginal, 4.42 h) | 89.8° 16:55 | 11.04 | 60% | 33.2° |
| 2048-01-24 Fri | 28 | — | unknown | 19:05–23:15 (marginal, 4.17 h) | 89.6° 16:50 | 11.01 | 69% | 40.2° |
| 2048-01-25 Sat | 26 | — | unknown | 19:05–23:05 (marginal, 4.0 h) | 89.6° 16:50 | 10.98 | 77% | 48.9° |
| 2048-01-26 Sun | 27 | — | unknown | 19:05–23:00 (marginal, 3.92 h) | 89.8° 16:45 | 10.95 | 84% | 58.5° |
| 2048-01-27 Mon | 30 | — | unknown | 19:10–22:55 (marginal, 3.75 h) | 89.8° 16:40 | 10.92 | 91% | 68.7° |
| 2048-01-28 Tue | 37 | — | unknown | 19:10–19:55 (good, 0.75 h) | 89.7° 16:35 | 10.89 | 96% | 79.4° |
| 2048-01-29 Wed | 46 | — | unknown | 19:10–20:55 (good, 1.75 h) | 89.5° 16:30 | 10.86 | 99% | 90.4° |
| 2048-01-30 Thu | 56 | — | unknown | 19:10–22:00 (good, 2.83 h) | 89.7° 16:30 | 10.83 | 100% | 101.6° |
| 2048-01-31 Fri | 65 | — | unknown | 19:15–22:15 (good, 3.0 h) | 89.8° 16:25 | 10.8 | 99% | 112.9° |
| 2048-02-01 Sat | 78 | — | unknown | 19:15–22:15 (good, 3.0 h) | 89.8° 16:20 | 10.77 | 96% | 124.0° |
| 2048-02-02 Sun | 79 | — | unknown | 19:15–22:15 (good, 3.0 h) | 89.7° 16:15 | 10.74 | 90% | 134.6° |
| 2048-02-03 Mon | 79 | — | unknown | 19:15–22:15 (good, 3.0 h) | 89.5° 16:15 | 10.7 | 83% | 143.8° |
| 2048-02-04 Tue | 78 | — | unknown | 19:15–22:20 (good, 3.08 h) | 89.7° 16:10 | 10.67 | 74% | 150.0° |
| 2048-02-05 Wed | 74 | — | unknown | 19:20–22:15 (good, 2.92 h) | 89.8° 16:05 | 10.63 | 63% | 151.2° |
| 2048-02-06 Thu | 73 | — | unknown | 19:20–22:10 (good, 2.83 h) | 89.8° 16:00 | 10.6 | 52% | 146.5° |
| 2048-02-07 Fri | 70 | — | unknown | 19:20–22:05 (good, 2.75 h) | 89.6° 15:55 | 10.56 | 41% | 137.8° |
| 2048-02-08 Sat | 68 | — | unknown | 19:20–22:00 (good, 2.67 h) | 89.6° 15:55 | 10.53 | 30% | 127.0° |
| 2048-02-09 Sun | 64 | — | unknown | 19:25–22:00 (good, 2.58 h) | 89.8° 15:50 | 10.49 | 20% | 115.2° |
| 2048-02-10 Mon | 62 | — | unknown | 19:25–21:55 (good, 2.5 h) | 89.8° 15:45 | 10.45 | 12% | 103.0° |
| 2048-02-11 Tue | 60 | — | unknown | 19:25–21:50 (good, 2.42 h) | 89.7° 15:40 | 10.41 | 5% | 90.5° |
| 2048-02-12 Wed | 59 | — | unknown | 19:25–21:45 (good, 2.33 h) | 89.5° 15:35 | 10.38 | 2% | 78.2° |
| 2048-02-13 Thu | 57 | — | unknown | 19:25–21:40 (good, 2.25 h) | 89.6° 15:35 | 10.34 | 0% | 66.3° |
curl -sS "https://devops.majbase.com/rozhen-planner/calendar-api?target=M31&date=2048-01-15&days=30"
curl -sS "https://devops.majbase.com/rozhen-planner/calendar-api?target=M31&days=30&format=csv" -o m31-calendar.csv
One row per night: score_astronomy always, score_weather / score only where a forecast or history exists (null otherwise, with weather_source saying which), best window, dark hours, Moon illumination and separation, transit. 7–60 nights. Errors: 400 with invalid_date or target_unresolved. Results are cached for six hours; calculation version 2026-10-10.1.