Calendar heatmap chart
One cell per day in week columns, shaded by value, like a contribution graph. Weekly rhythms read down the columns and seasons across them. Spans over a year stack one row per calendar year so the years line up.
Commits
Commits per day over the last year. Hover a day, or focus the calendar and use the arrow keys.
| Date | Value |
|---|---|
| Wed 29 Oct 2025 | 0 |
| Thu 30 Oct 2025 | 5 |
| Fri 31 Oct 2025 | 9 |
| Sat 1 Nov 2025 | 0 |
| Sun 2 Nov 2025 | 0 |
| Mon 3 Nov 2025 | 8 |
| Tue 4 Nov 2025 | 3 |
| Wed 5 Nov 2025 | 7 |
| Thu 6 Nov 2025 | 10 |
| Fri 7 Nov 2025 | 3 |
| Sat 8 Nov 2025 | 1 |
| Sun 9 Nov 2025 | 0 |
| Mon 10 Nov 2025 | 8 |
| Tue 11 Nov 2025 | 11 |
| Wed 12 Nov 2025 | 5 |
| Thu 13 Nov 2025 | 7 |
| Fri 14 Nov 2025 | 3 |
| Sat 15 Nov 2025 | 1 |
| Sun 16 Nov 2025 | 0 |
| Mon 17 Nov 2025 | 8 |
| Tue 18 Nov 2025 | 6 |
| Wed 19 Nov 2025 | 10 |
| Thu 20 Nov 2025 | 11 |
| Fri 21 Nov 2025 | 3 |
| Sat 22 Nov 2025 | 0 |
| Sun 23 Nov 2025 | 0 |
| Mon 24 Nov 2025 | 8 |
| Tue 25 Nov 2025 | 10 |
| Wed 26 Nov 2025 | 11 |
| Thu 27 Nov 2025 | 6 |
| Fri 28 Nov 2025 | 4 |
| Sat 29 Nov 2025 | 1 |
| Sun 30 Nov 2025 | 0 |
| Mon 1 Dec 2025 | 7 |
| Tue 2 Dec 2025 | 11 |
| Wed 3 Dec 2025 | 1 |
| Thu 4 Dec 2025 | 10 |
| Fri 5 Dec 2025 | 5 |
| Sat 6 Dec 2025 | 1 |
| Sun 7 Dec 2025 | 0 |
| Mon 8 Dec 2025 | 10 |
| Tue 9 Dec 2025 | 2 |
| Wed 10 Dec 2025 | 0 |
| Thu 11 Dec 2025 | 8 |
| Fri 12 Dec 2025 | 3 |
| Sat 13 Dec 2025 | 0 |
| Sun 14 Dec 2025 | 0 |
| Mon 15 Dec 2025 | 3 |
| Tue 16 Dec 2025 | 11 |
| Wed 17 Dec 2025 | 6 |
| Thu 18 Dec 2025 | 10 |
| Fri 19 Dec 2025 | 4 |
| Sat 20 Dec 2025 | 0 |
| Sun 21 Dec 2025 | 0 |
| Mon 22 Dec 2025 | 0 |
| Tue 23 Dec 2025 | 9 |
| Wed 24 Dec 2025 | 7 |
| Thu 25 Dec 2025 | 0 |
| Fri 26 Dec 2025 | 0 |
| Sat 27 Dec 2025 | 0 |
| Sun 28 Dec 2025 | 0 |
| Mon 29 Dec 2025 | 1 |
| Tue 30 Dec 2025 | 0 |
| Wed 31 Dec 2025 | 0 |
| Thu 1 Jan 2026 | 0 |
| Fri 2 Jan 2026 | 0 |
| Sat 3 Jan 2026 | 1 |
| Sun 4 Jan 2026 | 0 |
| Mon 5 Jan 2026 | 0 |
| Tue 6 Jan 2026 | 0 |
| Wed 7 Jan 2026 | 0 |
| Thu 8 Jan 2026 | 0 |
| Fri 9 Jan 2026 | 7 |
| Sat 10 Jan 2026 | 0 |
| Sun 11 Jan 2026 | 0 |
| Mon 12 Jan 2026 | 7 |
| Tue 13 Jan 2026 | 6 |
| Wed 14 Jan 2026 | 8 |
| Thu 15 Jan 2026 | 11 |
| Fri 16 Jan 2026 | 11 |
| Sat 17 Jan 2026 | 0 |
| Sun 18 Jan 2026 | 1 |
| Mon 19 Jan 2026 | 10 |
| Tue 20 Jan 2026 | 9 |
| Wed 21 Jan 2026 | 0 |
| Thu 22 Jan 2026 | 4 |
| Fri 23 Jan 2026 | 8 |
| Sat 24 Jan 2026 | 1 |
| Sun 25 Jan 2026 | 0 |
| Mon 26 Jan 2026 | 0 |
| Tue 27 Jan 2026 | 6 |
| Wed 28 Jan 2026 | 2 |
| Thu 29 Jan 2026 | 0 |
| Fri 30 Jan 2026 | 11 |
| Sat 31 Jan 2026 | 0 |
| Sun 1 Feb 2026 | 0 |
| Mon 2 Feb 2026 | 7 |
| Tue 3 Feb 2026 | 3 |
| Wed 4 Feb 2026 | 10 |
| Thu 5 Feb 2026 | 1 |
| Fri 6 Feb 2026 | 7 |
| Sat 7 Feb 2026 | 1 |
| Sun 8 Feb 2026 | 0 |
| Mon 9 Feb 2026 | 8 |
| Tue 10 Feb 2026 | 1 |
| Wed 11 Feb 2026 | 2 |
| Thu 12 Feb 2026 | 4 |
| Fri 13 Feb 2026 | 1 |
| Sat 14 Feb 2026 | 0 |
| Sun 15 Feb 2026 | 0 |
| Mon 16 Feb 2026 | 7 |
| Tue 17 Feb 2026 | 2 |
| Wed 18 Feb 2026 | 3 |
| Thu 19 Feb 2026 | 6 |
| Fri 20 Feb 2026 | 0 |
| Sat 21 Feb 2026 | 1 |
| Sun 22 Feb 2026 | 1 |
| Mon 23 Feb 2026 | 1 |
| Tue 24 Feb 2026 | 10 |
| Wed 25 Feb 2026 | 6 |
| Thu 26 Feb 2026 | 9 |
| Fri 27 Feb 2026 | 0 |
| Sat 28 Feb 2026 | 0 |
| Sun 1 Mar 2026 | 0 |
| Mon 2 Mar 2026 | 6 |
| Tue 3 Mar 2026 | 7 |
| Wed 4 Mar 2026 | 7 |
| Thu 5 Mar 2026 | 8 |
| Fri 6 Mar 2026 | 6 |
| Sat 7 Mar 2026 | 1 |
| Sun 8 Mar 2026 | 0 |
| Mon 9 Mar 2026 | 6 |
| Tue 10 Mar 2026 | 6 |
| Wed 11 Mar 2026 | 2 |
| Thu 12 Mar 2026 | 10 |
| Fri 13 Mar 2026 | 0 |
| Sat 14 Mar 2026 | 0 |
| Sun 15 Mar 2026 | 0 |
| Mon 16 Mar 2026 | 9 |
| Tue 17 Mar 2026 | 6 |
| Wed 18 Mar 2026 | 10 |
| Thu 19 Mar 2026 | 3 |
| Fri 20 Mar 2026 | 10 |
| Sat 21 Mar 2026 | 0 |
| Sun 22 Mar 2026 | 0 |
| Mon 23 Mar 2026 | 6 |
| Tue 24 Mar 2026 | 0 |
| Wed 25 Mar 2026 | 1 |
| Thu 26 Mar 2026 | 11 |
| Fri 27 Mar 2026 | 4 |
| Sat 28 Mar 2026 | 0 |
| Sun 29 Mar 2026 | 1 |
| Mon 30 Mar 2026 | 2 |
| Tue 31 Mar 2026 | 6 |
| Wed 1 Apr 2026 | 1 |
| Thu 2 Apr 2026 | 4 |
| Fri 3 Apr 2026 | 9 |
| Sat 4 Apr 2026 | 0 |
| Sun 5 Apr 2026 | 0 |
| Mon 6 Apr 2026 | 0 |
| Tue 7 Apr 2026 | 0 |
| Wed 8 Apr 2026 | 9 |
| Thu 9 Apr 2026 | 8 |
| Fri 10 Apr 2026 | 1 |
| Sat 11 Apr 2026 | 0 |
| Sun 12 Apr 2026 | 0 |
| Mon 13 Apr 2026 | 2 |
| Tue 14 Apr 2026 | 7 |
| Wed 15 Apr 2026 | 11 |
| Thu 16 Apr 2026 | 0 |
| Fri 17 Apr 2026 | 6 |
| Sat 18 Apr 2026 | 0 |
| Sun 19 Apr 2026 | 0 |
| Mon 20 Apr 2026 | 2 |
| Tue 21 Apr 2026 | 1 |
| Wed 22 Apr 2026 | 1 |
| Thu 23 Apr 2026 | 10 |
| Fri 24 Apr 2026 | 8 |
| Sat 25 Apr 2026 | 1 |
| Sun 26 Apr 2026 | 0 |
| Mon 27 Apr 2026 | 5 |
| Tue 28 Apr 2026 | 6 |
| Wed 29 Apr 2026 | 1 |
| Thu 30 Apr 2026 | 8 |
| Fri 1 May 2026 | 8 |
| Sat 2 May 2026 | 1 |
| Sun 3 May 2026 | 0 |
| Mon 4 May 2026 | 8 |
| Tue 5 May 2026 | 2 |
| Wed 6 May 2026 | 8 |
| Thu 7 May 2026 | 11 |
| Fri 8 May 2026 | 8 |
| Sat 9 May 2026 | 0 |
| Sun 10 May 2026 | 0 |
| Mon 11 May 2026 | 2 |
| Tue 12 May 2026 | 3 |
| Wed 13 May 2026 | 11 |
| Thu 14 May 2026 | 1 |
| Fri 15 May 2026 | 9 |
| Sat 16 May 2026 | 1 |
| Sun 17 May 2026 | 0 |
| Mon 18 May 2026 | 9 |
| Tue 19 May 2026 | 9 |
| Wed 20 May 2026 | 2 |
| Thu 21 May 2026 | 4 |
| Fri 22 May 2026 | 1 |
| Sat 23 May 2026 | 0 |
| Sun 24 May 2026 | 0 |
| Mon 25 May 2026 | 9 |
| Tue 26 May 2026 | 2 |
| Wed 27 May 2026 | 11 |
| Thu 28 May 2026 | 9 |
| Fri 29 May 2026 | 2 |
| Sat 30 May 2026 | 0 |
| Sun 31 May 2026 | 1 |
| Mon 1 Jun 2026 | 11 |
| Tue 2 Jun 2026 | 0 |
| Wed 3 Jun 2026 | 9 |
| Thu 4 Jun 2026 | 5 |
| Fri 5 Jun 2026 | 3 |
| Sat 6 Jun 2026 | 0 |
| Sun 7 Jun 2026 | 0 |
| Mon 8 Jun 2026 | 10 |
| Tue 9 Jun 2026 | 6 |
| Wed 10 Jun 2026 | 6 |
| Thu 11 Jun 2026 | 8 |
| Fri 12 Jun 2026 | 5 |
| Sat 13 Jun 2026 | 0 |
| Sun 14 Jun 2026 | 0 |
| Mon 15 Jun 2026 | 11 |
| Tue 16 Jun 2026 | 4 |
| Wed 17 Jun 2026 | 6 |
| Thu 18 Jun 2026 | 4 |
| Fri 19 Jun 2026 | 10 |
| Sat 20 Jun 2026 | 0 |
| Sun 21 Jun 2026 | 0 |
| Mon 22 Jun 2026 | 10 |
| Tue 23 Jun 2026 | 11 |
| Wed 24 Jun 2026 | 4 |
| Thu 25 Jun 2026 | 9 |
| Fri 26 Jun 2026 | 9 |
| Sat 27 Jun 2026 | 1 |
| Sun 28 Jun 2026 | 0 |
| Mon 29 Jun 2026 | 11 |
| Tue 30 Jun 2026 | 6 |
| Wed 1 Jul 2026 | 4 |
| Thu 2 Jul 2026 | 6 |
| Fri 3 Jul 2026 | 9 |
| Sat 4 Jul 2026 | 0 |
| Sun 5 Jul 2026 | 0 |
| Mon 6 Jul 2026 | 2 |
| Tue 7 Jul 2026 | 6 |
| Wed 8 Jul 2026 | 8 |
| Thu 9 Jul 2026 | 6 |
| Fri 10 Jul 2026 | 9 |
| Sat 11 Jul 2026 | 0 |
| Sun 12 Jul 2026 | 0 |
| Mon 13 Jul 2026 | 2 |
| Tue 14 Jul 2026 | 1 |
| Wed 15 Jul 2026 | 5 |
| Thu 16 Jul 2026 | 1 |
| Fri 17 Jul 2026 | 10 |
| Sat 18 Jul 2026 | 0 |
| Sun 19 Jul 2026 | 0 |
| Mon 20 Jul 2026 | 0 |
| Tue 21 Jul 2026 | 6 |
| Wed 22 Jul 2026 | 7 |
| Thu 23 Jul 2026 | 5 |
| Fri 24 Jul 2026 | 6 |
| Sat 25 Jul 2026 | 0 |
| Sun 26 Jul 2026 | 1 |
| Mon 27 Jul 2026 | 2 |
| Tue 28 Jul 2026 | 0 |
| Wed 29 Jul 2026 | 11 |
| Thu 30 Jul 2026 | 1 |
| Fri 31 Jul 2026 | 5 |
| Sat 1 Aug 2026 | 1 |
| Sun 2 Aug 2026 | 0 |
| Mon 3 Aug 2026 | 6 |
| Tue 4 Aug 2026 | 4 |
| Wed 5 Aug 2026 | 10 |
| Thu 6 Aug 2026 | 5 |
| Fri 7 Aug 2026 | 7 |
| Sat 8 Aug 2026 | 0 |
| Sun 9 Aug 2026 | 0 |
| Mon 10 Aug 2026 | 7 |
| Tue 11 Aug 2026 | 4 |
| Wed 12 Aug 2026 | 3 |
| Thu 13 Aug 2026 | 7 |
| Fri 14 Aug 2026 | 7 |
| Sat 15 Aug 2026 | 0 |
| Sun 16 Aug 2026 | 0 |
| Mon 17 Aug 2026 | 6 |
| Tue 18 Aug 2026 | 1 |
| Wed 19 Aug 2026 | 7 |
| Thu 20 Aug 2026 | 11 |
| Fri 21 Aug 2026 | 1 |
| Sat 22 Aug 2026 | 0 |
| Sun 23 Aug 2026 | 0 |
| Mon 24 Aug 2026 | 1 |
| Tue 25 Aug 2026 | 5 |
| Wed 26 Aug 2026 | 0 |
| Thu 27 Aug 2026 | 2 |
| Fri 28 Aug 2026 | 5 |
| Sat 29 Aug 2026 | 1 |
| Sun 30 Aug 2026 | 0 |
| Mon 31 Aug 2026 | 9 |
| Tue 1 Sep 2026 | 3 |
| Wed 2 Sep 2026 | 7 |
| Thu 3 Sep 2026 | 11 |
| Fri 4 Sep 2026 | 4 |
| Sat 5 Sep 2026 | 1 |
| Sun 6 Sep 2026 | 0 |
| Mon 7 Sep 2026 | 11 |
| Tue 8 Sep 2026 | 8 |
| Wed 9 Sep 2026 | 2 |
| Thu 10 Sep 2026 | 6 |
| Fri 11 Sep 2026 | 5 |
| Sat 12 Sep 2026 | 0 |
| Sun 13 Sep 2026 | 0 |
| Mon 14 Sep 2026 | 7 |
| Tue 15 Sep 2026 | 9 |
| Wed 16 Sep 2026 | 5 |
| Thu 17 Sep 2026 | 1 |
| Fri 18 Sep 2026 | 9 |
| Sat 19 Sep 2026 | 0 |
| Sun 20 Sep 2026 | 0 |
| Mon 21 Sep 2026 | 3 |
| Tue 22 Sep 2026 | 2 |
| Wed 23 Sep 2026 | 3 |
| Thu 24 Sep 2026 | 11 |
| Fri 25 Sep 2026 | 1 |
| Sat 26 Sep 2026 | 0 |
| Sun 27 Sep 2026 | 0 |
| Mon 28 Sep 2026 | 11 |
| Tue 29 Sep 2026 | 6 |
| Wed 30 Sep 2026 | 1 |
| Thu 1 Oct 2026 | 3 |
| Fri 2 Oct 2026 | 11 |
| Sat 3 Oct 2026 | 1 |
| Sun 4 Oct 2026 | 0 |
| Mon 5 Oct 2026 | 9 |
| Tue 6 Oct 2026 | 6 |
| Wed 7 Oct 2026 | 7 |
| Thu 8 Oct 2026 | 6 |
| Fri 9 Oct 2026 | 11 |
| Sat 10 Oct 2026 | 0 |
| Sun 11 Oct 2026 | 0 |
| Mon 12 Oct 2026 | 4 |
| Tue 13 Oct 2026 | 4 |
| Wed 14 Oct 2026 | 11 |
| Thu 15 Oct 2026 | 5 |
| Fri 16 Oct 2026 | 6 |
| Sat 17 Oct 2026 | 1 |
| Sun 18 Oct 2026 | 1 |
| Mon 19 Oct 2026 | 3 |
| Tue 20 Oct 2026 | 1 |
| Wed 21 Oct 2026 | 4 |
| Thu 22 Oct 2026 | 3 |
| Fri 23 Oct 2026 | 0 |
| Sat 24 Oct 2026 | 0 |
| Sun 25 Oct 2026 | 0 |
| Mon 26 Oct 2026 | 10 |
| Tue 27 Oct 2026 | 0 |
| Wed 28 Oct 2026 | 11 |
Daily rainfall
Millimetres per day. Spans over a year stack one row per calendar year.
2024
2025
| Date | Value |
|---|---|
| Mon 1 Jan 2024 | 0.0 mm |
| Tue 2 Jan 2024 | 0.0 mm |
| Wed 3 Jan 2024 | 0.0 mm |
| Thu 4 Jan 2024 | 4.6 mm |
| Fri 5 Jan 2024 | 1.9 mm |
| Sat 6 Jan 2024 | 0.0 mm |
| Sun 7 Jan 2024 | 9.6 mm |
| Mon 8 Jan 2024 | 8.9 mm |
| Tue 9 Jan 2024 | 0.0 mm |
| Wed 10 Jan 2024 | 0.0 mm |
| Thu 11 Jan 2024 | 0.0 mm |
| Fri 12 Jan 2024 | 0.0 mm |
| Sat 13 Jan 2024 | 3.5 mm |
| Sun 14 Jan 2024 | 0.0 mm |
| Mon 15 Jan 2024 | 3.5 mm |
| Tue 16 Jan 2024 | 0.0 mm |
| Wed 17 Jan 2024 | 0.0 mm |
| Thu 18 Jan 2024 | 11.3 mm |
| Fri 19 Jan 2024 | 0.8 mm |
| Sat 20 Jan 2024 | 6.5 mm |
| Sun 21 Jan 2024 | 2.0 mm |
| Mon 22 Jan 2024 | 0.0 mm |
| Tue 23 Jan 2024 | 0.0 mm |
| Wed 24 Jan 2024 | 0.0 mm |
| Thu 25 Jan 2024 | 0.0 mm |
| Fri 26 Jan 2024 | 4.0 mm |
| Sat 27 Jan 2024 | 7.9 mm |
| Sun 28 Jan 2024 | 0.0 mm |
| Mon 29 Jan 2024 | 1.8 mm |
| Tue 30 Jan 2024 | 0.0 mm |
| Wed 31 Jan 2024 | 0.0 mm |
| Thu 1 Feb 2024 | 13.1 mm |
| Fri 2 Feb 2024 | 0.4 mm |
| Sat 3 Feb 2024 | 12.2 mm |
| Sun 4 Feb 2024 | 9.9 mm |
| Mon 5 Feb 2024 | 1.1 mm |
| Tue 6 Feb 2024 | 0.0 mm |
| Wed 7 Feb 2024 | 1.3 mm |
| Thu 8 Feb 2024 | 6.7 mm |
| Fri 9 Feb 2024 | 0.0 mm |
| Sat 10 Feb 2024 | 1.6 mm |
| Sun 11 Feb 2024 | 8.0 mm |
| Mon 12 Feb 2024 | 0.1 mm |
| Tue 13 Feb 2024 | 10.2 mm |
| Wed 14 Feb 2024 | 0.6 mm |
| Thu 15 Feb 2024 | 0.0 mm |
| Fri 16 Feb 2024 | 0.0 mm |
| Sat 17 Feb 2024 | 2.8 mm |
| Sun 18 Feb 2024 | 0.0 mm |
| Mon 19 Feb 2024 | 1.0 mm |
| Tue 20 Feb 2024 | 1.7 mm |
| Wed 21 Feb 2024 | 9.5 mm |
| Thu 22 Feb 2024 | 11.1 mm |
| Fri 23 Feb 2024 | 0.0 mm |
| Sat 24 Feb 2024 | 0.0 mm |
| Sun 25 Feb 2024 | 0.0 mm |
| Mon 26 Feb 2024 | 0.0 mm |
| Tue 27 Feb 2024 | 6.3 mm |
| Wed 28 Feb 2024 | 0.0 mm |
| Thu 29 Feb 2024 | 0.1 mm |
| Fri 1 Mar 2024 | 4.9 mm |
| Sat 2 Mar 2024 | 0.0 mm |
| Sun 3 Mar 2024 | 11.6 mm |
| Mon 4 Mar 2024 | 0.0 mm |
| Tue 5 Mar 2024 | 4.0 mm |
| Wed 6 Mar 2024 | 0.0 mm |
| Thu 7 Mar 2024 | 8.6 mm |
| Fri 8 Mar 2024 | 0.0 mm |
| Sat 9 Mar 2024 | 3.7 mm |
| Sun 10 Mar 2024 | 6.7 mm |
| Mon 11 Mar 2024 | 0.1 mm |
| Tue 12 Mar 2024 | 0.0 mm |
| Wed 13 Mar 2024 | 0.0 mm |
| Thu 14 Mar 2024 | 0.0 mm |
| Fri 15 Mar 2024 | 1.5 mm |
| Sat 16 Mar 2024 | 0.0 mm |
| Sun 17 Mar 2024 | 0.0 mm |
| Mon 18 Mar 2024 | 9.3 mm |
| Tue 19 Mar 2024 | 0.0 mm |
| Wed 20 Mar 2024 | 2.9 mm |
| Thu 21 Mar 2024 | 2.8 mm |
| Fri 22 Mar 2024 | 1.6 mm |
| Sat 23 Mar 2024 | 4.0 mm |
| Sun 24 Mar 2024 | 0.0 mm |
| Mon 25 Mar 2024 | 0.0 mm |
| Tue 26 Mar 2024 | 0.0 mm |
| Wed 27 Mar 2024 | 0.0 mm |
| Thu 28 Mar 2024 | 0.8 mm |
| Fri 29 Mar 2024 | 0.0 mm |
| Sat 30 Mar 2024 | 0.0 mm |
| Sun 31 Mar 2024 | 5.4 mm |
| Mon 1 Apr 2024 | 0.2 mm |
| Tue 2 Apr 2024 | 7.5 mm |
| Wed 3 Apr 2024 | 0.0 mm |
| Thu 4 Apr 2024 | 0.0 mm |
| Fri 5 Apr 2024 | 0.0 mm |
| Sat 6 Apr 2024 | 1.4 mm |
| Sun 7 Apr 2024 | 7.3 mm |
| Mon 8 Apr 2024 | 1.3 mm |
| Tue 9 Apr 2024 | 0.0 mm |
| Wed 10 Apr 2024 | 2.6 mm |
| Thu 11 Apr 2024 | 7.1 mm |
| Fri 12 Apr 2024 | 0.5 mm |
| Sat 13 Apr 2024 | 0.0 mm |
| Sun 14 Apr 2024 | 0.0 mm |
| Mon 15 Apr 2024 | 0.3 mm |
| Tue 16 Apr 2024 | 0.0 mm |
| Wed 17 Apr 2024 | 0.0 mm |
| Thu 18 Apr 2024 | 0.0 mm |
| Fri 19 Apr 2024 | 0.0 mm |
| Sat 20 Apr 2024 | 0.0 mm |
| Sun 21 Apr 2024 | 0.0 mm |
| Mon 22 Apr 2024 | 5.5 mm |
| Tue 23 Apr 2024 | 0.9 mm |
| Wed 24 Apr 2024 | 0.0 mm |
| Thu 25 Apr 2024 | 0.0 mm |
| Fri 26 Apr 2024 | 0.0 mm |
| Sat 27 Apr 2024 | 0.0 mm |
| Sun 28 Apr 2024 | 0.0 mm |
| Mon 29 Apr 2024 | 0.0 mm |
| Tue 30 Apr 2024 | 5.3 mm |
| Wed 1 May 2024 | 0.0 mm |
| Thu 2 May 2024 | 4.7 mm |
| Fri 3 May 2024 | 0.6 mm |
| Sat 4 May 2024 | 3.6 mm |
| Sun 5 May 2024 | 0.0 mm |
| Mon 6 May 2024 | 0.0 mm |
| Tue 7 May 2024 | 5.7 mm |
| Wed 8 May 2024 | 3.2 mm |
| Thu 9 May 2024 | 0.1 mm |
| Fri 10 May 2024 | 0.1 mm |
| Sat 11 May 2024 | 0.2 mm |
| Sun 12 May 2024 | 0.0 mm |
| Mon 13 May 2024 | 0.0 mm |
| Tue 14 May 2024 | 0.0 mm |
| Wed 15 May 2024 | 0.0 mm |
| Thu 16 May 2024 | 0.0 mm |
| Fri 17 May 2024 | 3.6 mm |
| Sat 18 May 2024 | 0.0 mm |
| Sun 19 May 2024 | 2.2 mm |
| Mon 20 May 2024 | 0.0 mm |
| Tue 21 May 2024 | 0.0 mm |
| Wed 22 May 2024 | 3.4 mm |
| Thu 23 May 2024 | 1.7 mm |
| Fri 24 May 2024 | 0.0 mm |
| Sat 25 May 2024 | 0.0 mm |
| Sun 26 May 2024 | 0.1 mm |
| Mon 27 May 2024 | 0.1 mm |
| Tue 28 May 2024 | 1.0 mm |
| Wed 29 May 2024 | 0.0 mm |
| Thu 30 May 2024 | 0.0 mm |
| Fri 31 May 2024 | 0.0 mm |
| Sat 1 Jun 2024 | 0.0 mm |
| Sun 2 Jun 2024 | 3.4 mm |
| Mon 3 Jun 2024 | 0.7 mm |
| Tue 4 Jun 2024 | 0.0 mm |
| Wed 5 Jun 2024 | 0.0 mm |
| Thu 6 Jun 2024 | 0.9 mm |
| Fri 7 Jun 2024 | 0.0 mm |
| Sat 8 Jun 2024 | 0.0 mm |
| Sun 9 Jun 2024 | 2.3 mm |
| Mon 10 Jun 2024 | 0.0 mm |
| Tue 11 Jun 2024 | 0.0 mm |
| Wed 12 Jun 2024 | 0.0 mm |
| Thu 13 Jun 2024 | 0.3 mm |
| Fri 14 Jun 2024 | 0.0 mm |
| Sat 15 Jun 2024 | 0.0 mm |
| Sun 16 Jun 2024 | 0.4 mm |
| Mon 17 Jun 2024 | 0.0 mm |
| Tue 18 Jun 2024 | 0.0 mm |
| Wed 19 Jun 2024 | 0.0 mm |
| Thu 20 Jun 2024 | 1.0 mm |
| Fri 21 Jun 2024 | 0.0 mm |
| Sat 22 Jun 2024 | 3.0 mm |
| Sun 23 Jun 2024 | 0.0 mm |
| Mon 24 Jun 2024 | 2.9 mm |
| Tue 25 Jun 2024 | 0.4 mm |
| Wed 26 Jun 2024 | 0.0 mm |
| Thu 27 Jun 2024 | 3.3 mm |
| Fri 28 Jun 2024 | 2.2 mm |
| Sat 29 Jun 2024 | 0.0 mm |
| Sun 30 Jun 2024 | 0.0 mm |
| Mon 1 Jul 2024 | 0.0 mm |
| Tue 2 Jul 2024 | 0.0 mm |
| Wed 3 Jul 2024 | 2.3 mm |
| Thu 4 Jul 2024 | 1.5 mm |
| Fri 5 Jul 2024 | 0.0 mm |
| Sat 6 Jul 2024 | 0.0 mm |
| Sun 7 Jul 2024 | 1.6 mm |
| Mon 8 Jul 2024 | 1.5 mm |
| Tue 9 Jul 2024 | 0.0 mm |
| Wed 10 Jul 2024 | 0.0 mm |
| Thu 11 Jul 2024 | 0.0 mm |
| Fri 12 Jul 2024 | 0.0 mm |
| Sat 13 Jul 2024 | 0.0 mm |
| Sun 14 Jul 2024 | 1.5 mm |
| Mon 15 Jul 2024 | 0.2 mm |
| Tue 16 Jul 2024 | 0.0 mm |
| Wed 17 Jul 2024 | 0.0 mm |
| Thu 18 Jul 2024 | 0.1 mm |
| Fri 19 Jul 2024 | 0.0 mm |
| Sat 20 Jul 2024 | 1.2 mm |
| Sun 21 Jul 2024 | 0.0 mm |
| Mon 22 Jul 2024 | 0.1 mm |
| Tue 23 Jul 2024 | 1.8 mm |
| Wed 24 Jul 2024 | 2.1 mm |
| Thu 25 Jul 2024 | 2.9 mm |
| Fri 26 Jul 2024 | 0.0 mm |
| Sat 27 Jul 2024 | 2.5 mm |
| Sun 28 Jul 2024 | 0.0 mm |
| Mon 29 Jul 2024 | 0.2 mm |
| Tue 30 Jul 2024 | 3.2 mm |
| Wed 31 Jul 2024 | 0.3 mm |
| Thu 1 Aug 2024 | 0.0 mm |
| Fri 2 Aug 2024 | 1.1 mm |
| Sat 3 Aug 2024 | 0.0 mm |
| Sun 4 Aug 2024 | 1.5 mm |
| Mon 5 Aug 2024 | 3.5 mm |
| Tue 6 Aug 2024 | 0.0 mm |
| Wed 7 Aug 2024 | 0.6 mm |
| Thu 8 Aug 2024 | 0.0 mm |
| Fri 9 Aug 2024 | 0.0 mm |
| Sat 10 Aug 2024 | 0.5 mm |
| Sun 11 Aug 2024 | 0.7 mm |
| Mon 12 Aug 2024 | 4.2 mm |
| Tue 13 Aug 2024 | 1.3 mm |
| Wed 14 Aug 2024 | 0.0 mm |
| Thu 15 Aug 2024 | 2.7 mm |
| Fri 16 Aug 2024 | 0.0 mm |
| Sat 17 Aug 2024 | 0.0 mm |
| Sun 18 Aug 2024 | 3.6 mm |
| Mon 19 Aug 2024 | 1.1 mm |
| Tue 20 Aug 2024 | 0.0 mm |
| Wed 21 Aug 2024 | 0.0 mm |
| Thu 22 Aug 2024 | 4.2 mm |
| Fri 23 Aug 2024 | 0.0 mm |
| Sat 24 Aug 2024 | 0.0 mm |
| Sun 25 Aug 2024 | 4.7 mm |
| Mon 26 Aug 2024 | 0.5 mm |
| Tue 27 Aug 2024 | 0.0 mm |
| Wed 28 Aug 2024 | 2.8 mm |
| Thu 29 Aug 2024 | 0.4 mm |
| Fri 30 Aug 2024 | 1.9 mm |
| Sat 31 Aug 2024 | 0.0 mm |
| Sun 1 Sep 2024 | 0.2 mm |
| Mon 2 Sep 2024 | 0.0 mm |
| Tue 3 Sep 2024 | 5.1 mm |
| Wed 4 Sep 2024 | 0.2 mm |
| Thu 5 Sep 2024 | 4.9 mm |
| Fri 6 Sep 2024 | 0.0 mm |
| Sat 7 Sep 2024 | 0.0 mm |
| Sun 8 Sep 2024 | 0.0 mm |
| Mon 9 Sep 2024 | 4.3 mm |
| Tue 10 Sep 2024 | 1.7 mm |
| Wed 11 Sep 2024 | 5.8 mm |
| Thu 12 Sep 2024 | 0.0 mm |
| Fri 13 Sep 2024 | 5.0 mm |
| Sat 14 Sep 2024 | 0.0 mm |
| Sun 15 Sep 2024 | 4.9 mm |
| Mon 16 Sep 2024 | 0.0 mm |
| Tue 17 Sep 2024 | 0.0 mm |
| Wed 18 Sep 2024 | 0.8 mm |
| Thu 19 Sep 2024 | 1.4 mm |
| Fri 20 Sep 2024 | 2.7 mm |
| Sat 21 Sep 2024 | 1.2 mm |
| Sun 22 Sep 2024 | 4.6 mm |
| Mon 23 Sep 2024 | 0.0 mm |
| Tue 24 Sep 2024 | 0.0 mm |
| Wed 25 Sep 2024 | 0.0 mm |
| Thu 26 Sep 2024 | 0.3 mm |
| Fri 27 Sep 2024 | 0.0 mm |
| Sat 28 Sep 2024 | 0.1 mm |
| Sun 29 Sep 2024 | 3.3 mm |
| Mon 30 Sep 2024 | 3.4 mm |
| Tue 1 Oct 2024 | 0.0 mm |
| Wed 2 Oct 2024 | 6.4 mm |
| Thu 3 Oct 2024 | 0.0 mm |
| Fri 4 Oct 2024 | 1.7 mm |
| Sat 5 Oct 2024 | 0.0 mm |
| Sun 6 Oct 2024 | 0.0 mm |
| Mon 7 Oct 2024 | 0.0 mm |
| Tue 8 Oct 2024 | 0.1 mm |
| Wed 9 Oct 2024 | 2.5 mm |
| Thu 10 Oct 2024 | 7.6 mm |
| Fri 11 Oct 2024 | 6.7 mm |
| Sat 12 Oct 2024 | 0.1 mm |
| Sun 13 Oct 2024 | 0.0 mm |
| Mon 14 Oct 2024 | 0.7 mm |
| Tue 15 Oct 2024 | 6.0 mm |
| Wed 16 Oct 2024 | 0.0 mm |
| Thu 17 Oct 2024 | 0.1 mm |
| Fri 18 Oct 2024 | 0.0 mm |
| Sat 19 Oct 2024 | 0.0 mm |
| Sun 20 Oct 2024 | 4.8 mm |
| Mon 21 Oct 2024 | 2.7 mm |
| Tue 22 Oct 2024 | 0.5 mm |
| Wed 23 Oct 2024 | 0.0 mm |
| Thu 24 Oct 2024 | 1.9 mm |
| Fri 25 Oct 2024 | 0.0 mm |
| Sat 26 Oct 2024 | 0.0 mm |
| Sun 27 Oct 2024 | 0.0 mm |
| Mon 28 Oct 2024 | 0.6 mm |
| Tue 29 Oct 2024 | 10.5 mm |
| Wed 30 Oct 2024 | 0.9 mm |
| Thu 31 Oct 2024 | 5.0 mm |
| Fri 1 Nov 2024 | 0.2 mm |
| Sat 2 Nov 2024 | 0.0 mm |
| Sun 3 Nov 2024 | 3.1 mm |
| Mon 4 Nov 2024 | 0.0 mm |
| Tue 5 Nov 2024 | 2.0 mm |
| Wed 6 Nov 2024 | 1.8 mm |
| Thu 7 Nov 2024 | 2.3 mm |
| Fri 8 Nov 2024 | 1.1 mm |
| Sat 9 Nov 2024 | 0.0 mm |
| Sun 10 Nov 2024 | 0.0 mm |
| Mon 11 Nov 2024 | 0.0 mm |
| Tue 12 Nov 2024 | 8.2 mm |
| Wed 13 Nov 2024 | 0.0 mm |
| Thu 14 Nov 2024 | 0.0 mm |
| Fri 15 Nov 2024 | 10.4 mm |
| Sat 16 Nov 2024 | 0.1 mm |
| Sun 17 Nov 2024 | 0.0 mm |
| Mon 18 Nov 2024 | 1.3 mm |
| Tue 19 Nov 2024 | 0.0 mm |
| Wed 20 Nov 2024 | 0.0 mm |
| Thu 21 Nov 2024 | 0.0 mm |
| Fri 22 Nov 2024 | 13.1 mm |
| Sat 23 Nov 2024 | 0.0 mm |
| Sun 24 Nov 2024 | 13.3 mm |
| Mon 25 Nov 2024 | 0.6 mm |
| Tue 26 Nov 2024 | 10.2 mm |
| Wed 27 Nov 2024 | 0.0 mm |
| Thu 28 Nov 2024 | 0.0 mm |
| Fri 29 Nov 2024 | 0.0 mm |
| Sat 30 Nov 2024 | 2.5 mm |
| Sun 1 Dec 2024 | 0.0 mm |
| Mon 2 Dec 2024 | 0.0 mm |
| Tue 3 Dec 2024 | 10.1 mm |
| Wed 4 Dec 2024 | 2.2 mm |
| Thu 5 Dec 2024 | 6.1 mm |
| Fri 6 Dec 2024 | 0.3 mm |
| Sat 7 Dec 2024 | 0.0 mm |
| Sun 8 Dec 2024 | 0.0 mm |
| Mon 9 Dec 2024 | 0.0 mm |
| Tue 10 Dec 2024 | 0.0 mm |
| Wed 11 Dec 2024 | 1.7 mm |
| Thu 12 Dec 2024 | 7.5 mm |
| Fri 13 Dec 2024 | 0.0 mm |
| Sat 14 Dec 2024 | 0.0 mm |
| Sun 15 Dec 2024 | 0.0 mm |
| Mon 16 Dec 2024 | 0.0 mm |
| Tue 17 Dec 2024 | 2.8 mm |
| Wed 18 Dec 2024 | 0.0 mm |
| Thu 19 Dec 2024 | 14.0 mm |
| Fri 20 Dec 2024 | 0.8 mm |
| Sat 21 Dec 2024 | 6.3 mm |
| Sun 22 Dec 2024 | 0.0 mm |
| Mon 23 Dec 2024 | 0.0 mm |
| Tue 24 Dec 2024 | 7.2 mm |
| Wed 25 Dec 2024 | 0.0 mm |
| Thu 26 Dec 2024 | 1.8 mm |
| Fri 27 Dec 2024 | 0.0 mm |
| Sat 28 Dec 2024 | 0.0 mm |
| Sun 29 Dec 2024 | 3.0 mm |
| Mon 30 Dec 2024 | 0.0 mm |
| Tue 31 Dec 2024 | 0.0 mm |
| Wed 1 Jan 2025 | 0.0 mm |
| Thu 2 Jan 2025 | 1.4 mm |
| Fri 3 Jan 2025 | 0.5 mm |
| Sat 4 Jan 2025 | 0.0 mm |
| Sun 5 Jan 2025 | 0.0 mm |
| Mon 6 Jan 2025 | 7.5 mm |
| Tue 7 Jan 2025 | 0.0 mm |
| Wed 8 Jan 2025 | 0.4 mm |
| Thu 9 Jan 2025 | 0.0 mm |
| Fri 10 Jan 2025 | 13.4 mm |
| Sat 11 Jan 2025 | 0.0 mm |
| Sun 12 Jan 2025 | 6.7 mm |
| Mon 13 Jan 2025 | 0.0 mm |
| Tue 14 Jan 2025 | 0.0 mm |
| Wed 15 Jan 2025 | 0.3 mm |
| Thu 16 Jan 2025 | 4.2 mm |
| Fri 17 Jan 2025 | 0.0 mm |
| Sat 18 Jan 2025 | 12.5 mm |
| Sun 19 Jan 2025 | 4.3 mm |
| Mon 20 Jan 2025 | 0.0 mm |
| Tue 21 Jan 2025 | 0.0 mm |
| Wed 22 Jan 2025 | 0.0 mm |
| Thu 23 Jan 2025 | 0.0 mm |
| Fri 24 Jan 2025 | 0.0 mm |
| Sat 25 Jan 2025 | 0.0 mm |
| Sun 26 Jan 2025 | 0.6 mm |
| Mon 27 Jan 2025 | 0.4 mm |
| Tue 28 Jan 2025 | 0.0 mm |
| Wed 29 Jan 2025 | 0.0 mm |
| Thu 30 Jan 2025 | 12.1 mm |
| Fri 31 Jan 2025 | 0.0 mm |
| Sat 1 Feb 2025 | 0.0 mm |
| Sun 2 Feb 2025 | 0.0 mm |
| Mon 3 Feb 2025 | 0.0 mm |
| Tue 4 Feb 2025 | 0.0 mm |
| Wed 5 Feb 2025 | 0.0 mm |
| Thu 6 Feb 2025 | 0.0 mm |
| Fri 7 Feb 2025 | 0.0 mm |
| Sat 8 Feb 2025 | 4.3 mm |
| Sun 9 Feb 2025 | 0.0 mm |
| Mon 10 Feb 2025 | 0.0 mm |
| Tue 11 Feb 2025 | 0.5 mm |
| Wed 12 Feb 2025 | 4.0 mm |
| Thu 13 Feb 2025 | 8.1 mm |
| Fri 14 Feb 2025 | 0.0 mm |
| Sat 15 Feb 2025 | 2.3 mm |
| Sun 16 Feb 2025 | 9.0 mm |
| Mon 17 Feb 2025 | 10.2 mm |
| Tue 18 Feb 2025 | 7.3 mm |
| Wed 19 Feb 2025 | 0.0 mm |
| Thu 20 Feb 2025 | 0.9 mm |
| Fri 21 Feb 2025 | 0.0 mm |
| Sat 22 Feb 2025 | 0.0 mm |
| Sun 23 Feb 2025 | 0.0 mm |
| Mon 24 Feb 2025 | 6.0 mm |
| Tue 25 Feb 2025 | 0.0 mm |
| Wed 26 Feb 2025 | 2.0 mm |
| Thu 27 Feb 2025 | 9.7 mm |
| Fri 28 Feb 2025 | 8.4 mm |
| Sat 1 Mar 2025 | 0.0 mm |
| Sun 2 Mar 2025 | 0.0 mm |
| Mon 3 Mar 2025 | 0.7 mm |
| Tue 4 Mar 2025 | 0.0 mm |
| Wed 5 Mar 2025 | 0.0 mm |
| Thu 6 Mar 2025 | 4.8 mm |
| Fri 7 Mar 2025 | 0.0 mm |
| Sat 8 Mar 2025 | 11.1 mm |
| Sun 9 Mar 2025 | 0.0 mm |
| Mon 10 Mar 2025 | 0.0 mm |
| Tue 11 Mar 2025 | 3.5 mm |
| Wed 12 Mar 2025 | 0.1 mm |
| Thu 13 Mar 2025 | 0.0 mm |
| Fri 14 Mar 2025 | 0.0 mm |
| Sat 15 Mar 2025 | 9.7 mm |
| Sun 16 Mar 2025 | 0.0 mm |
| Mon 17 Mar 2025 | 0.6 mm |
| Tue 18 Mar 2025 | 0.0 mm |
| Wed 19 Mar 2025 | 0.0 mm |
| Thu 20 Mar 2025 | 2.8 mm |
| Fri 21 Mar 2025 | 9.2 mm |
| Sat 22 Mar 2025 | 6.7 mm |
| Sun 23 Mar 2025 | 0.0 mm |
| Mon 24 Mar 2025 | 0.0 mm |
| Tue 25 Mar 2025 | 0.0 mm |
| Wed 26 Mar 2025 | 9.3 mm |
| Thu 27 Mar 2025 | 0.0 mm |
| Fri 28 Mar 2025 | 0.0 mm |
| Sat 29 Mar 2025 | 8.7 mm |
| Sun 30 Mar 2025 | 0.0 mm |
| Mon 31 Mar 2025 | 0.0 mm |
| Tue 1 Apr 2025 | 0.0 mm |
| Wed 2 Apr 2025 | 0.0 mm |
| Thu 3 Apr 2025 | 0.0 mm |
| Fri 4 Apr 2025 | 1.1 mm |
| Sat 5 Apr 2025 | 0.0 mm |
| Sun 6 Apr 2025 | 0.0 mm |
| Mon 7 Apr 2025 | 0.0 mm |
| Tue 8 Apr 2025 | 0.0 mm |
| Wed 9 Apr 2025 | 0.0 mm |
| Thu 10 Apr 2025 | 0.0 mm |
| Fri 11 Apr 2025 | 0.1 mm |
| Sat 12 Apr 2025 | 0.9 mm |
| Sun 13 Apr 2025 | 0.0 mm |
| Mon 14 Apr 2025 | 0.0 mm |
| Tue 15 Apr 2025 | 0.0 mm |
| Wed 16 Apr 2025 | 1.7 mm |
| Thu 17 Apr 2025 | 0.8 mm |
| Fri 18 Apr 2025 | 1.1 mm |
| Sat 19 Apr 2025 | 0.7 mm |
| Sun 20 Apr 2025 | 6.8 mm |
| Mon 21 Apr 2025 | 0.0 mm |
| Tue 22 Apr 2025 | 0.9 mm |
| Wed 23 Apr 2025 | 5.3 mm |
| Thu 24 Apr 2025 | 0.0 mm |
| Fri 25 Apr 2025 | 0.0 mm |
| Sat 26 Apr 2025 | 0.0 mm |
| Sun 27 Apr 2025 | 0.4 mm |
| Mon 28 Apr 2025 | 0.0 mm |
| Tue 29 Apr 2025 | 0.0 mm |
| Wed 30 Apr 2025 | 0.0 mm |
| Thu 1 May 2025 | 0.0 mm |
| Fri 2 May 2025 | 0.0 mm |
| Sat 3 May 2025 | 0.0 mm |
| Sun 4 May 2025 | 0.0 mm |
| Mon 5 May 2025 | 1.4 mm |
| Tue 6 May 2025 | 1.3 mm |
| Wed 7 May 2025 | 0.2 mm |
| Thu 8 May 2025 | 0.0 mm |
| Fri 9 May 2025 | 4.7 mm |
| Sat 10 May 2025 | 0.1 mm |
| Sun 11 May 2025 | 0.9 mm |
| Mon 12 May 2025 | 0.0 mm |
| Tue 13 May 2025 | 0.0 mm |
| Wed 14 May 2025 | 0.0 mm |
| Thu 15 May 2025 | 0.0 mm |
| Fri 16 May 2025 | 0.5 mm |
| Sat 17 May 2025 | 0.0 mm |
| Sun 18 May 2025 | 0.0 mm |
| Mon 19 May 2025 | 0.4 mm |
| Tue 20 May 2025 | 0.5 mm |
| Wed 21 May 2025 | 0.0 mm |
| Thu 22 May 2025 | 0.2 mm |
| Fri 23 May 2025 | 0.5 mm |
| Sat 24 May 2025 | 0.0 mm |
| Sun 25 May 2025 | 0.0 mm |
| Mon 26 May 2025 | 0.0 mm |
| Tue 27 May 2025 | 4.1 mm |
| Wed 28 May 2025 | 0.0 mm |
| Thu 29 May 2025 | 1.4 mm |
| Fri 30 May 2025 | 1.1 mm |
| Sat 31 May 2025 | 0.0 mm |
| Sun 1 Jun 2025 | 1.8 mm |
| Mon 2 Jun 2025 | 3.9 mm |
| Tue 3 Jun 2025 | 0.4 mm |
| Wed 4 Jun 2025 | 3.1 mm |
| Thu 5 Jun 2025 | 0.0 mm |
| Fri 6 Jun 2025 | 3.7 mm |
| Sat 7 Jun 2025 | 0.0 mm |
| Sun 8 Jun 2025 | 0.0 mm |
| Mon 9 Jun 2025 | 2.5 mm |
| Tue 10 Jun 2025 | 0.4 mm |
| Wed 11 Jun 2025 | 0.0 mm |
| Thu 12 Jun 2025 | 0.0 mm |
| Fri 13 Jun 2025 | 0.0 mm |
| Sat 14 Jun 2025 | 0.0 mm |
| Sun 15 Jun 2025 | 0.3 mm |
| Mon 16 Jun 2025 | 0.0 mm |
| Tue 17 Jun 2025 | 0.0 mm |
| Wed 18 Jun 2025 | 0.0 mm |
| Thu 19 Jun 2025 | 0.0 mm |
| Fri 20 Jun 2025 | 0.0 mm |
| Sat 21 Jun 2025 | 3.1 mm |
| Sun 22 Jun 2025 | 0.5 mm |
| Mon 23 Jun 2025 | 2.4 mm |
| Tue 24 Jun 2025 | 0.0 mm |
| Wed 25 Jun 2025 | 0.0 mm |
| Thu 26 Jun 2025 | 0.0 mm |
| Fri 27 Jun 2025 | 1.0 mm |
| Sat 28 Jun 2025 | 0.0 mm |
| Sun 29 Jun 2025 | 0.0 mm |
| Mon 30 Jun 2025 | 0.2 mm |
| Tue 1 Jul 2025 | 0.0 mm |
| Wed 2 Jul 2025 | 1.1 mm |
| Thu 3 Jul 2025 | 0.0 mm |
| Fri 4 Jul 2025 | 2.4 mm |
| Sat 5 Jul 2025 | 2.3 mm |
| Sun 6 Jul 2025 | 3.3 mm |
| Mon 7 Jul 2025 | 0.0 mm |
| Tue 8 Jul 2025 | 2.0 mm |
| Wed 9 Jul 2025 | 1.4 mm |
| Thu 10 Jul 2025 | 0.3 mm |
| Fri 11 Jul 2025 | 0.0 mm |
| Sat 12 Jul 2025 | 0.0 mm |
| Sun 13 Jul 2025 | 1.5 mm |
| Mon 14 Jul 2025 | 0.8 mm |
| Tue 15 Jul 2025 | 0.0 mm |
| Wed 16 Jul 2025 | 3.4 mm |
| Thu 17 Jul 2025 | 0.0 mm |
| Fri 18 Jul 2025 | 0.0 mm |
| Sat 19 Jul 2025 | 0.2 mm |
| Sun 20 Jul 2025 | 3.0 mm |
| Mon 21 Jul 2025 | 0.0 mm |
| Tue 22 Jul 2025 | 0.0 mm |
| Wed 23 Jul 2025 | 0.0 mm |
| Thu 24 Jul 2025 | 0.0 mm |
| Fri 25 Jul 2025 | 0.0 mm |
| Sat 26 Jul 2025 | 0.1 mm |
| Sun 27 Jul 2025 | 3.2 mm |
| Mon 28 Jul 2025 | 0.0 mm |
| Tue 29 Jul 2025 | 0.0 mm |
| Wed 30 Jul 2025 | 2.1 mm |
| Thu 31 Jul 2025 | 1.7 mm |
| Fri 1 Aug 2025 | 0.9 mm |
| Sat 2 Aug 2025 | 0.0 mm |
| Sun 3 Aug 2025 | 0.0 mm |
| Mon 4 Aug 2025 | 1.9 mm |
| Tue 5 Aug 2025 | 0.0 mm |
| Wed 6 Aug 2025 | 3.8 mm |
| Thu 7 Aug 2025 | 4.5 mm |
| Fri 8 Aug 2025 | 1.1 mm |
| Sat 9 Aug 2025 | 0.0 mm |
| Sun 10 Aug 2025 | 0.0 mm |
| Mon 11 Aug 2025 | 0.1 mm |
| Tue 12 Aug 2025 | 0.0 mm |
| Wed 13 Aug 2025 | 0.0 mm |
| Thu 14 Aug 2025 | 0.0 mm |
| Fri 15 Aug 2025 | 3.5 mm |
| Sat 16 Aug 2025 | 0.0 mm |
| Sun 17 Aug 2025 | 0.0 mm |
| Mon 18 Aug 2025 | 3.5 mm |
| Tue 19 Aug 2025 | 1.3 mm |
| Wed 20 Aug 2025 | 0.0 mm |
| Thu 21 Aug 2025 | 4.7 mm |
| Fri 22 Aug 2025 | 5.2 mm |
| Sat 23 Aug 2025 | 0.0 mm |
| Sun 24 Aug 2025 | 2.2 mm |
| Mon 25 Aug 2025 | 3.3 mm |
| Tue 26 Aug 2025 | 0.0 mm |
| Wed 27 Aug 2025 | 0.0 mm |
| Thu 28 Aug 2025 | 2.7 mm |
| Fri 29 Aug 2025 | 0.0 mm |
| Sat 30 Aug 2025 | 3.9 mm |
| Sun 31 Aug 2025 | 1.4 mm |
| Mon 1 Sep 2025 | 0.0 mm |
| Tue 2 Sep 2025 | 0.0 mm |
| Wed 3 Sep 2025 | 1.2 mm |
| Thu 4 Sep 2025 | 2.6 mm |
| Fri 5 Sep 2025 | 0.0 mm |
| Sat 6 Sep 2025 | 0.0 mm |
| Sun 7 Sep 2025 | 1.8 mm |
| Mon 8 Sep 2025 | 0.5 mm |
| Tue 9 Sep 2025 | 0.0 mm |
| Wed 10 Sep 2025 | 0.0 mm |
| Thu 11 Sep 2025 | 2.2 mm |
| Fri 12 Sep 2025 | 0.0 mm |
| Sat 13 Sep 2025 | 1.4 mm |
| Sun 14 Sep 2025 | 2.1 mm |
| Mon 15 Sep 2025 | 0.0 mm |
| Tue 16 Sep 2025 | 0.5 mm |
| Wed 17 Sep 2025 | 0.0 mm |
| Thu 18 Sep 2025 | 0.0 mm |
| Fri 19 Sep 2025 | 0.0 mm |
| Sat 20 Sep 2025 | 2.1 mm |
| Sun 21 Sep 2025 | 7.7 mm |
| Mon 22 Sep 2025 | 3.1 mm |
| Tue 23 Sep 2025 | 0.0 mm |
| Wed 24 Sep 2025 | 6.9 mm |
| Thu 25 Sep 2025 | 6.7 mm |
| Fri 26 Sep 2025 | 2.1 mm |
| Sat 27 Sep 2025 | 3.3 mm |
| Sun 28 Sep 2025 | 0.0 mm |
| Mon 29 Sep 2025 | 0.0 mm |
| Tue 30 Sep 2025 | 0.0 mm |
| Wed 1 Oct 2025 | 0.3 mm |
| Thu 2 Oct 2025 | 0.0 mm |
| Fri 3 Oct 2025 | 0.0 mm |
| Sat 4 Oct 2025 | 3.3 mm |
| Sun 5 Oct 2025 | 4.7 mm |
| Mon 6 Oct 2025 | 0.0 mm |
| Tue 7 Oct 2025 | 0.0 mm |
| Wed 8 Oct 2025 | 0.1 mm |
| Thu 9 Oct 2025 | 9.4 mm |
| Fri 10 Oct 2025 | 9.0 mm |
| Sat 11 Oct 2025 | 0.0 mm |
| Sun 12 Oct 2025 | 0.0 mm |
| Mon 13 Oct 2025 | 0.0 mm |
| Tue 14 Oct 2025 | 8.1 mm |
| Wed 15 Oct 2025 | 7.2 mm |
| Thu 16 Oct 2025 | 1.5 mm |
| Fri 17 Oct 2025 | 8.3 mm |
| Sat 18 Oct 2025 | 9.0 mm |
| Sun 19 Oct 2025 | 2.8 mm |
| Mon 20 Oct 2025 | 0.0 mm |
| Tue 21 Oct 2025 | 0.0 mm |
| Wed 22 Oct 2025 | 1.2 mm |
| Thu 23 Oct 2025 | 0.0 mm |
| Fri 24 Oct 2025 | 0.0 mm |
| Sat 25 Oct 2025 | 0.0 mm |
| Sun 26 Oct 2025 | 1.1 mm |
| Mon 27 Oct 2025 | 0.0 mm |
| Tue 28 Oct 2025 | 0.0 mm |
| Wed 29 Oct 2025 | 0.0 mm |
| Thu 30 Oct 2025 | 0.0 mm |
| Fri 31 Oct 2025 | 0.0 mm |
| Sat 1 Nov 2025 | 1.6 mm |
| Sun 2 Nov 2025 | 0.0 mm |
| Mon 3 Nov 2025 | 0.3 mm |
| Tue 4 Nov 2025 | 2.4 mm |
| Wed 5 Nov 2025 | 0.0 mm |
| Thu 6 Nov 2025 | 7.7 mm |
| Fri 7 Nov 2025 | 0.0 mm |
| Sat 8 Nov 2025 | 0.2 mm |
| Sun 9 Nov 2025 | 0.0 mm |
| Mon 10 Nov 2025 | 11.9 mm |
| Tue 11 Nov 2025 | 2.3 mm |
| Wed 12 Nov 2025 | 4.0 mm |
| Thu 13 Nov 2025 | 1.5 mm |
| Fri 14 Nov 2025 | 0.0 mm |
| Sat 15 Nov 2025 | 8.6 mm |
| Sun 16 Nov 2025 | 11.0 mm |
| Mon 17 Nov 2025 | 0.0 mm |
| Tue 18 Nov 2025 | 0.5 mm |
| Wed 19 Nov 2025 | 0.1 mm |
| Thu 20 Nov 2025 | 9.6 mm |
| Fri 21 Nov 2025 | 0.1 mm |
| Sat 22 Nov 2025 | 0.0 mm |
| Sun 23 Nov 2025 | 0.0 mm |
| Mon 24 Nov 2025 | 0.0 mm |
| Tue 25 Nov 2025 | 0.0 mm |
| Wed 26 Nov 2025 | 0.0 mm |
| Thu 27 Nov 2025 | 0.0 mm |
| Fri 28 Nov 2025 | 0.0 mm |
| Sat 29 Nov 2025 | 0.0 mm |
| Sun 30 Nov 2025 | 1.3 mm |
| Mon 1 Dec 2025 | 0.0 mm |
| Tue 2 Dec 2025 | 0.7 mm |
| Wed 3 Dec 2025 | 0.0 mm |
| Thu 4 Dec 2025 | 0.0 mm |
| Fri 5 Dec 2025 | 11.1 mm |
| Sat 6 Dec 2025 | 1.3 mm |
| Sun 7 Dec 2025 | 0.0 mm |
| Mon 8 Dec 2025 | 0.8 mm |
| Tue 9 Dec 2025 | 0.0 mm |
| Wed 10 Dec 2025 | 10.4 mm |
| Thu 11 Dec 2025 | 3.3 mm |
| Fri 12 Dec 2025 | 0.0 mm |
| Sat 13 Dec 2025 | 0.4 mm |
| Sun 14 Dec 2025 | 11.9 mm |
| Mon 15 Dec 2025 | 0.4 mm |
| Tue 16 Dec 2025 | 0.0 mm |
| Wed 17 Dec 2025 | 0.6 mm |
| Thu 18 Dec 2025 | 0.0 mm |
| Fri 19 Dec 2025 | 0.0 mm |
| Sat 20 Dec 2025 | 0.0 mm |
| Sun 21 Dec 2025 | 0.0 mm |
| Mon 22 Dec 2025 | 3.3 mm |
| Tue 23 Dec 2025 | 0.0 mm |
| Wed 24 Dec 2025 | 0.0 mm |
| Thu 25 Dec 2025 | 3.9 mm |
| Fri 26 Dec 2025 | 0.0 mm |
| Sat 27 Dec 2025 | 0.5 mm |
| Sun 28 Dec 2025 | 4.8 mm |
| Mon 29 Dec 2025 | 0.4 mm |
| Tue 30 Dec 2025 | 12.0 mm |
| Wed 31 Dec 2025 | 0.0 mm |
Usage
use hydroxy_leptos::calendar_heatmap_chart::CalendarHeatmapChart;
use hydroxy_leptos::chart_frame::ChartFrame;
use leptos::prelude::*;
#[component]
pub fn Demo() -> impl IntoView {
// A year of commits from 29 Oct 2025: busy weekdays, quiet weekends, a two-week break at Christmas.
let mut next = noise(7);
let commits: Vec<f64> = (0..365)
.map(|d: u32| {
let weekend = (d + 2) % 7 >= 5;
let holiday = (57..71).contains(&d);
let busy = if weekend || holiday { 0.6 } else { 6.0 };
(busy * next() * 2.0).floor()
})
.collect();
// Two years of daily rainfall: wet winters, dry summers, many dry days.
let mut next = noise(23);
let rain: Vec<f64> = (0..731)
.map(|d: u32| {
let winter = 1.0 + 0.6 * (f64::from(d) / 365.25 * std::f64::consts::TAU).cos();
if next() < 0.45 { 0.0 } else { (winter * 9.0 * next().powi(2) * 10.0).round() / 10.0 }
})
.collect();
view! {
<div style="display: grid; gap: var(--space-10);">
<ChartFrame title="Commits" description="Commits per day over the last year. Hover a day, or focus the calendar and use the arrow keys.">
<CalendarHeatmapChart values=commits start=(2025, 10, 29) label="Commits per day, 29 Oct 2025 to 28 Oct 2026" />
</ChartFrame>
<ChartFrame title="Daily rainfall" description="Millimetres per day. Spans over a year stack one row per calendar year." export=true>
<CalendarHeatmapChart
values=rain
start=(2024, 1, 1)
label="Daily rainfall in millimetres, 2024 and 2025"
format=|v: f64| format!("{v:.1} mm")
/>
</ChartFrame>
</div>
}
}
/// A small deterministic random source (xorshift), so server and browser draw the same data.
#[allow(clippy::cast_precision_loss, reason = "a 53-bit fraction is exact")]
fn noise(seed: u64) -> impl FnMut() -> f64 {
let mut state = seed;
move || {
state ^= state << 13;
state ^= state >> 7;
state ^= state << 17;
(state >> 11) as f64 / (1u64 << 53) as f64
}
}use dioxus::prelude::*;
use hydroxy_dioxus::calendar_heatmap_chart::CalendarHeatmapChart;
use hydroxy_dioxus::chart_frame::ChartFrame;
#[component]
pub fn CalendarHeatmapChartDemo() -> Element {
// A year of commits from 29 Oct 2025: busy weekdays, quiet weekends, a two-week break at Christmas.
let mut next = noise(7);
let commits: Vec<f64> = (0..365)
.map(|d: u32| {
let weekend = (d + 2) % 7 >= 5;
let holiday = (57..71).contains(&d);
let busy = if weekend || holiday { 0.6 } else { 6.0 };
(busy * next() * 2.0).floor()
})
.collect();
// Two years of daily rainfall: wet winters, dry summers, many dry days.
let mut next = noise(23);
let rain: Vec<f64> = (0..731)
.map(|d: u32| {
let winter = 1.0 + 0.6 * (f64::from(d) / 365.25 * std::f64::consts::TAU).cos();
if next() < 0.45 { 0.0 } else { (winter * 9.0 * next().powi(2) * 10.0).round() / 10.0 }
})
.collect();
rsx! {
div { style: "display: grid; gap: var(--space-10);",
ChartFrame {
title: "Commits",
description: "Commits per day over the last year. Hover a day, or focus the calendar and use the arrow keys.",
CalendarHeatmapChart { values: commits, start: (2025, 10, 29), label: "Commits per day, 29 Oct 2025 to 28 Oct 2026" }
}
ChartFrame {
title: "Daily rainfall",
description: "Millimetres per day. Spans over a year stack one row per calendar year.",
export: true,
CalendarHeatmapChart {
values: rain,
start: (2024, 1, 1),
label: "Daily rainfall in millimetres, 2024 and 2025",
format: move |v: f64| format!("{v:.1} mm"),
}
}
}
}
}
/// A small deterministic random source (xorshift), so every render draws the same data.
#[allow(clippy::cast_precision_loss, reason = "a 53-bit fraction is exact")]
fn noise(seed: u64) -> impl FnMut() -> f64 {
let mut state = seed;
move || {
state ^= state << 13;
state ^= state >> 7;
state ^= state << 17;
(state >> 11) as f64 / (1u64 << 53) as f64
}
}
Anatomy
| Component | data-part | Renders |
|---|---|---|
CalendarHeatmapChart | root | figure with a screen-reader table of every day |
| block | One grid of week columns: the whole span, or one calendar year |
| year | The year above each block when the span is split |
| month | Month names over the week each month starts in |
| weekday | Mon, Wed and Fri down the left |
| cell | One per day, shaded from zero (or the lowest value) to the highest |
| tooltip | The date and value, above the day |
| scale | The colour ramp with its lowest and highest values |
Keyboard
| Key | Does |
|---|---|
ArrowUp / ArrowDown | Previous or next day |
ArrowLeft / ArrowRight | Same weekday a week earlier or later |
Home / End | First or last day |
Escape | Hide the tooltip |
Props
| Prop | Type | Notes |
|---|---|---|
values | Vec<f64> | Required. One value per day from start; NaN is a day with no data |
start | (i64, u32, u32) | Required. The first day as (year, month, day) |
label | String | Required. What the chart shows; the accessible name |
format | Fn(f64) -> String | Formats the tooltip, scale and table |
Events
| Prop | Type | Notes |
|---|---|---|
on_hover | Callback<Option<Datum>> | The mark under the pointer or keyboard focus changes, or is left. Fires only on a change |
on_select | Callback<Datum> | Click, tap or Enter on a mark |