How we read Westgate Hill Primary Academy
last read 14 Aug 2026, 16:42 UTC · took 57.4s · 46 dates across 3 school years
Nobody types these dates in. A program finds whatever the school publishes its term dates on and reads it. This page is the working out: the files we downloaded, and every date we got out of them. Open the same file and you can check us.
Find the page
saved for next timeWe start at the school's website and follow it to whatever it publishes term dates on, in this case a file on westgatehill.laidlawschoolstrust.co.uk. That address is saved, so every later check goes straight there.
Download it
sha-2564 files came back. We fingerprint the contents (ecda152866…f882cdab2e). If the fingerprint matches last time's, the school hasn't changed anything and we stop here.
Read it
57.4sThis school publishes its year as a colour-coded chart rather than a list of dates, so a model reads it the way you would — square by square, working out from the key what each colour means. 1 other file was read and produced nothing useful.
Work out the dates
plain codeOrdinary code takes it from here, pairing those sentences into terms and filling in the holidays between them. It also checks the year adds up: if the dates leave too few school days, we throw the whole read away rather than publish it.
Save it
one copyThe dates get written down once. The school's page, your calendar feed and this trace all read that same copy, so they can't disagree with each other.
Where it came from
what we downloaded, and what we actually used- westgatehill.laidlawschoolstrust.co.uk/464/term-dates-1not used · 0 dates
We read this one and found no term dates in it.
- ll-westgatehill.reactfiles.co.uk/uploads/asset_image/2_1068.jpgused · 16 dates
We read 16 dates out of this one.
- ll-westgatehill.reactfiles.co.uk/uploads/asset_image/2_1069.jpgused · 16 dates
We read 16 dates out of this one.
- ll-westgatehill.reactfiles.co.uk/uploads/asset_image/2_934.pngused · 14 dates
We read 14 dates out of this one.
Every date we read off the chart
the file itself is linked above- Autumn Term1 Sept – 24 Oct
- October Half Term27 Oct – 31 Oct
- Autumn Term3 Nov – 19 Dec
- Christmas Holiday22 Dec – 2 Jan
- Spring Term5 Jan – 13 Feb
- February Half Term16 Feb – 20 Feb
- Spring Term23 Feb – 2 Apr
- Easter Holiday3 Apr – 17 Apr
- Summer Term20 Apr – 1 May
- Bank Holiday4 May
- Summer Term5 May – 22 May
- May Half Term25 May – 29 May
- Summer Term1 Jun – 17 Jul
- Summer Holiday20 Jul – 31 Aug
- INSET Day1 Sept
- Autumn Term2 Sept – 23 Oct
- October Half Term26 Oct – 30 Oct
- Autumn Term2 Nov – 18 Dec
- Christmas Holiday21 Dec – 1 Jan
- INSET Day4 Jan
- Spring Term5 Jan – 12 Feb
- February Half Term15 Feb – 19 Feb
- Spring Term22 Feb – 25 Mar
- Easter Holiday26 Mar – 9 Apr
- Summer Term12 Apr – 30 Apr
- Bank Holiday3 May
- Summer Term4 May – 28 May
- May Half Term31 May – 4 Jun
- Summer Term7 Jun – 16 Jul
- Summer Holiday19 Jul – 31 Aug
- Holiday1 Sept – 3 Sept
- Autumn Term6 Sept – 21 Oct
- INSET Day22 Oct
- October Half Term25 Oct – 29 Oct
- Autumn Term1 Nov – 17 Dec
- Christmas Holiday20 Dec – 3 Jan
- Spring Term4 Jan – 11 Feb
- February Half Term14 Feb – 18 Feb
- Spring Term21 Feb – 7 Apr
- Easter Holiday10 Apr – 21 Apr
- Summer Term24 Apr – 28 Apr
- Bank Holiday1 May
- Summer Term2 May – 26 May
- May Half Term29 May – 2 Jun
- Summer Term5 Jun – 21 Jul
- Summer Holiday24 Jul – 31 Aug
A chart states its dates in colour, not in words, so there is nothing to quote back at you. What we can show is every date we took off it — open the file above and the two should agree square for square.
What we saved
the single copy the school page and your calendar both readThis run
- fingerprint
- 7b14ee657f…8561800641
- saved at
- 25 Aug 2026, 20:43 UTC
- run signature
- 708498f340…da75455acc
- dates published
- 33
- last confirmed
- 14 August 2026
Why your calendar doesn't fill up with duplicates
Each event gets an ID built from who said it, what kind of day it is, and when it starts. Read the school again tomorrow and the same day comes out with the same ID, so your calendar updates the entry it already has rather than adding a second one.
# same inputs, same ID, every time sha256(owner | kind | start)[:24] → a4384bdd…f1763a2c@termsync.co.uk