{
  "meta": {
    "title": "Family Halloween around Zoetermeer",
    "checkedAt": "20 October 2026",
    "window": {
      "start": "2026-10-21",
      "end": "2026-11-03"
    },
    "priceComparison": {
      "adults": 2,
      "children": 3
    },
    "origin": "Zoetermeer",
    "travelMode": "public transport",
    "shortlist": [
      "geertje-pumpkin-hunt",
      "boterwaag-halloween-kids",
      "legoland-brick-or-treat"
    ],
    "privacy": "No tracking. Saved outings remain in this browser."
  },
  "events": [
    {
      "id": "geertje-pumpkin-hunt",
      "title": "Pumpkin hunt at ’t Geertje",
      "venue": "Boerderij ’t Geertje",
      "city": "Zoeterwoude",
      "category": "farm",
      "summary": "Find animal pictures hidden in pumpkins around a working farm.",
      "fitReason": "Gentle, flexible and unusually inexpensive for three children.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-26",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-27",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-28",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-29",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-30",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-21, 10-22, 10-23, 10-24, 10-25, 10-26, 10-27, 10-28, 10-29, 10-30, 10-31 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": 5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€5 per hunt for up to four children; no additional adult activity ticket stated.",
        "kind": "published-base-price"
      },
      "duration": "Allow 45–90 minutes for the hunt, or 2–3 hours with farm play (estimate).",
      "transitMinutesEstimate": null,
      "routingNotes": "Venue advises bus 400 from Zoetermeer to Stompwijk/Leidschendam, then approximately 30 minutes walking. This is not a doorstep-OV outing; cycling may be more practical.",
      "address": "Geerweg 7, 2381 LT Zoeterwoude",
      "coordinates": {
        "lat": 52.09436838,
        "lng": 4.50526363
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Geerweg%207%2C%202381%20LT%20Zoeterwoude",
      "availability": "Advertised; live inventory not checked. No reservation made.",
      "bookingUrl": "https://hetgeertje.nl/activiteiten/activiteiten-op-het-erf/",
      "officialUrl": "https://hetgeertje.nl/activiteiten/activiteiten-op-het-erf/",
      "photoUrl": null,
      "photoPageUrl": "https://hetgeertje.nl/activiteiten/activiteiten-op-het-erf/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": 4.2,
        "count": 99,
        "scope": "venue",
        "sourceUrl": "https://www.tripadvisor.com/Attraction_Review-g3641155-d2586713-Reviews-Boerderij_t_Geertje-Zoeterwoude_South_Holland_Province.html",
        "note": "Tripadvisor venue snapshot, checked Oct 20. Historical reviews mixed: positive farm visits but several Apr–Jun 2025 reviewers raise crowding/animal-welfare concerns. These are visitor opinions, not independently verified findings; not reviews of the 2026 Halloween activity."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://hetgeertje.nl/activiteiten/activiteiten-op-het-erf/",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        },
        {
          "label": "Halloweenstad 2026 programme",
          "url": "https://www.halloweenstad.nl/kopie-van-wat-is-halloweenstad",
          "checkedAt": "2026-10-20",
          "supports": "Hunt confirmed through Oct 31, 10:30–17:00"
        },
        {
          "label": "Venue route",
          "url": "https://hetgeertje.nl/informatie/routebeschrijving/",
          "checkedAt": "2026-10-20",
          "supports": "Address and bus 400 +30 minute walk"
        },
        {
          "label": "Indexed announcement; direct page unavailable",
          "url": "https://hetgeertje.nl/activiteiten/agenda/popoenspeurtocht/",
          "checkedAt": "2026-10-20",
          "supports": "Oct 19,2026 indexed text: hunt through Nov 12, €5/up to 4 children. Extension needs reconfirmation."
        },
        {
          "label": "Working venue practical information",
          "url": "https://hetgeertje.nl/informatie/routebeschrijving/",
          "checkedAt": "2026-10-20",
          "supports": "Address and travel information"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Geerweg+7%2C+2381+LT+Zoeterwoude&fq=type%3Aadres&rows=3&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Geerweg 7, 2381LT Zoeterwoude. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Sunday opens 10:30; farm otherwise opens 10:00, but Halloweenstad advertises the hunt from 10:30.",
        "Official search index has an Oct 19 announcement extending to Nov 12, but that URL now returns 404. Nov 1–3 extension not treated as fully confirmed."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Geerweg 7, 2381LT Zoeterwoude. This verifies the public address, not the event entrance.",
      "shortlistLabel": "Low-cost farm outing",
      "pickSummary": "A shared pumpkin hunt for €5. Allow a 30-minute walk from the bus stop; best for an unhurried day.",
      "ageNote": null
    },
    {
      "id": "geertje-pumpkin-craft",
      "title": "Paint or carve a Halloween pumpkin",
      "venue": "Boerderij ’t Geertje",
      "city": "Zoeterwoude",
      "category": "craft",
      "summary": "Choose and decorate a pumpkin in the goat barn.",
      "fitReason": "Painting offers a gentler option for younger children; adults should handle cutting tools.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "14:00",
          "end": "16:00",
          "label": "Conservative afternoon window; live recurring page also lists 11:00–12:00.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "11:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "11:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-28",
          "start": "14:00",
          "end": "16:00",
          "label": "Conservative afternoon window; live recurring page also lists 11:00–12:00.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "11:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-11-01",
          "start": "11:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-21, 10-24, 10-25, 10-28, 10-31, 11-01 2026",
      "price": {
        "adult": null,
        "child": 7.5,
        "family5": 22.5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "From €7.50 per participant; from €22.50 for three children decorating, assuming accompanying adults do not make their own.",
        "kind": "from"
      },
      "duration": "Allow 45–90 minutes (estimate).",
      "transitMinutesEstimate": null,
      "routingNotes": "Venue advises bus 400 from Zoetermeer to Stompwijk/Leidschendam, then approximately 30 minutes walking. This is not a doorstep-OV outing; cycling may be more practical.",
      "address": "Geerweg 7, 2381 LT Zoeterwoude",
      "coordinates": {
        "lat": 52.09436838,
        "lng": 4.50526363
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Geerweg%207%2C%202381%20LT%20Zoeterwoude",
      "availability": "Walk-in activity; no reservation required in the indexed event listing.",
      "bookingUrl": "https://hetgeertje.nl/activiteiten/activiteiten-op-het-erf/",
      "officialUrl": "https://hetgeertje.nl/activiteiten/activiteiten-op-het-erf/",
      "photoUrl": null,
      "photoPageUrl": "https://hetgeertje.nl/activiteiten/activiteiten-op-het-erf/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": 4.2,
        "count": 99,
        "scope": "venue",
        "sourceUrl": "https://www.tripadvisor.com/Attraction_Review-g3641155-d2586713-Reviews-Boerderij_t_Geertje-Zoeterwoude_South_Holland_Province.html",
        "note": "Tripadvisor venue snapshot, checked Oct 20. Historical reviews mixed: positive farm visits but several Apr–Jun 2025 reviewers raise crowding/animal-welfare concerns. These are visitor opinions, not independently verified findings; not reviews of the 2026 Halloween activity."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://hetgeertje.nl/activiteiten/activiteiten-op-het-erf/",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        },
        {
          "label": "Official indexed 2026 craft dates",
          "url": "https://hetgeertje.nl/activiteiten/agenda/pompoen-beschilderen-en-uitsnijden/",
          "checkedAt": "2026-10-20",
          "supports": "Oct 21/24/25/28/31 and Nov 1; from €7.50,11–16"
        },
        {
          "label": "Official updated indexed craft schedule",
          "url": "https://hetgeertje.nl/activiteiten/agenda/pompoen-beschilderen-en-uitsnijden-2/",
          "checkedAt": "2026-10-20",
          "supports": "Additional autumn-break days; direct page unavailable"
        },
        {
          "label": "Working venue practical information",
          "url": "https://hetgeertje.nl/informatie/routebeschrijving/",
          "checkedAt": "2026-10-20",
          "supports": "Address and travel information"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Geerweg+7%2C+2381+LT+Zoeterwoude&fq=type%3Aadres&rows=3&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Geerweg 7, 2381LT Zoeterwoude. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Dates are supported by official indexed 2026 event pages; individual event URLs intermittently return 404.",
        "Live recurring page lists Wednesday sessions 11:00–12:00 and 14:00–16:00; date-specific indexed listing says 11:00–16:00. Card uses conservative 14:00–16:00 window.",
        "An updated indexed listing also offers Oct 22/23 and Oct 30 14–16, but those extra dates need reconfirmation."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Geerweg 7, 2381LT Zoeterwoude. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "geertje-halloween-photo",
      "title": "Halloween photo with a friendly witch",
      "venue": "Boerderij ’t Geertje",
      "city": "Zoeterwoude",
      "category": "photo",
      "summary": "A dress-up photo studio with costume pieces and a print to take home.",
      "fitReason": "Friendly-witch framing rather than a scare maze.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-24",
          "start": "11:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "11:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-24, 10-25 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": 3.5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€3.50 per printed photo; one shared print costs €3.50, three separate prints €10.50.",
        "kind": "one-shared-print"
      },
      "duration": "Allow 10–20 minutes plus queue (estimate).",
      "transitMinutesEstimate": null,
      "routingNotes": "Venue advises bus 400 from Zoetermeer to Stompwijk/Leidschendam, then approximately 30 minutes walking. This is not a doorstep-OV outing; cycling may be more practical.",
      "address": "Geerweg 7, 2381 LT Zoeterwoude",
      "coordinates": {
        "lat": 52.09436838,
        "lng": 4.50526363
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Geerweg%207%2C%202381%20LT%20Zoeterwoude",
      "availability": "Explicitly walk-in; reservation unnecessary.",
      "bookingUrl": "https://hetgeertje.nl/activiteiten/agenda/halloween-foto/",
      "officialUrl": "https://hetgeertje.nl/activiteiten/agenda/halloween-foto/",
      "photoUrl": null,
      "photoPageUrl": "https://hetgeertje.nl/activiteiten/agenda/halloween-foto/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": 4.2,
        "count": 99,
        "scope": "venue",
        "sourceUrl": "https://www.tripadvisor.com/Attraction_Review-g3641155-d2586713-Reviews-Boerderij_t_Geertje-Zoeterwoude_South_Holland_Province.html",
        "note": "Tripadvisor venue snapshot, checked Oct 20. Historical reviews mixed: positive farm visits but several Apr–Jun 2025 reviewers raise crowding/animal-welfare concerns. These are visitor opinions, not independently verified findings; not reviews of the 2026 Halloween activity."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://hetgeertje.nl/activiteiten/agenda/halloween-foto/",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        },
        {
          "label": "Sunday photo session",
          "url": "https://hetgeertje.nl/activiteiten/agenda/halloween-foto-2/",
          "checkedAt": "2026-10-20",
          "supports": "Oct 25,2026;11–16; €3.50/print"
        },
        {
          "label": "Working venue practical information",
          "url": "https://hetgeertje.nl/informatie/routebeschrijving/",
          "checkedAt": "2026-10-20",
          "supports": "Address and travel information"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Geerweg+7%2C+2381+LT+Zoeterwoude&fq=type%3Aadres&rows=3&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Geerweg 7, 2381LT Zoeterwoude. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Geerweg 7, 2381LT Zoeterwoude. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "funzone-delft",
      "title": "FunZone Delft Halloween evening",
      "venue": "FunZone Delft",
      "city": "Delft",
      "category": "indoor play",
      "summary": "Día de los Muertos-themed hunts, costume competition and a disco.",
      "fitReason": "Published child tickets cover ages 1–14.",
      "ageMin": 1,
      "ageMax": 14,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-30",
          "start": "18:00",
          "end": "21:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-30 2026",
      "price": {
        "adult": 0,
        "child": 14.5,
        "family5": 43.5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Children €14.50; accompanying adults free. Three children + two adults = €43.50, before any unlisted booking fee.",
        "kind": "published-base-price"
      },
      "duration": "3-hour event.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Leeuwenstein 18, 2627 AM Delft",
      "coordinates": {
        "lat": 52.00036298,
        "lng": 4.36140982
      },
      "mapUrl": "https://maps.app.goo.gl/CtYsXa1X4BKsmeUa7",
      "availability": "Booking link active; exact remaining stock not checked. Advance booking includes a goodiebag.",
      "bookingUrl": "https://www.funzone.nl/locaties/delft/",
      "officialUrl": "https://www.funzone.nl/halloween/",
      "photoUrl": null,
      "photoPageUrl": "https://www.funzone.nl/halloween/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [
        {
          "label": "Official Delft Facebook",
          "url": "https://www.facebook.com/funzonedelft/"
        },
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/funzone_nl"
        }
      ],
      "review": {
        "rating": 4,
        "count": 9,
        "scope": "venue",
        "sourceUrl": "https://www.fijnuit.nl/2271/avontura-delft",
        "note": "Venue reviews, not Halloween 2026. Latest displayed Feb 18,2026 praises a staff member; older reviews include both praise and ventilation/supervision complaints. Review sample is small."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://www.funzone.nl/halloween/",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        },
        {
          "label": "Official venue page",
          "url": "https://www.funzone.nl/locaties/delft/",
          "checkedAt": "2026-10-20",
          "supports": "Address, route, free adult access,2026 Halloween promotion"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Leeuwenstein+18%2C+2627+AM+Delft&fq=type%3Aadres&rows=3&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Leeuwenstein 18, 2627AM Delft. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "coordinateSource": "Google Maps place coordinates from the venue’s official route link.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Leeuwenstein 18, 2627AM Delft. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "funzone-barendrecht",
      "title": "FunZone Barendrecht Halloween evening",
      "venue": "FunZone Barendrecht",
      "city": "Barendrecht",
      "category": "indoor play",
      "summary": "Crafts, temporary tattoos, dancing with Okke and an optional haunted house.",
      "fitReason": "Child tickets cover ages 1–12; haunted-house intensity is not specified.",
      "ageMin": 1,
      "ageMax": 12,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-30",
          "start": "19:00",
          "end": "20:45",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-30 2026",
      "price": {
        "adult": 0,
        "child": 11.5,
        "family5": 34.5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€11.50 per child; accompanying adults free: €34.50 family.",
        "kind": "published-base-price"
      },
      "duration": "1 hour 45 minutes.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Bijdorp-Oost 2, 2992 LA Barendrecht",
      "coordinates": {
        "lat": 51.86278007,
        "lng": 4.52180549
      },
      "mapUrl": "https://maps.app.goo.gl/yVsxAVN4Tk8ouYrj8",
      "availability": "Advertised; live inventory not checked. No reservation made.",
      "bookingUrl": "https://www.funzone.nl/halloween/",
      "officialUrl": "https://www.funzone.nl/halloween/",
      "photoUrl": null,
      "photoPageUrl": "https://www.funzone.nl/halloween/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/@funzonebarendrecht/"
        },
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/funzone_nl"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://www.funzone.nl/halloween/",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        },
        {
          "label": "Official venue address",
          "url": "https://www.funzone.nl/locaties/barendrecht/",
          "checkedAt": "2026-10-20",
          "supports": "Address and coordinates"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Bijdorp-Oost+2%2C+2992+LA+Barendrecht&fq=type%3Aadres&rows=3&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Bijdorp-Oost 2, 2992LA Barendrecht. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Late finish and longer public-transport journey than Delft.",
        "Haunted house optional; first assess each child’s comfort."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "coordinateSource": "Official venue EntertainmentBusiness JSON-LD.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Bijdorp-Oost 2, 2992LA Barendrecht. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "boterwaag-halloween-kids",
      "title": "Halloween Kids at the Grote Markt",
      "venue": "Boterwaag / Grote Markt",
      "city": "Den Haag",
      "category": "community",
      "summary": "Pumpkin carving and a costume gala in a daytime children’s celebration.",
      "fitReason": "Daytime children’s programme, easy to combine with city-centre outing.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "12:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-31 2026",
      "price": {
        "adult": 0,
        "child": 0,
        "family5": 0,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Entry free. Costume-wearing children offered a free pancake; pumpkin/material charges are not separately stated.",
        "kind": "free-entry"
      },
      "duration": "Drop in for 1–2 hours; event window 4 hours (visit estimate).",
      "transitMinutesEstimate": null,
      "routingNotes": "Central Den Haag. Rail or RandstadRail plus walk/tram; verify same-day route.",
      "address": "Grote Markt 8 A, 2511 BG Den Haag",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Grote%20Markt%208A%2C%202511%20BG%20Den%20Haag",
      "availability": "Free event; page offers optional table reservations rather than an event ticket.",
      "bookingUrl": "https://gmdh.nl/evenement/halloween-kids/",
      "officialUrl": "https://gmdh.nl/evenement/halloween-kids/",
      "photoUrl": null,
      "photoPageUrl": "https://gmdh.nl/evenement/halloween-kids/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://gmdh.nl/evenement/halloween-kids/",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Official page says Oct 31. One aggregator incorrectly says Oct 30.",
        "Free pancake is not verified gluten-free/dietary."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "shortlistLabel": "Free city Halloween",
      "ageNote": null,
      "photoAsset": "assets/boterwaag-venue.jpg",
      "photoAlt": "Venue photograph of the historic Boterwaag façade on Prinsegracht in The Hague, not a 2026 Halloween event photograph.",
      "photoReuseBasis": "Wikimedia Commons file page identifies the photographer as Pvt pauline, states own work, and offers CC BY-SA 3.0. Existing Wikimedia server-generated 960px-wide JPEG preview downloaded without local edits. Credit and link to the license required; adaptations must use the same or a compatible license.",
      "photoCredit": "Pvt pauline / Wikimedia Commons · CC BY-SA 3.0 · Venue photograph; not a 2026 event photo. Resized Wikimedia preview; no local edits.",
      "photoSourceUrl": "https://commons.wikimedia.org/wiki/File:Prinsegracht_Den_Haag_024.JPG",
      "photoLicenseUrl": "https://creativecommons.org/licenses/by-sa/3.0/"
    },
    {
      "id": "theresiastraat-hunt",
      "title": "The mystery of the rattling windows",
      "venue": "Theresiastraat shopping street",
      "city": "Den Haag",
      "category": "treasure hunt",
      "summary": "Find twenty letters in shop windows, solve a Dutch puzzle and collect a reward.",
      "fitReason": "Gentle daytime activity; adults can help early readers.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "11:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-31 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "No participation charge stated; reward includes a gift and ice-cream voucher. Confirm if budgeting strictly €0.",
        "kind": "unknown"
      },
      "duration": "Allow 60–90 minutes (estimate).",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Café Locus, De Sillestraat 1, Den Haag",
      "coordinates": {
        "lat": 52.08705041,
        "lng": 4.33911132
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Caf%C3%A9%20Locus%2C%20De%20Sillestraat%201%2C%20Den%20Haag",
      "availability": "Collect or download the worksheet from Oct 27; no booking mentioned.",
      "bookingUrl": "https://www.theresiastraat.nl/halloween/",
      "officialUrl": "https://www.theresiastraat.nl/halloween/",
      "photoUrl": null,
      "photoPageUrl": "https://www.theresiastraat.nl/halloween/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Organizer hunt page",
          "url": "https://www.theresiastraat.nl/halloween/",
          "checkedAt": "2026-10-20",
          "supports": "Date/time,20 letters, worksheet and finish address"
        },
        {
          "label": "Neighborhood 2026 calendar",
          "url": "https://bezuidenhout.nl/activiteit/halloweenspeurtocht-in-de-trees/",
          "checkedAt": "2026-10-20",
          "supports": "Explicit 2026 date"
        },
        {
          "label": "Organizer announcement, Oct 19, 2026",
          "url": "https://www.theresiastraat.nl/halloween-speurtocht-los-jij-het-mysterie-van-de-rammelende-ramen-op/",
          "checkedAt": "2026-10-20",
          "supports": "Primary-source 2026 confirmation: Oct 31, 11:00–17:00, letter hunt in shop windows."
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Caf%C3%A9+Locus%2C+De+Sillestraat+1%2C+Den+Haag&fq=type%3Aadres&rows=3&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for De Sillestraat 1, 2593TS 's-Gravenhage. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Dutch story/puzzle; ice-cream suitability not verified."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for De Sillestraat 1, 2593TS 's-Gravenhage. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "shaun-filmhuis",
      "title": "Shaun the Sheep: Halloween adventure",
      "venue": "Filmhuis Den Haag",
      "city": "Den Haag",
      "category": "film",
      "summary": "A dialogue-free Halloween story with Shaun, pumpkins and a mysterious beast.",
      "fitReason": "Venue recommends ages 5–12; no Dutch dialogue barrier.",
      "ageMin": 5,
      "ageMax": 12,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "12:45",
          "end": "14:10",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "12:45",
          "end": "14:10",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "12:45",
          "end": "14:10",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "12:45",
          "end": "14:10",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "12:45",
          "end": "14:10",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-21, 10-22, 10-23, 10-24, 10-25 2026",
      "price": {
        "adult": null,
        "child": 8,
        "family5": 46,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Standard published tariffs imply €46 weekdays (€11×2 +€8×3) or €49 weekends (€12.50×2 +€8×3). Festival-specific checkout price not verified.",
        "kind": "estimate-from-standard-tariffs"
      },
      "duration": "Film 85 minutes; allow extra time for arrival/trailers.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Spui 191, 2511 BN Den Haag",
      "coordinates": {
        "lat": 52.07626238,
        "lng": 4.31709467
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Spui%20191%2C%202511%20BN%20Den%20Haag",
      "availability": "Performance links advertised for each day; actual seats not checked.",
      "bookingUrl": "https://filmhuisdenhaag.nl/films/shaun-het-schaap-het-beest-van-de-boerderij-de-betovering",
      "officialUrl": "https://filmhuisdenhaag.nl/films/shaun-het-schaap-het-beest-van-de-boerderij-de-betovering",
      "photoUrl": null,
      "photoPageUrl": "https://filmhuisdenhaag.nl/films/shaun-het-schaap-het-beest-van-de-boerderij-de-betovering",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [
        {
          "label": "Official Instagram",
          "url": "https://instagram.com/filmhuisdenhaag"
        },
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/filmhuisdenhaag"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://filmhuisdenhaag.nl/films/shaun-het-schaap-het-beest-van-de-boerderij-de-betovering",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        },
        {
          "label": "Festival age recommendation",
          "url": "https://filmhuisdenhaag.nl/betovering",
          "checkedAt": "2026-10-20",
          "supports": "Suitable 5–12"
        },
        {
          "label": "Published cinema tariffs",
          "url": "https://filmhuisdenhaag.nl/tickets-en-prijzen",
          "checkedAt": "2026-10-20",
          "supports": "€8 child film; €11 weekday daytime adult; €12.50 standard"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Spui+191%2C+2511+BN+Den+Haag&fq=type%3Aadres&rows=3&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Spui 191, 2511BN 's-Gravenhage. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "The 14:10 end is calculated from 85-minute film, not a published exit time.",
        "Pricing is a tariff calculation, not a quote from the festival checkout."
      ],
      "language": "No dialogue or subtitles.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Spui 191, 2511BN 's-Gravenhage. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "legoland-brick-or-treat",
      "title": "Brick or Treat",
      "venue": "LEGOLAND Discovery Centre Scheveningen",
      "city": "Den Haag / Scheveningen",
      "category": "indoor attraction",
      "summary": "Halloween LEGO builds, glow-in-the-dark creativity and The Great Monster Chase 4 D film.",
      "fitReason": "Officially all ages; easy to skip a film if a child dislikes effects.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-26",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-27",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-28",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-29",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-30",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-11-01",
          "start": "",
          "end": "",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-21, 10-22, 10-23, 10-24, 10-25, 10-26, 10-27, 10-28, 10-29, 10-30, 10-31, 11-01 2026",
      "price": {
        "adult": 21,
        "child": 21,
        "family5": 105,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "From €21 each; family of 5 from €105. Date/time-dependent actual price and capacity require booking-calendar check.",
        "kind": "from"
      },
      "duration": "2.5-hour admission slot.",
      "transitMinutesEstimate": null,
      "routingNotes": "Rail/RandstadRail to Den Haag then local transport to Scheveningen. Official route page has an apparently stale tram-work notice (MondayOct 14); use live HTM/9292 instead.",
      "address": "Strandweg 13 K, 2586 JK Den Haag",
      "coordinates": {
        "lat": 52.1130807,
        "lng": 4.28015448
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Strandweg%2013K%2C%202586%20JK%20Den%20Haag",
      "availability": "Online booking advertised; no specific slot inventory checked.",
      "bookingUrl": "https://www.legolanddiscoverycentre.com/scheveningen/wat-is-er-te-doen/evenementen/halloween/",
      "officialUrl": "https://www.legolanddiscoverycentre.com/scheveningen/wat-is-er-te-doen/evenementen/halloween/",
      "photoUrl": null,
      "photoPageUrl": "https://www.legolanddiscoverycentre.com/scheveningen/wat-is-er-te-doen/evenementen/halloween/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/legolanddiscoverycentre_nl/"
        },
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/legolanddiscoverycentreNL/"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official Halloween 2026 page",
          "url": "https://www.legolanddiscoverycentre.com/scheveningen/wat-is-er-te-doen/evenementen/halloween/",
          "checkedAt": "2026-10-20",
          "supports": "Dates, all ages,2.5-hour slot, from €21"
        },
        {
          "label": "Official address",
          "url": "https://www.legolanddiscoverycentre.com/scheveningen/plan-je-bezoek/praktische-informatie/routebeschrijving-parkeren/",
          "checkedAt": "2026-10-20",
          "supports": "Strandweg 13 K; boulevard is car-free"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Strandweg+13+K%2C+2586+JK+Den+Haag&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Strandweg 13K, 2586JK 's-Gravenhage. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Exact 2026 evidence is the official page’s Halloween 2026 artwork/metadata; body gives Oct 10–Nov 1.",
        "Do not confuse with outdoor LEGOLAND theme parks or overseas Brick-or-Treat reviews."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Strandweg 13K, 2586JK 's-Gravenhage. This verifies the public address, not the event entrance.",
      "shortlistLabel": "Indoor, book-ahead choice",
      "ageNote": null,
      "photoAsset": "assets/legoland-venue.jpg",
      "photoAlt": "Venue photograph of the LEGO giraffe and entrance to LEGOLAND Discovery Centre Scheveningen, taken on 2 March 2024, not a 2026 Halloween event photograph.",
      "photoReuseBasis": "Wikimedia Commons file page identifies the photographer as TravelPhotosNL, states own work, and explicitly licenses the photo CC BY-SA 4.0. Existing Wikimedia server-generated 960px-wide JPEG preview downloaded without local edits. Credit and link to the license required; adaptations must use the same or a compatible license.",
      "photoCredit": "TravelPhotosNL / Wikimedia Commons · CC BY-SA 4.0 · Venue photograph, 2 March 2024; not a 2026 event photo. Resized Wikimedia preview; no local edits.",
      "photoSourceUrl": "https://commons.wikimedia.org/wiki/File:Lego_giraffe_in_front_of_the_LEGOLAND_Discovery_Centre_Scheveningen,_The_Netherlands.jpg",
      "photoLicenseUrl": "https://creativecommons.org/licenses/by-sa/4.0/"
    },
    {
      "id": "drievliet-duistere-dagen",
      "title": "Duistere Dagen at Drievliet",
      "venue": "Familiepark Drievliet",
      "city": "Den Haag",
      "category": "theme park",
      "summary": "A Halloween-decorated family park with character shows and optional extra spooky activities.",
      "fitReason": "The optional Trick-or-Treat experience has advisory age 5+; assess each child’s tolerance.",
      "ageMin": 5,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "10:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "10:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "10:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "10:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "10:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "10:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-11-01",
          "start": "10:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-21, 10-22, 10-23, 10-24, 10-25, 10-31, 11-01 2026",
      "price": {
        "adult": 24.5,
        "child": 24.5,
        "family5": 122.5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Admission from €24.50 each (€122.50 family); flexible/regular €33.50 each (€167.50). Optional Trick-or-Treat mission €5.95 per person, including accompanying adults: €29.75 for five, making admission + mission from €152.25. Pumpkin-carving/face-paint combo price not verified. No parking needed.",
        "optionalExtras": {
          "trickOrTreatEach": 5.95,
          "trickOrTreatFamily5": 29.75,
          "family5WithMissionFrom": 152.25
        },
        "kind": "from"
      },
      "duration": "Allow 4–6 hours (estimate); park window 7 hours.",
      "transitMinutesEstimate": null,
      "routingNotes": "Official route: tram 15 from Den Haag CS/HS to Laan van ’s-Gravenmade. Verify current timetable.",
      "address": "Laan van ’s-Gravenmade, 2495 BD Den Haag",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Laan%20van%20%E2%80%99s-Gravenmade%2C%202495%20BD%20Den%20Haag",
      "availability": "Regular admission advertised. Extra Trick-or-Treat tickets sold on arrival, limited capacity; first come, first served.",
      "bookingUrl": "https://www.drievliet.nl/duisteredagen",
      "officialUrl": "https://www.drievliet.nl/duisteredagen",
      "photoUrl": null,
      "photoPageUrl": "https://www.drievliet.nl/duisteredagen",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/familieparkdrievliet/"
        },
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/drievliet"
        },
        {
          "label": "Official YouTube",
          "url": "https://www.youtube.com/@Drievliet-Familiepark"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": "https://forum.pretpark.club/d/4208-verslag-drievliet-duistere-dagen-2025",
        "note": "Historical Halloween event report, Oct 7,2025. Invited visitor found the family event enjoyable, but observed small children nervous about the dark/smoky teacups. Not an independent 2026 review."
      },
      "sources": [
        {
          "label": "Official 2026 programme",
          "url": "https://www.drievliet.nl/duisteredagen",
          "checkedAt": "2026-10-20",
          "supports": "Exact event days; 5+ mission advisory; €5.95 mission ticket including accompanying adults; costume policy"
        },
        {
          "label": "Official ticket tariffs",
          "url": "https://www.drievliet.nl/bezoek-plannen/tickets",
          "checkedAt": "2026-10-20",
          "supports": "€24.50 from-price; €33.50 flexible;90 cm payment threshold"
        },
        {
          "label": "Official route",
          "url": "https://www.drievliet.nl/info/adres-route",
          "checkedAt": "2026-10-20",
          "supports": "Address and tram 15"
        },
        {
          "label": "Official Kinderboekenweek offer, published Sep 30, 2026",
          "url": "https://www.drievliet.nl/news-detail/kinderboekenweek",
          "checkedAt": "2026-10-20",
          "supports": "One child through age 12 free per 2026 gift book with one full-price paying companion; same-order tickets; Oct 3–Nov 8."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Adults 12+ may not enter in Halloween costume/makeup; children under 12 may.",
        "Extra bus/maze experience requires a ticket for accompanying adults too.",
        "Theme-park ride heights still apply; Spookrijders requires 1.30 m.",
        "A city calendar auto-expands every day; official event dates do NOT include Oct 26–30 or Nov 2–3."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "savingsNote": "If you already have Terug naar de Schoenenboom, the 2026 Kinderboekenweek gift: one child through age 12 enters free per copy with one paying companion at the regular cashier tariff. Tickets must be ordered together, the book shown on arrival, and discounts cannot combine. Do not assume this beats date-priced tickets without comparing; no ownership assumed.",
      "ageNote": "Age 5+ is advisory for the optional mission, not a minimum park age. Ride-height restrictions still apply.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20"
    },
    {
      "id": "pijnacker-trick-or-treat",
      "title": "Pijnacker-Zuid neighborhood Trick or Treat",
      "venue": "Participating streets in Pijnacker-Zuid",
      "city": "Pijnacker",
      "category": "trick or treat",
      "summary": "A self-led neighborhood route using the organizer’s participating-house map.",
      "fitReason": "Primary-school children; house map includes age bands, allowing a gentler route.",
      "ageMin": null,
      "ageMax": 12,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "17:30",
          "end": "19:30",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-31 2026",
      "price": {
        "adult": 0,
        "child": 0,
        "family5": 0,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Free.",
        "kind": "free-entry"
      },
      "duration": "Choose your own route within the 2-hour window.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Pijnacker-Zuid, Pijnacker",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://pijnacker-zuid.nl/evenementen/halloween-2026",
      "availability": "No child registration needed.",
      "bookingUrl": "https://pijnacker-zuid.nl/evenementen/halloween-2026",
      "officialUrl": "https://pijnacker-zuid.nl/evenementen/halloween-2026",
      "photoUrl": null,
      "photoPageUrl": "https://pijnacker-zuid.nl/evenementen/halloween-2026",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://pijnacker-zuid.nl/evenementen/halloween-2026",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Primarily intended for children living in Pijnacker, not an invitation to bus in visitors. Confirm outside-neighborhood participation before treating as a destination.",
        "Private-house pins should stay on organizer’s map rather than be republished in your guide."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "local-community-eligibility-unconfirmed",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "tanthof-trick-or-treat",
      "title": "Tanthof-Oost Halloween route",
      "venue": "Jumbo Dasstraat map collection / Tanthof-Oost",
      "city": "Delft",
      "category": "trick or treat",
      "summary": "Neighborhood houses and scare zones replace the former organized woodland scare walk.",
      "fitReason": "Family trick-or-treat option, but no age grading of scare zones published.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "18:30",
          "end": "21:30",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-31 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": 5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€5 per group route map; free with Delftpas.",
        "kind": "published-base-price"
      },
      "duration": "Flexible, within 3-hour window.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Jumbo, Dasstraat, Delft",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Jumbo%2C%20Dasstraat%2C%20Delft",
      "availability": "Buy route map Oct 31 17:30–19:00 outside Jumbo Dasstraat.",
      "bookingUrl": "https://www.angstwoudsebos.nl/",
      "officialUrl": "https://www.angstwoudsebos.nl/",
      "photoUrl": null,
      "photoPageUrl": "https://www.angstwoudsebos.nl/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://www.angstwoudsebos.nl/",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Official organizer date is Oct 31, not Oct 24 on one automated listing.",
        "Young children can avoid scare zones, but no reliable scare-rating map was available.",
        "Use official map-sales location/times rather than older neighborhood article."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "zoetermeer-trick-or-treat",
      "title": "Spooky Trail Hunt Trick or Treat",
      "venue": "Stadshart Zoetermeer",
      "city": "Zoetermeer",
      "category": "trick or treat",
      "summary": "Costume hunt and treat in the town centre.",
      "fitReason": "Published target ages 6–11. Admission for children under six is not explicitly established.",
      "ageMin": 6,
      "ageMax": 11,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-23",
          "start": "17:30",
          "end": "19:30",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-28",
          "start": "14:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-23, 10-28 2026",
      "price": {
        "adult": 0,
        "child": 0,
        "family5": 0,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Free, registration required.",
        "kind": "free-entry"
      },
      "duration": "2-hour programme window.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Stadshart Zoetermeer",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Stadshart%20Zoetermeer",
      "availability": "Official registration links exist. FAQ mentions waitlist if sold out; this is not proof current dates are sold out.",
      "bookingUrl": "https://www.halloweenstad.nl/trickortreat",
      "officialUrl": "https://www.halloweenstad.nl/trickortreat",
      "photoUrl": null,
      "photoPageUrl": "https://www.halloweenstad.nl/trickortreat",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/halloweenstad/"
        },
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/HalloweenstadZoetermeer/"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://www.halloweenstad.nl/trickortreat",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Admission for children under six is not confirmed by the published age band.",
        "Entry card required; availability not confirmed from inaccessible Eventbrite destination."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "six-plus-guidance",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": "Published target age band 6–11; source does not explicitly establish a hard under-6 admission prohibition.",
      "userAgePreference": "User expressly permits 6+ options in recommendations; retain clear guidance rather than excluding.",
      "ageRuleLabel": "6+ target / advice · check admission"
    },
    {
      "id": "zoetermeer-lantaarn",
      "title": "De Vervloekte Lantaarn",
      "venue": "Daily Plaza, Stadshart",
      "city": "Zoetermeer",
      "category": "haunted house",
      "summary": "A magical haunted-house story inside Daily Plaza.",
      "fitReason": "Published family age guidance is 6+; assess each child’s sensitivity.",
      "ageMin": 6,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-24",
          "start": "12:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "12:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "12:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-28",
          "start": "13:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-30",
          "start": "16:00",
          "end": "21:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-24, 10-25, 10-31, 10-28, 10-30 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Entry free with a Stadshart receipt showing at least €10 spending. How many people one receipt covers is not stated.",
        "kind": "unknown"
      },
      "duration": "Experience length unpublished; allow queue time.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Theaterplein 11, 2711 EK Zoetermeer",
      "coordinates": {
        "lat": 52.0617185,
        "lng": 4.492687
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Theaterplein%2011%2C%202711%20EK%20Zoetermeer",
      "availability": "Advertised; live inventory not checked. No reservation made.",
      "bookingUrl": "https://www.halloweenstad.nl/spookhuis",
      "officialUrl": "https://www.halloweenstad.nl/spookhuis",
      "photoUrl": null,
      "photoPageUrl": "https://www.halloweenstad.nl/spookhuis",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/halloweenstad/"
        },
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/HalloweenstadZoetermeer/"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://www.halloweenstad.nl/spookhuis",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Minimum purchase is a condition, so not an unconditional free outing.",
        "Official detailed times override generic listings that show noon for every day."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "coordinateSource": "Official Halloweenstad event embedded location data.",
      "fitAllThree": null,
      "recommended": true,
      "status": "six-plus-guidance",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": "Published 6+ family guidance; no explicit hard admission rule for accompanied children under six was located.",
      "userAgePreference": "User expressly permits 6+ options in recommendations; retain clear guidance rather than excluding.",
      "ageRuleLabel": "6+ target / advice · check admission"
    },
    {
      "id": "buitenbeest-griezelfeest",
      "title": "Griezelfeest at Het Buitenbeest",
      "venue": "Speelboerderij Het Buitenbeest",
      "city": "Zoetermeer",
      "category": "farm Halloween",
      "summary": "An evening of spooky games, trail and haunted house.",
      "fitReason": "Published target ages 6–12. Admission for children under six remains unconfirmed.",
      "ageMin": 6,
      "ageMax": 12,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-23",
          "start": "19:00",
          "end": "21:30",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "19:00",
          "end": "21:30",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-23, 10-24 2026",
      "price": {
        "adult": 3,
        "child": 3,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€3 per entry ticket; €15 for 5 if all admitted. Eligible ZoetermeerPas children free.",
        "kind": "unknown"
      },
      "duration": "2.5-hour event.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Belvédèrebos 270, Zoetermeer",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Belv%C3%A9d%C3%A8rebos%20270%2C%20Zoetermeer",
      "availability": "Register at the farm. Oct 23 deadline Oct 22 14:30; Oct 24 deadline Oct 24 15:30. Full=full.",
      "bookingUrl": "https://www.halloweenstad.nl/kopie-van-wat-is-halloweenstad",
      "officialUrl": "https://www.halloweenstad.nl/kopie-van-wat-is-halloweenstad",
      "photoUrl": null,
      "photoPageUrl": "https://www.halloweenstad.nl/kopie-van-wat-is-halloweenstad",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://www.halloweenstad.nl/kopie-van-wat-is-halloweenstad",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Admission for children under six is not established.",
        "Included food/drinks not verified dietary.",
        "€15 is hypothetical total, not an eligible-family booking quote."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "six-plus-guidance",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": "Organizer describes the event for ages 6–12 and parents/carers; no explicit exception or hard refusal rule for children under six was found.",
      "userAgePreference": "User expressly permits 6+ options in recommendations; retain clear guidance rather than excluding.",
      "ageRuleLabel": "6+ target / advice · check admission"
    },
    {
      "id": "zoetermeer-facepaint",
      "title": "Halloween face painting at Daily Plaza",
      "venue": "Daily Plaza, Stadshart",
      "city": "Zoetermeer",
      "category": "face painting",
      "summary": "A local alternative for children without a Trick-or-Treat entry card.",
      "fitReason": "No minimum age published; ask at arrival about skin suitability.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-23",
          "start": "18:00",
          "end": "20:30",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-28",
          "start": "13:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-23, 10-28 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Price not stated.",
        "kind": "unknown"
      },
      "duration": "Short activity; queue unknown.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Theaterplein 11, 2711 EK Zoetermeer",
      "coordinates": {
        "lat": 52.0617185,
        "lng": 4.492687
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Theaterplein%2011%2C%202711%20EK%20Zoetermeer",
      "availability": "FAQ suggests face painting as an alternative when no hunt card is available; booking not specified.",
      "bookingUrl": "https://www.halloweenstad.nl/informatie",
      "officialUrl": "https://www.halloweenstad.nl/informatie",
      "photoUrl": null,
      "photoPageUrl": "https://www.halloweenstad.nl/informatie",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/halloweenstad/"
        },
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/HalloweenstadZoetermeer/"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://www.halloweenstad.nl/informatie",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        }
      ],
      "confidence": "confirmed",
      "caveats": [],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "zoetermeer-halloweenkermis",
      "title": "Halloween fair at SilverDome",
      "venue": "SilverDome parking area",
      "city": "Zoetermeer",
      "category": "fair",
      "summary": "Halloween-themed rides and stalls; daytime family sessions are the better fit.",
      "fitReason": "Choose daytime rides; avoid SaturdayOct 24 Fright Night from 20:00.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "14:00",
          "end": "23:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "14:00",
          "end": "23:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "14:00",
          "end": "23:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "14:00",
          "end": "23:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "14:00",
          "end": "23:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-21, 10-22, 10-23, 10-24, 10-25 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Pay per ride; total depends on rides. Local report announces Oct 22€2/ride; that is not unlimited admission.",
        "kind": "unknown"
      },
      "duration": "Allow 1–2 hours (estimate).",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Van der Hagenstraat 20, 2722 NT Zoetermeer",
      "coordinates": {
        "lat": 52.05279849,
        "lng": 4.5210329
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Van%20der%20Hagenstraat%2020%2C%202722%20NT%20Zoetermeer",
      "availability": "Advertised; live inventory not checked. No reservation made.",
      "bookingUrl": "https://www.halloweenstad.nl/kopie-van-wat-is-halloweenstad",
      "officialUrl": "https://www.halloweenstad.nl/kopie-van-wat-is-halloweenstad",
      "photoUrl": null,
      "photoPageUrl": "https://www.halloweenstad.nl/kopie-van-wat-is-halloweenstad",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official Halloweenstad programme",
          "url": "https://www.halloweenstad.nl/kopie-van-wat-is-halloweenstad",
          "checkedAt": "2026-10-20",
          "supports": "Dates, hours, venue"
        },
        {
          "label": "Local reporting Oct 16,2026",
          "url": "https://www.zoetermeeractief.nl/nieuwshome/actueel/31263-halloweenkermis-met-spannende-attracties",
          "checkedAt": "2026-10-20",
          "supports": "Children’s afternoonOct 21, €2 dayOct 22, FrightNightOct 24"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Van+der+Hagenstraat+20%2C+2722+NT+Zoetermeer&fq=type%3Aadres&rows=3&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Van der Hagenstraat 20, 2722NT Zoetermeer. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Rides have individual height rules.",
        "Oct 21 children’s afternoon and Oct 22€2 promotion from current local reporting, not separately verified organizer poster."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Van der Hagenstraat 20, 2722NT Zoetermeer. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "woonhart-griezelmiddag",
      "title": "Woonhart spooky afternoon",
      "venue": "Woonhart Zoetermeer",
      "city": "Zoetermeer",
      "category": "community",
      "summary": "Costume-character hunt, face painting and colouring a treat cup.",
      "fitReason": "Daytime children’s activities; character intensity not graded.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-24",
          "start": "12:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-24 2026",
      "price": {
        "adult": 0,
        "child": 0,
        "family5": 0,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Free according to current local reporting.",
        "kind": "free-entry"
      },
      "duration": "1–2 hours suggested; character hunt ends 15:00.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Woonhart, Zoetermeer",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Woonhart%2C%20Zoetermeer",
      "availability": "Advertised; live inventory not checked. No reservation made.",
      "bookingUrl": "https://nederlandsthrillerfestival.nl/programma/",
      "officialUrl": "https://nederlandsthrillerfestival.nl/programma/",
      "photoUrl": null,
      "photoPageUrl": "https://nederlandsthrillerfestival.nl/programma/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [
        {
          "label": "Official Woonhart Instagram",
          "url": "https://www.instagram.com/woonhart_zoetermeer/"
        },
        {
          "label": "Official Woonhart Facebook",
          "url": "https://www.facebook.com/Woonhart/"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official festival 2026 agenda",
          "url": "https://nederlandsthrillerfestival.nl/programma/",
          "checkedAt": "2026-10-20",
          "supports": "Oct 24 start 12:00"
        },
        {
          "label": "Current local report Oct 16,2026",
          "url": "https://www.zoetermeeractief.nl/nieuwshome/actueel/31255-spannende-week-nederlands-thrillerfestival-in-zoetermeer",
          "checkedAt": "2026-10-20",
          "supports": "Free,12–16, programme detail"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Detailed official event page failed to load; programme and price corroborated by local report."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "woonhart-storytime",
      "title": "Storytime at Woonhart",
      "venue": "Woonhart Zoetermeer",
      "city": "Zoetermeer",
      "category": "storytelling",
      "summary": "A reading session in the Thrillerfestival programme.",
      "fitReason": "Potential low-key local option, but ages and story title not published.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "12:30",
          "end": "",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-21 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Price not published.",
        "kind": "unknown"
      },
      "duration": "Not published",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Woonhart, Zoetermeer",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Woonhart%2C%20Zoetermeer",
      "availability": "Advertised; live inventory not checked. No reservation made.",
      "bookingUrl": "https://nederlandsthrillerfestival.nl/programma/",
      "officialUrl": "https://nederlandsthrillerfestival.nl/programma/",
      "photoUrl": null,
      "photoPageUrl": "https://nederlandsthrillerfestival.nl/programma/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://nederlandsthrillerfestival.nl/programma/",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Date/start verified; duration, age band, booking and Halloween content not sufficiently detailed."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "paul-van-loon",
      "title": "Paul van Loon and Andere Snuiters",
      "venue": "Poppodium Boerderij",
      "city": "Zoetermeer",
      "category": "show",
      "summary": "Stories and songs with the children’s horror author, followed by signing.",
      "fitReason": "Show recommended for ages 6+. Dutch stories and songs may suit older children best.",
      "ageMin": 6,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-28",
          "start": "15:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-28 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€15 advertised, implying €75 for 5 if all visitors are admitted; booking fees unverified.",
        "kind": "unknown"
      },
      "duration": "1-hour show plus optional signing.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Amerikaweg 145, Zoetermeer",
      "coordinates": {
        "lat": 52.06330913,
        "lng": 4.4692103
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Amerikaweg%20145%2C%20Zoetermeer",
      "availability": "Advertised; live inventory not checked. No reservation made.",
      "bookingUrl": "https://nederlandsthrillerfestival.nl/programma/",
      "officialUrl": "https://nederlandsthrillerfestival.nl/programma/",
      "photoUrl": null,
      "photoPageUrl": "https://nederlandsthrillerfestival.nl/programma/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official festival 2026 agenda",
          "url": "https://nederlandsthrillerfestival.nl/programma/",
          "checkedAt": "2026-10-20",
          "supports": "Oct 28,15:00"
        },
        {
          "label": "Local preview Sep 20,2026",
          "url": "https://www.zoetermeeractief.nl/nieuwshome/actueel/31068-optreden-paul-van-loon-andere-snuiters-in-de-boerderij",
          "checkedAt": "2026-10-20",
          "supports": "6+,1-hour duration"
        },
        {
          "label": "Local current programme",
          "url": "https://www.zoetermeeractief.nl/nieuwshome/actueel/31255-spannende-week-nederlands-thrillerfestival-in-zoetermeer",
          "checkedAt": "2026-10-20",
          "supports": "€15"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Amerikaweg+145%2C+Zoetermeer&fq=type%3Aadres&rows=3&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Amerikaweg 145, 2717AV Zoetermeer. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "15:00 show time, not 14:00 as some listing aggregators say.",
        "Official venue site blocks bot read; price and duration corroborated by current local report.",
        "Published 6+ recommendation; strict under-six admission policy not verified."
      ],
      "language": "Dutch stories and songs; significant language dependence.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "six-plus-guidance",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": "6+ is reported as recommended age, not a verified strict admission cutoff.",
      "userAgePreference": "User expressly permits 6+ options in recommendations; retain clear guidance rather than excluding.",
      "coordinateNote": "PDOK/BAG address point for Amerikaweg 145, 2717AV Zoetermeer. This verifies the public address, not the event entrance.",
      "ageRuleLabel": "6+ target / advice · check admission"
    },
    {
      "id": "delft-mama-sold-out",
      "title": "Delft MaMa Halloween party — sold out",
      "venue": "Kindergarden Delft Zuid",
      "city": "Delft",
      "category": "community party",
      "summary": "A deliberately non-scary party for younger children with crafts and games.",
      "fitReason": "Excellent age fit, but not currently bookable.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "14:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-31 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Organizer ticket range €4.20–€11.20; exact adult/child combination not verified. Sold out.",
        "kind": "unknown"
      },
      "duration": "2.5 hours.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Vulcanusweg 267, 2624 AV Delft",
      "coordinates": {
        "lat": 51.99561724,
        "lng": 4.36095573
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Vulcanusweg%20267%2C%202624%20AV%20Delft",
      "availability": "SOLD OUT in organizer Eventbrite page and structured data checkedOct 20.",
      "bookingUrl": "https://www.eventbrite.nl/e/2026-delft-mama-annual-halloween-party-tickets-2001773590696",
      "officialUrl": "https://www.eventbrite.nl/e/2026-delft-mama-annual-halloween-party-tickets-2001773590696",
      "photoUrl": null,
      "photoPageUrl": "https://www.eventbrite.nl/e/2026-delft-mama-annual-halloween-party-tickets-2001773590696",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://www.eventbrite.nl/e/2026-delft-mama-annual-halloween-party-tickets-2001773590696",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Vulcanusweg+267%2C+2624+AV+Delft&fq=type%3Aadres&rows=3&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Vulcanusweg 267, 2624AV Delft. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Do not treat an older Eventbrite search result saying almost full as current availability.",
        "Shared homemade snacks are not a verified dietary option."
      ],
      "language": "English/international-family event.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "coordinateSource": "Organizer Eventbrite location metadata.",
      "fitAllThree": null,
      "recommended": false,
      "status": "sold-out",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Vulcanusweg 267, 2624AV Delft. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "tanthof-farm-halloween",
      "title": "Halloween at Kinderboerderij Tanthof",
      "venue": "Kinderboerderij Tanthof",
      "city": "Delft",
      "category": "farm Halloween",
      "summary": "A neighborhood newspaper announces a decorated farm/playground Halloween afternoon.",
      "fitReason": "Potential family daytime option; precise age/scare guidance unavailable.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-25",
          "start": "12:00",
          "end": "16:00",
          "label": "",
          "status": "unconfirmed"
        }
      ],
      "dateText": "10-25 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Price not confirmed.",
        "kind": "unknown"
      },
      "duration": "Not published",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Kinderboerderij Tanthof, Delft",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Kinderboerderij%20Tanthof%2C%20Delft",
      "availability": "Advertised; live inventory not checked. No reservation made.",
      "bookingUrl": "https://www.kinderboerderijtanthof.nl/",
      "officialUrl": "https://www.kinderboerderijtanthof.nl/",
      "photoUrl": null,
      "photoPageUrl": "https://www.kinderboerderijtanthof.nl/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Neighborhood report Oct 19,2026",
          "url": "https://www.tegektanthof.nl/agenda/2026/10/25/halloween-op-drie-plekken-in-tanthof--16209",
          "checkedAt": "2026-10-20",
          "supports": "Oct 25 12–16; details still expected"
        }
      ],
      "confidence": "unconfirmed",
      "caveats": [
        "Current 2026 local newspaper confirms plan, but organizer site could not be read.",
        "Do not inherit 2025 prices/programme. Confirm before traveling."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "hague-english-halloween-tour",
      "title": "English Halloween Kids Tour",
      "venue": "Haagse Harry statue / Grote Markt",
      "city": "Den Haag",
      "category": "guided walk",
      "summary": "A ghost-story walk designed as the children’s edition of a city history tour.",
      "fitReason": "English-friendly, but stories include violent history; no minimum child age stated.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "16:00",
          "end": "18:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-31 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Official organizer says free/tip-based. Tip budget discretionary. Other automated listings show paid tariffs; organizer page takes priority pending booking check.",
        "kind": "unknown"
      },
      "duration": "2 hours.",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Haagse Harry statue, Grote Markt, Den Haag",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Haagse%20Harry%20statue%2C%20Grote%20Markt%2C%20Den%20Haag",
      "availability": "Registration requested to guarantee a place; no actual inventory checked.",
      "bookingUrl": "https://elswheretours.com/blog/halloween-free-tour",
      "officialUrl": "https://elswheretours.com/blog/halloween-free-tour",
      "photoUrl": null,
      "photoPageUrl": "https://elswheretours.com/blog/halloween-free-tour",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://elswheretours.com/blog/halloween-free-tour",
          "checkedAt": "2026-10-20",
          "supports": "Event date and programme"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "No clear age recommendation for younger children; ask before booking if they are sensitive to stories.",
        "A two-hour walking commitment may be long for younger children.",
        "Adults-only 20:00 edition is 16+, not this 16:00 family tour."
      ],
      "language": "English.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "hague-halloween-kermis",
      "title": "Halloween Kids Kermis XXL",
      "venue": "Leyweg",
      "city": "Den Haag",
      "category": "fair",
      "summary": "Small Halloween fair in the Leyweg shopping area.",
      "fitReason": "Kid-oriented fair, but ride ages/heights and scare actors not confirmed.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Scare assessment is an editorial inference from the advertised activities, not a safety guarantee.",
      "dates": [
        {
          "date": "2026-10-28",
          "start": "12:00",
          "end": "21:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-29",
          "start": "12:00",
          "end": "21:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-30",
          "start": "12:00",
          "end": "21:30",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "11:00",
          "end": "21:30",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-11-01",
          "start": "12:00",
          "end": "19:30",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "10-28, 10-29, 10-30, 10-31, 11-01 2026",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Per-ride prices not published; no reliable family total.",
        "kind": "unknown"
      },
      "duration": "Allow 1–2 hours (estimate).",
      "transitMinutesEstimate": null,
      "routingNotes": "Plan from your own Zoetermeer departure point; times and fares not live-checked. NS rail passes do not establish free local bus/tram travel.",
      "address": "Leyweg, Den Haag",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Leyweg%2C%20Den%20Haag",
      "availability": "Advertised; live inventory not checked. No reservation made.",
      "bookingUrl": "https://kermis.nu/kermis/1942/den-haag/halloween-kids-kermis-xxl/",
      "officialUrl": "https://kermis.nu/kermis/1942/den-haag/halloween-kids-kermis-xxl/",
      "photoUrl": null,
      "photoPageUrl": "https://kermis.nu/kermis/1942/den-haag/halloween-kids-kermis-xxl/",
      "photoRights": "No reuse licence verified. Link to source gallery; do not copy photos into a published guide.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review located."
      },
      "sources": [
        {
          "label": "Specialist fair calendar",
          "url": "https://kermis.nu/kermis/1942/den-haag/halloween-kids-kermis-xxl/",
          "checkedAt": "2026-10-20",
          "supports": "2026 dates/hours; cites official notice"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Kermis.nu says dates verified by official notice, but organizer programme/price not found."
      ],
      "language": "Dutch information; activity language not explicitly specified.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Official organizer profiles where shown; not a verified event-specific 2026 post unless explicitly labeled.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "plaswijck_day",
      "title": "Plaswijckpark daytime Halloween",
      "venue": "Plaswijckpark daytime Halloween",
      "city": "Rotterdam",
      "category": "theme-park",
      "summary": "Broom crafts, witch house/dragon egg and animal-area scavenger hunt amid Halloween decoration.",
      "fitReason": "No numerical minimum is published for the daytime programme; assess suitability for each child.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Low to moderate; decorated witch house could unsettle sensitive children. This is not the actors’ scare evening.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "10:00",
          "end": "16:30",
          "label": "Extra activities 11:00–16:00; stop 15:30 Oct 21–22.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "10:00",
          "end": "16:30",
          "label": "Extra activities 11:00–16:00; stop 15:30 Oct 21–22.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "10:00",
          "end": "18:00",
          "label": "Extra activities 11:00–16:00; stop 15:30 Oct 21–22.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "10:00",
          "end": "18:00",
          "label": "Extra activities 11:00–16:00; stop 15:30 Oct 21–22.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "10:00",
          "end": "18:00",
          "label": "Extra activities 11:00–16:00; stop 15:30 Oct 21–22.",
          "status": "confirmed"
        }
      ],
      "dateText": "21 Oct, 22 Oct, 23 Oct, 24 Oct, 25 Oct 2026. 10:00–18:00; Oct 21–22 park closes 16:30. Extra activities 11:00–16:00, stopping 15:30 on Oct 21–22.",
      "price": {
        "adult": 17.75,
        "child": 17.75,
        "family5": 88.75,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "calculation: 5 × €17.75; all children are over age 2; mandatory fees: No extra fee published on pages read; booking flow not priced through checkout. Food/travel extra.",
        "kind": "published-base-price"
      },
      "duration": "4–6 hours (estimate)",
      "transitMinutesEstimate": null,
      "routingNotes": "Travel time from Zoetermeer not verified. Map is an address search; park has indoor play areas.",
      "address": "Ringdijk 20, 3054 KW Rotterdam",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Ringdijk%2020%2C%203054%20KW%20Rotterdam",
      "availability": "Ordinary admission sold online and at the gate; no date-specific live capacity verified.",
      "bookingUrl": "https://www.plaswijckpark.nl/tickets/",
      "officialUrl": "https://www.plaswijckpark.nl/boehoe-ben-jij-klaar-voor-een-spookachtige-herfstvakantie/",
      "photoUrl": null,
      "photoPageUrl": "https://www.plaswijckpark.nl/boehoe-ben-jij-klaar-voor-een-spookachtige-herfstvakantie/",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/plaswijckpark/"
        },
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/plaswijckpark/"
        },
        {
          "label": "Official TikTok",
          "url": "https://www.tiktok.com/@plaswijckpark"
        }
      ],
      "review": {
        "rating": 4.5,
        "count": 6511,
        "scope": "venue",
        "sourceUrl": "https://wanderlog.com/place/details/9483",
        "note": "Venue, not Halloween event; Google 4.5/5, 6,511 reviews; Tripadvisor 4.4/5, 258 reviews; Checked 2026-10-20; search crawl was last month, not live Google inventory; No independent 2026 Halloween review verified; official 2025 aftermovie is promotional, not a review."
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://www.plaswijckpark.nl/boehoe-ben-jij-klaar-voor-een-spookachtige-herfstvakantie/",
          "checkedAt": "2026-10-20",
          "supports": "Published 2026-09-21"
        },
        {
          "label": "Official source",
          "url": "https://www.plaswijckpark.nl/openingstijden/",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://www.plaswijckpark.nl/tickets/",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Decorations last through October, but the extra daytime activity programme is confirmed only through Oct 25. Indoor play areas offer a weather fallback.",
        "Low to moderate; decorated witch house could unsettle sensitive children. This is not the actors’ scare evening.",
        "No extra fee published on pages read; booking flow not priced through checkout. Food/travel extra."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "plaswijck_gentle_evening",
      "title": "Plaswijckpark gentle Griezelavond",
      "venue": "Plaswijckpark gentle Griezelavond",
      "city": "Rotterdam",
      "category": "theme-park",
      "summary": "Five themed haunted houses with pumpkin scare ratings, crafts and a dark-garden hunt.",
      "fitReason": "Oct 21 is advertised for the whole family.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Choose Wednesday: actors do not deliberately frighten visitors. Thursday Oct 22 is scarier and advised 7+, so not the shared-family recommendation.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "18:00",
          "end": "21:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "21 Oct 2026. 18:00–21:00",
      "price": {
        "adult": 12,
        "child": 12,
        "family5": 60,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "calculation: 5 × €12 October price; €10 September early-bird has expired; mandatory fees: No extra fee published; checkout fees not independently confirmed.",
        "kind": "published-base-price"
      },
      "duration": "3-hour event window",
      "transitMinutesEstimate": null,
      "routingNotes": "Travel time from Zoetermeer not verified. Daytime guests must leave by 16:30 and re-enter at 18:00.",
      "address": "Ringdijk 20, 3054 KW Rotterdam",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Ringdijk%2020%2C%203054%20KW%20Rotterdam",
      "availability": "Online-only tickets; limited numbers. Public booking page accessible, but live remaining inventory was not exposed. Date changes are not allowed.",
      "bookingUrl": "https://reserveren.plaswijckpark.nl/Tickets/Home/Bestellen",
      "officialUrl": "https://www.plaswijckpark.nl/event/griezelavonden/",
      "photoUrl": null,
      "photoPageUrl": "https://www.plaswijckpark.nl/event/griezelavonden/",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/plaswijckpark/"
        },
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/plaswijckpark/"
        },
        {
          "label": "Official TikTok",
          "url": "https://www.tiktok.com/@plaswijckpark"
        }
      ],
      "review": {
        "rating": 4.5,
        "count": 6511,
        "scope": "venue",
        "sourceUrl": "https://wanderlog.com/place/details/9483",
        "note": "Venue, not Halloween event; Google 4.5/5, 6,511 reviews; Tripadvisor 4.4/5, 258 reviews; Checked 2026-10-20; search crawl was last month, not live Google inventory; No independent 2026 Halloween review verified; official 2025 aftermovie is promotional, not a review."
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://www.plaswijckpark.nl/event/griezelavonden/",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://www.plaswijckpark.nl/alleen-in-de-maand-september-early-bird-tickets-voor-de-griezelavonden/",
          "checkedAt": "2026-10-20",
          "supports": "2026-09-01"
        },
        {
          "label": "Official source",
          "url": "https://reserveren.plaswijckpark.nl/Tickets/Home/Bestellen",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Daytime guests must leave at 16:30; nobody may remain in the park until the evening reopening. Outdoors plus indoor attractions.",
        "Choose Wednesday: actors do not deliberately frighten visitors. Thursday Oct 22 is scarier and advised 7+, so not the shared-family recommendation.",
        "No extra fee published; checkout fees not independently confirmed."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "novotel_maas",
      "title": "De Vloek van de Maas at Novotel Brainpark",
      "venue": "De Vloek van de Maas at Novotel Brainpark",
      "city": "Rotterdam",
      "category": "indoor",
      "summary": "Indoor puzzles, trick-or-treat, crafts, face paint, and a film with free popcorn.",
      "fitReason": "Official registration: ages 0–2 free, 3–12 €2; accompanied children of all ages welcome.",
      "ageMin": 0,
      "ageMax": 12,
      "scareLevel": "gentle",
      "scareNote": "Low; family activity format. No published jump-scare guarantee.",
      "dates": [
        {
          "date": "2026-10-30",
          "start": "16:00",
          "end": "19:00",
          "label": "Activities end 19:00; optional film starts 19:00. Book a half-hour arrival slot.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "16:00",
          "end": "19:00",
          "label": "Activities end 19:00; optional film starts 19:00. Book a half-hour arrival slot.",
          "status": "confirmed"
        }
      ],
      "dateText": "30 Oct, 31 Oct 2026. Activities 16:00–19:00; Monsters & Co film starts 19:00. Half-hour arrival slots from 16:00 through 18:30.",
      "price": {
        "adult": 0,
        "child": 2,
        "family5": 6,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "child 3 12: 2; accompanying adult: 0; calculation: 3 children × €2 + 2 free accompanying adults; payment: PIN only, paid on arrival; optional buffet family: 123.3; optional admission plus buffet: 129.3; buffet calculation: 2 × €36.66 adults + 3 × €16.66 children; drinks extra; mandatory fees: No separate booking fee stated. Hotel parking is paid; event parking rate unverified.",
        "kind": "published-base-price"
      },
      "duration": "1.5–3 hours activities; allow extra time if staying for the film; film ending not published (estimate)",
      "transitMinutesEstimate": null,
      "routingNotes": "Travel time from Zoetermeer not verified. Indoor venue; paid hotel parking, event parking tariff unknown.",
      "address": "K.P. van der Mandelelaan 150, 3062 MB Rotterdam",
      "coordinates": {
        "lat": 51.91516529,
        "lng": 4.52957463
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=K.P.%20van%20der%20Mandelelaan%20150%2C%203062%20MB%20Rotterdam",
      "availability": "Registration required via official public form. Both dates/arrival choices appeared, without a sold-out notice; this does not confirm five spaces. Dinner must be prebooked.",
      "bookingUrl": "https://docs.google.com/forms/d/e/1FAIpQLSctgm4B3nx75fQRk-DtDEpncOxuTJPLqcwMN63RLcfZcW7LhA/viewform",
      "officialUrl": "https://docs.google.com/forms/d/e/1FAIpQLSctgm4B3nx75fQRk-DtDEpncOxuTJPLqcwMN63RLcfZcW7LhA/viewform",
      "photoUrl": null,
      "photoPageUrl": "https://docs.google.com/forms/d/e/1FAIpQLSctgm4B3nx75fQRk-DtDEpncOxuTJPLqcwMN63RLcfZcW7LhA/viewform",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [
        {
          "label": "Official LinkedIn",
          "url": "https://nl.linkedin.com/company/novotelrotterdambrainpark"
        }
      ],
      "review": {
        "rating": 4.5,
        "count": 1728,
        "scope": "venue",
        "sourceUrl": "https://all.accor.com/hotel/1134/index.nl.shtml",
        "note": "Hotel, not Halloween event; ALL guest rating 4.5/5 from 1,728 reviews; Checked 2026-10-20; cached source, not live review feed; No independent Halloween event reviews verified."
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://docs.google.com/forms/d/e/1FAIpQLSctgm4B3nx75fQRk-DtDEpncOxuTJPLqcwMN63RLcfZcW7LhA/viewform",
          "checkedAt": "2026-10-20",
          "supports": "Official registration form linked by hotel promotion; viewed only, not submitted"
        },
        {
          "label": "Official source",
          "url": "https://nl.linkedin.com/company/novotelrotterdambrainpark",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://all.accor.com/hotel/1134/index.nl.shtml",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Secondary source",
          "url": "https://go-kids.nl/rotterdam/agenda/de-vloek-van-de-maas-halloween-bij-novotel-rotterdam-brainpark",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=K.P.+van+der+Mandelelaan+150%2C+3062+MB+Rotterdam&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for K.P. van der Mandelelaan 150, 3062MB Rotterdam. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Rainproof. Official form age pricing takes precedence over a secondary page with a different child age bracket. No personal details entered.",
        "Low; family activity format. No published jump-scare guarantee.",
        "No separate booking fee stated. Hotel parking is paid; event parking rate unverified."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for K.P. van der Mandelelaan 150, 3062MB Rotterdam. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "sir_winston_mini",
      "title": "Mini Monster Party at Sir Winston Fun & Games",
      "venue": "Mini Monster Party at Sir Winston Fun & Games",
      "city": "Schiedam",
      "category": "indoor",
      "summary": "Halloween-themed arcade afternoon, costumes/candy and a top-up bonus.",
      "fitReason": "Explicitly designed for younger children/families; under-12s must be accompanied.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Low; festive arcade rather than a horror maze. Arcade noise/flashing games may matter for sensory-sensitive children.",
      "dates": [
        {
          "date": "2026-10-28",
          "start": "13:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "28 Oct 2026. 13:00–17:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "offer: Top up €25 and receive €25 extra play credit; budget example: 25; budget example label: Optional shared play budget, not a fixed-price family package or unlimited play; mandatory fees: New Playcard fee, if any, was not established; arcade game charges vary. Typical official FAQ price €0.80–€1.80 per game.",
        "kind": "unknown"
      },
      "duration": "1–2 hours; four-hour event window (estimate)",
      "transitMinutesEstimate": null,
      "routingNotes": "Venue is near Schiedam station and Pathé parking; total trip time/parking charge not verified. Other branches include Rijswijk and Ypenburg.",
      "address": "Noorderweg 22B, 3119 XX Schiedam",
      "coordinates": {
        "lat": 51.92344488,
        "lng": 4.40684082
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Noorderweg%2022B%2C%203119%20XX%20Schiedam",
      "availability": "Ordinary walk-ins welcome; reservation needed only for party arrangements. No event admission cap or booked-out status published.",
      "bookingUrl": "https://www.sirwinstonfungames.nl/campagne/minimonsterparty/",
      "officialUrl": "https://www.sirwinstonfungames.nl/campagne/minimonsterparty/",
      "photoUrl": null,
      "photoPageUrl": "https://www.sirwinstonfungames.nl/campagne/minimonsterparty/",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/sirwinstonfungames/"
        },
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/sirwinstonfungames"
        },
        {
          "label": "Official TikTok",
          "url": "https://www.tiktok.com/@sirwinstonfungames"
        },
        {
          "label": "Official YouTube",
          "url": "https://www.youtube.com/@sirwinstonfungames"
        }
      ],
      "review": {
        "rating": 4.5,
        "count": 2,
        "scope": "venue",
        "sourceUrl": "https://www.tripadvisor.nl/Attraction_Review-g1457313-d19431919-Reviews-Sir_Winston_Fun_Games_Schiedam-Schiedam_South_Holland_Province.html",
        "note": "Venue, not Mini Monster Party; 4.5/5 from only 2 reviews; ['2023-02-24', '2020-09-21']; Tiny, old sample; not a reliable current-event rating.; Checked 2026-10-20"
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://www.sirwinstonfungames.nl/campagne/minimonsterparty/",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://www.sirwinstonfungames.nl/locaties/schiedam/",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://www.sirwinstonfungames.nl/veelgestelde-vragen/",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Noorderweg+22B%2C+3119+XX+Schiedam&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Noorderweg 22B, 3119XX Schiedam. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Indoor. Also runs at Rijswijk, Ypenburg and Scheveningen, which may be more convenient from Zoetermeer; do not double count these as different experiences. Parking charges not verified.",
        "Low; festive arcade rather than a horror maze. Arcade noise/flashing games may matter for sensory-sensitive children.",
        "New Playcard fee, if any, was not established; arcade game charges vary. Typical official FAQ price €0.80–€1.80 per game."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Noorderweg 22B, 3119XX Schiedam. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "schiedam_centre",
      "title": "Halloween time-travel hunt in Schiedam Centrum",
      "venue": "Halloween time-travel hunt in Schiedam Centrum",
      "city": "Schiedam",
      "category": "trail",
      "summary": "Stamp-card time-travel puzzle with characters Bep and Tilly and a small oliebol reward.",
      "fitReason": "Pitched to children; no numerical minimum published. Suitability for younger children with parents is an editorial assessment, not an organizer age guarantee.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Low to moderate; costumed characters, no detailed scare policy published.",
      "dates": [
        {
          "date": "2026-10-29",
          "start": "16:00",
          "end": "20:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "29 Oct 2026. 16:00–20:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": 0,
        "mandatoryFees": 0,
        "currency": "EUR",
        "note": "basis: Free according to current local report; organizer describes open street event.",
        "kind": "free"
      },
      "duration": "60–90 minutes within the four-hour window (estimate)",
      "transitMinutesEstimate": null,
      "routingNotes": "Travel time from Zoetermeer not verified. Map link is an address/place search, not a verified event entrance pin.",
      "address": "Start at Korte Dam / Hoogstraat, Schiedam; route towards Koemarkt",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Start%20at%20Korte%20Dam%20/%20Hoogstraat%2C%20Schiedam%3B%20route%20towards%20Koemarkt",
      "availability": "No advance booking mentioned. Participation/reward stocks may be finite.",
      "bookingUrl": "https://halloween.schiedamcentrum.nl/",
      "officialUrl": "https://halloween.schiedamcentrum.nl/",
      "photoUrl": null,
      "photoPageUrl": "https://halloween.schiedamcentrum.nl/",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No independently verified 2026 event reviews found in this research. Do not interpret this as poor quality."
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://halloween.schiedamcentrum.nl/",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://schiedamcentrum.nl/halloween/",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://www.sdam.nl/uitagenda/event/halloween-griezeltocht-2026",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Local news source",
          "url": "https://www.rodi.nl/schiedam/nieuws/121452/halloween-griezeltocht-neemt-kinderen-mee-op-tijdreis-door-schiedam",
          "checkedAt": "2026-10-20",
          "supports": "2026-10-01; free entry"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Outdoor city-centre route. Organizer retrospective photos exist, but are promotional rather than independent reviews.",
        "Low to moderate; costumed characters, no detailed scare policy published."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "liesveld_hunt",
      "title": "Halloween speurtocht at Liesveld",
      "venue": "Halloween speurtocht at Liesveld",
      "city": "Vlaardingen",
      "category": "trail",
      "summary": "Shopping-centre stamp-card hunt, simple spooky tasks, face paint and a sweet reward.",
      "fitReason": "Children/families; no numerical restriction published. Suitability for younger children is inferred from the activity format.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Low to moderate; daytime costumes and friendly tasks, not a documented no-scare event.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "12:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "31 Oct 2026. 12:00–16:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": 0,
        "mandatoryFees": 0,
        "currency": "EUR",
        "note": "basis: Official page says free",
        "kind": "free"
      },
      "duration": "45–90 minutes (estimate)",
      "transitMinutesEstimate": null,
      "routingNotes": "Travel time from Zoetermeer not verified. Map link is an address/place search, not a verified event entrance pin.",
      "address": "Winkelcentrum Liesveld, Vlaardingen; exact collection point not published",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Winkelcentrum%20Liesveld%2C%20Vlaardingen%3B%20exact%20collection%20point%20not%20published",
      "availability": "No booking requirement published; card/reward stock limits not stated.",
      "bookingUrl": "https://www.centrumliesveld.nl/agenda/halloweenspeurtocht/",
      "officialUrl": "https://www.centrumliesveld.nl/agenda/halloweenspeurtocht/",
      "photoUrl": null,
      "photoPageUrl": "https://www.centrumliesveld.nl/agenda/halloweenspeurtocht/",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/winkelcentrumLiesveld"
        },
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/winkelcentrumliesveld/"
        },
        {
          "label": "Official TikTok",
          "url": "https://www.tiktok.com/@winkelcentrum.liesveld"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No independently verified 2026 event reviews found in this research. Do not interpret this as poor quality."
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://www.centrumliesveld.nl/agenda/halloweenspeurtocht/",
          "checkedAt": "2026-10-20",
          "supports": "Published 2026-10-16"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Do not assume fully rainproof: the shopping-centre programme does not state an indoor-only route.",
        "Low to moderate; daytime costumes and friendly tasks, not a documented no-scare event."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "gouda_light_farm",
      "title": "Light at the Farm",
      "venue": "Light at the Farm",
      "city": "Gouda",
      "category": "farm",
      "summary": "An illuminated farm with music, mist and larger-than-life creatures. Seasonal alternative rather than a specifically branded Halloween scare event.",
      "fitReason": "All ages; everyone age 1+ needs a ticket.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Low scare, with darkness/fog/music. Choose the earliest arrival for younger children.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "18:30",
          "end": "21:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "18:30",
          "end": "21:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "18:30",
          "end": "21:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "18:30",
          "end": "21:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "21 Oct, 22 Oct, 23 Oct, 24 Oct 2026. 18:30–21:00; choose an arrival block, then stay until closing.",
      "price": {
        "adult": null,
        "child": null,
        "family5": 24.75,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "per person age 1 plus: 4.95; calculation: 5 × €4.95; mandatory fees: No additional mandatory fee published; checkout total not independently verified.",
        "kind": "published-base-price"
      },
      "duration": "60–90 minutes (estimate)",
      "transitMinutesEstimate": null,
      "routingNotes": "Park at Hugo de Vrieslaan or Bloemendaal shopping centre and allow a 5–10 minute walk. Total trip time from Zoetermeer not verified.",
      "address": "Kinderboerderij De Goudse Hofsteden, Bloemendaalseweg 34a, 2804 AB Gouda",
      "coordinates": {
        "lat": 52.0323071,
        "lng": 4.69631084
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Kinderboerderij%20De%20Goudse%20Hofsteden%2C%20Bloemendaalseweg%2034a%2C%202804%20AB%20Gouda",
      "availability": "Online arrival-block booking. Public booking page accessible but live slot capacity was not exposed.",
      "bookingUrl": "https://booking.leisureking.eu/bm/2dc28e68ad1e937a7b04e50f078ec7b8/assortiment/83023",
      "officialUrl": "https://www.kinderboerderijgouda.nl/activiteiten/light-at-the-farm-20-tot-en-met-24-oktober-2026",
      "photoUrl": null,
      "photoPageUrl": "https://www.kinderboerderijgouda.nl/activiteiten/light-at-the-farm-20-tot-en-met-24-oktober-2026",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/KinderboerderijGouda/"
        },
        {
          "label": "Official YouTube",
          "url": "https://www.youtube.com/user/Kinderboerderijgouda?feature=watch"
        }
      ],
      "review": {
        "rating": 4.6,
        "count": 1101,
        "scope": "venue",
        "sourceUrl": "https://wanderlog.com/place/details/217228",
        "note": "Farm, not Light at the Farm; Google 4.6/5 from 1,101 reviews; Tripadvisor 4.5/5 from 28; Checked 2026-10-20; cached last month; No independent 2026 event review verified."
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://www.kinderboerderijgouda.nl/activiteiten/light-at-the-farm-20-tot-en-met-24-oktober-2026",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://www.kinderboerderijgouda.nl/",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://booking.leisureking.eu/bm/2dc28e68ad1e937a7b04e50f078ec7b8/assortiment/83023",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Kinderboerderij+De+Goudse+Hofsteden%2C+Bloemendaalseweg+34a%2C+2804+AB+Gouda&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Bloemendaalseweg 34a, 2804AB Gouda. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Event also runs Oct 20, outside the requested date window. Use farm closing time 21:00; city tourism footer inconsistently says 21:30. Outdoor, with indoor café. Park at Hugo de Vrieslaan or Bloemendaal shopping centre and allow a 5–10 minute walk.",
        "Low scare, with darkness/fog/music. Choose the earliest arrival for younger children.",
        "No additional mandatory fee published; checkout total not independently verified."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Bloemendaalseweg 34a, 2804AB Gouda. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "gouda_swim",
      "title": "Halloween disco swimming at Groenhovenbad",
      "venue": "Halloween disco swimming at Groenhovenbad",
      "city": "Gouda",
      "category": "swimming",
      "summary": "Music, spooky swimming and paddleboats; optional SUP activity has a swimming-diploma requirement.",
      "fitReason": "Official ages 4–12, subject to swimming-safety rules.",
      "ageMin": 4,
      "ageMax": 12,
      "scareLevel": "gentle",
      "scareNote": "Low horror, but pool safety is the controlling consideration.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "13:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "21 Oct 2026. 13:00–17:00",
      "price": {
        "adult": 6,
        "child": 4.55,
        "family5": 25.65,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "child 4 12: 4.55; adult regular swim: 6; calculation: 3 × €4.55 children + 2 × €6 regular adult swimming; caution: The event publishes child price, not an explicit adult event price. Family total assumes normal adult admission, so is not a confirmed checkout quote.",
        "kind": "estimate"
      },
      "duration": "2 hours, or stay for the four-hour session (estimate)",
      "transitMinutesEstimate": null,
      "routingNotes": "Travel time from Zoetermeer not verified. Map link is an address/place search, not a verified event entrance pin.",
      "address": "Groenhovenbad, Tobbepad 4, 2803 WH Gouda",
      "coordinates": {
        "lat": 52.02357141,
        "lng": 4.68909668
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Groenhovenbad%2C%20Tobbepad%204%2C%202803%20WH%20Gouda",
      "availability": "Public autumn-programme ticket link present; live inventory/walk-in policy not established.",
      "bookingUrl": "https://www.sportpuntgouda.nl/herfstvakantie-2026",
      "officialUrl": "https://www.sportpuntgouda.nl/nieuws/herfstprogramma-2026",
      "photoUrl": null,
      "photoPageUrl": "https://www.sportpuntgouda.nl/nieuws/herfstprogramma-2026",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/sport.gouda/"
        },
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/SPORT.GOUDA/"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "venue",
        "sourceUrl": "https://www.dagjeweg.nl/reviews/7850/Groenhovenbad-Gouda",
        "note": "Pool, not Halloween disco; 17; 2024-08-18; Mixed older reports, including praise for staff and complaints about cleanliness. Not evidence of current Halloween quality.; Checked 2026-10-20"
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://www.sportpuntgouda.nl/nieuws/herfstprogramma-2026",
          "checkedAt": "2026-10-20",
          "supports": "Published 2026-10-05"
        },
        {
          "label": "Official source",
          "url": "https://www.sportpuntgouda.nl/tarieven",
          "checkedAt": "2026-10-20",
          "supports": "Prices effective 2026-09-01"
        },
        {
          "label": "Official source",
          "url": "https://www.sportpuntgouda.nl/huisregels-groenhovenbad",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://www.sportpuntgouda.nl/herfstvakantie-2026",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Groenhovenbad%2C+Tobbepad+4%2C+2803+WH+Gouda&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Tobbepad 4, 2803WH Gouda. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Non-swimmers need armbands; an adult 18+ who swims well must remain in the water within arm’s reach. Maximum two non-swimmers per adult, so two adults can satisfy the published ratio for three children. SUP needs a diploma. Indoor/rainproof.",
        "Low horror, but pool safety is the controlling consideration.",
        "The event publishes child price, not an explicit adult event price. Family total assumes normal adult admission, so is not a confirmed checkout quote."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Tobbepad 4, 2803WH Gouda. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "beestenboel_farm",
      "title": "Halloween at kinderboerderij De Beestenboel",
      "venue": "Halloween at kinderboerderij De Beestenboel",
      "city": "Rozenburg, Rotterdam",
      "category": "farm",
      "summary": "Farm Halloween with cookie decorating and crafts.",
      "fitReason": "Officially for everyone. Children can attend with parents; check any activity-specific rules.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Exact fright level not published; family crafts suggest milder activities, but do not promise no scares.",
      "dates": [
        {
          "date": "2026-10-24",
          "start": "17:30",
          "end": "20:30",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "24 Oct 2026. 17:30–20:30",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "activity card: 3; three child activity cards: 9; caution: €9 covers three activity strip cards only. Adult admission/any other charge not explicitly stated, so not a verified whole-family total.",
        "kind": "unknown"
      },
      "duration": "1–2 hours (estimate)",
      "transitMinutesEstimate": null,
      "routingNotes": "Travel time from Zoetermeer not verified. Map link is an address/place search, not a verified event entrance pin.",
      "address": "Kinderboerderij De Beestenboel, Zandweg 13, 3181 HX Rozenburg",
      "coordinates": {
        "lat": 51.91253104,
        "lng": 4.22866785
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Kinderboerderij%20De%20Beestenboel%2C%20Zandweg%2013%2C%203181%20HX%20Rozenburg",
      "availability": "No reservation requirement stated on official event page; live capacity unknown.",
      "bookingUrl": "https://www.natuurstad.nl/activiteitenkalender/halloween-4",
      "officialUrl": "https://www.natuurstad.nl/activiteitenkalender/halloween-4",
      "photoUrl": null,
      "photoPageUrl": "https://www.natuurstad.nl/activiteitenkalender/halloween-4",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/Natuurstad/"
        },
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/natuurstad"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No independently verified 2026 event reviews found in this research. Do not interpret this as poor quality."
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://www.natuurstad.nl/activiteitenkalender/halloween-4",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Secondary source",
          "url": "https://www.kidsproof.nl/rotterdam/uitje/halloween-kinderboerderijdebeestenboel-rotterdam/",
          "checkedAt": "2026-10-20",
          "supports": "Address cross-check"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Kinderboerderij+De+Beestenboel%2C+Zandweg+13%2C+3181+HX+Rozenburg&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Zandweg 13, 3181HX Rozenburg. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "The later Halloween Zanddijk/Hofjes parade is separately organized and separately registered; do not assume the farm card includes it. Do not confuse this farm with Speelparadijs De Beestenboel in Vlaardingen.",
        "Exact fright level not published; family crafts suggest milder activities, but do not promise no scares.",
        "€9 covers three activity strip cards only. Adult admission/any other charge not explicitly stated, so not a verified whole-family total."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Zandweg 13, 3181HX Rozenburg. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "alexandrium_kidsclub",
      "title": "Alexandrium Kidsclub Halloween",
      "venue": "Alexandrium Kidsclub Halloween",
      "city": "Rotterdam",
      "category": "indoor",
      "summary": "Gentle ghost stories, small tasks, surprises and mascots Alex and Sander in the Kids Area.",
      "fitReason": "Kidsclub for children under 12.",
      "ageMin": 0,
      "ageMax": 11,
      "scareLevel": "gentle",
      "scareNote": "Low; one of the gentlest options.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "13:30",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "21 Oct 2026. 13:30–16:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": 0,
        "mandatoryFees": 0,
        "currency": "EUR",
        "note": "basis: Official event freely accessible; current local coverage confirms free/no advance registration.",
        "kind": "free"
      },
      "duration": "45–90 minutes (estimate)",
      "transitMinutesEstimate": null,
      "routingNotes": "Travel time from Zoetermeer not verified. Map link is an address/place search, not a verified event entrance pin.",
      "address": "Alexandrium Shopping Center, Rotterdam; Kids Area",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Alexandrium%20Shopping%20Center%2C%20Rotterdam%3B%20Kids%20Area",
      "availability": "Drop in; no booking required.",
      "bookingUrl": "https://alexandrium-shopping-center.klepierre.nl/events-nieuws/events/kidsclub-2026",
      "officialUrl": "https://alexandrium-shopping-center.klepierre.nl/events-nieuws/events/kidsclub-2026",
      "photoUrl": null,
      "photoPageUrl": "https://alexandrium-shopping-center.klepierre.nl/events-nieuws/events/kidsclub-2026",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [
        {
          "label": "Official Instagram",
          "url": "https://instagram.com/alexandriumsc/"
        },
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/alexandriumsc?ref=pb"
        },
        {
          "label": "Official TikTok",
          "url": "https://www.tiktok.com/@alexandriumsc"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No independently verified 2026 event reviews found in this research. Do not interpret this as poor quality."
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://alexandrium-shopping-center.klepierre.nl/events-nieuws/events/kidsclub-2026",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Local news source",
          "url": "https://www.dehavenloods.nl/nieuws/algemeen/63088/volop-pret-met-de-kidsclub-in-alexandrium-shopping-center",
          "checkedAt": "2026-10-20",
          "supports": "2026-02-11; general Kidsclub conditions"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Indoor/rainproof. Parking not included in the free activity. Exact Kids Area location should be checked on arrival.",
        "Low; one of the gentlest options."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "haastrecht_spookjes",
      "title": "Haastrecht Spookjestocht, early gentle route",
      "venue": "Haastrecht Spookjestocht, early gentle route",
      "city": "Haastrecht, near Gouda",
      "category": "trail",
      "summary": "A short atmospheric woodland puzzle route, trick-or-treat map and a drink at the hot-chocolate tent.",
      "fitReason": "Detailed official programme says ages 2–8.",
      "ageMin": 2,
      "ageMax": 8,
      "scareLevel": "gentle",
      "scareNote": "Organizers explicitly promise no shouting, jump scares, hard noises or sudden movements. Actors are costumed; children can use a codeword to have them turn away.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "18:00",
          "end": "19:00",
          "label": "Gentle forest session; ticketed arrival slot. Trick-or-treat can follow.",
          "status": "confirmed"
        }
      ],
      "dateText": "31 Oct 2026. 18:00–19:00, ticketed time slot; neighbourhood trick-or-treat can follow.",
      "price": {
        "adult": null,
        "child": 6.5,
        "family5": 19.5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "calculation: 3 × €6.50 child tickets; up to one accompanying adult per child included; source note: Price read visually from official ticket graphic linked on tickets page.; mandatory fees: No separate fee published; physical ticket sale.",
        "kind": "published-base-price"
      },
      "duration": "60–90 minutes including some trick-or-treat; the forest’s early session is a one-hour window (estimate)",
      "transitMinutesEstimate": null,
      "routingNotes": "Exact forest entrance is not established. Trompstraat 18 is a ticket collection address, not the event start. Travel time not verified.",
      "address": "Haastrechtse bos / Bergvliet, Haastrecht; exact event entrance not published in pages checked",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Haastrechtse%20bos%20/%20Bergvliet%2C%20Haastrecht%3B%20exact%20event%20entrance%20not%20published%20in%20pages%20checked",
      "availability": "Limited tickets, not sold online. Now by appointment at Michelle Hair and Beauty, Trompstraat 18; remaining tickets from Oct 26 at Over de Brug, cash only. Stock not verified; no contact made.",
      "bookingUrl": "https://www.halloweenhaastrecht.nl/tickets",
      "officialUrl": "https://www.halloweenhaastrecht.nl/",
      "photoUrl": null,
      "photoPageUrl": "https://www.halloweenhaastrecht.nl/",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/halloween.haastrecht/"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No independently verified 2026 event reviews found in this research. Do not interpret this as poor quality."
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://www.halloweenhaastrecht.nl/",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://www.halloweenhaastrecht.nl/programma-2026/spookjestocht",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://www.halloweenhaastrecht.nl/tickets",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://primary.jwwb.nl/public/l/z/c/temp-gydddohecrgrivqmucph/1-high-dtcjbv.jpg?crop=1.409%3A1&enable=upscale&enable-io=true&width=800",
          "checkedAt": "2026-10-20",
          "supports": "Official €6.50 ticket graphic, visually checked"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Bring a lantern and suitable shoes. Social handle is printed by the organizer; profile itself not inspected. The ticket-sales address is not the event starting point.",
        "Organizers explicitly promise no shouting, jump scares, hard noises or sudden movements. Actors are costumed; children can use a codeword to have them turn away.",
        "No separate fee published; physical ticket sale."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "kruidenbuurt_early",
      "title": "Kruidenbuurt early Halloween route",
      "venue": "Kruidenbuurt early Halloween route",
      "city": "Rotterdam",
      "category": "trail",
      "summary": "Neighbourhood Halloween trail for young children.",
      "fitReason": "Early session explicitly for younger children; no exact lower/upper age published. Suitability for younger children is an editorial assessment.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Early route is the milder option; no no-jump-scare policy found.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "18:00",
          "end": "19:30",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "31 Oct 2026. Early route 18:00–19:30; avoid later 20:00–21:30 scarier route.",
      "price": {
        "adult": null,
        "child": null,
        "family5": 0,
        "mandatoryFees": 0,
        "currency": "EUR",
        "note": "basis: Official registration page describes free event.",
        "kind": "free"
      },
      "duration": "1.5-hour early event window",
      "transitMinutesEstimate": null,
      "routingNotes": "Travel time from Zoetermeer not verified. Map link is an address/place search, not a verified event entrance pin.",
      "address": "Check-in: SV Ommoord, Heidekruid 5, 3068 RT Rotterdam",
      "coordinates": {
        "lat": 51.9566246,
        "lng": 4.56036019
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Check-in%3A%20SV%20Ommoord%2C%20Heidekruid%205%2C%203068%20RT%20Rotterdam",
      "availability": "Register by Oct 27; maximum 500 children. A cached page showed remaining places, but no live count was verified. Do not advertise a remaining-place number.",
      "bookingUrl": "https://halloweenkruidenbuurt.nl/aanmelden/",
      "officialUrl": "https://halloweenkruidenbuurt.nl/",
      "photoUrl": null,
      "photoPageUrl": "https://halloweenkruidenbuurt.nl/",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No independently verified 2026 event reviews found in this research. Do not interpret this as poor quality."
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://halloweenkruidenbuurt.nl/",
          "checkedAt": "2026-10-20",
          "supports": "Published programme or practical information; see record caveats."
        },
        {
          "label": "Official source",
          "url": "https://halloweenkruidenbuurt.nl/aanmelden/",
          "checkedAt": "2026-10-20",
          "supports": "Current official indexed content read; direct page returned rate-limit error."
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Check-in%3A+SV+Ommoord%2C+Heidekruid+5%2C+3068+RT+Rotterdam&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Heidekruid 5, 3068RT Rotterdam. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Outdoor. Read public registration only; did not register. No resident-only restriction found, but external visitor eligibility not explicitly guaranteed.",
        "Early route is the milder option; no no-jump-scare policy found."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "details-incomplete",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Heidekruid 5, 3068RT Rotterdam. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "wilgenrijk_lantern",
      "title": "Wilgenrijk Halloween lantern walk and trick-or-treat",
      "venue": "Wilgenrijk Halloween lantern walk and trick-or-treat",
      "city": "Maassluis",
      "category": "trail",
      "summary": "Lantern walk for younger children, houses marked by fright-level flyers, and a drop-in dance workshop.",
      "fitReason": "Lantern walk explicitly aimed at little ones. Younger children can join that portion; house intensity varies.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Choose the lantern walk and lowest-scare houses; avoid assuming every home is gentle.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "18:30",
          "end": "20:30",
          "label": "Lantern walk for little ones starts 18:30; later workshop is aimed at older children/adults.",
          "status": "confirmed"
        }
      ],
      "dateText": "31 Oct 2026. 18:30–20:30; lantern walk starts 18:30; Thriller workshop 19:00–20:30.",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "published price: No charge stated; cannot certify free without explicit pricing.",
        "kind": "unknown"
      },
      "duration": "1–2 hours (estimate)",
      "transitMinutesEstimate": null,
      "routingNotes": "Starts at the football cage on Parkwal; map search is approximate, not a verified entrance pin. Travel time not verified.",
      "address": "Football/sports cage at Parkwal, Wilgenrijk, Maassluis; walk continues to Parkweide",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Football/sports%20cage%20at%20Parkwal%2C%20Wilgenrijk%2C%20Maassluis%3B%20walk%20continues%20to%20Parkweide",
      "availability": "No advance booking mentioned for lantern walk/workshop. Neighbourhood event; access for visitors from outside the area is not explicitly clarified.",
      "bookingUrl": "https://wilgenrijk.nl/agenda/halloween/",
      "officialUrl": "https://wilgenrijk.nl/agenda/halloween/",
      "photoUrl": null,
      "photoPageUrl": "https://wilgenrijk.nl/agenda/halloween/",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [
        {
          "label": "Official Facebook",
          "url": "https://www.facebook.com/wilgenrijk"
        },
        {
          "label": "Official Instagram",
          "url": "https://www.instagram.com/wilgenrijk"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No independently verified 2026 event reviews found in this research. Do not interpret this as poor quality."
      },
      "sources": [
        {
          "label": "Official source",
          "url": "https://wilgenrijk.nl/agenda/halloween/",
          "checkedAt": "2026-10-20",
          "supports": "Official 2026 programme published 2026-10-07"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Bring your own lantern. No shared start at Schaapskooi this year. Map is a place search rather than an exact verified sports-cage entrance.",
        "Thriller workshop is aimed at older children/adults; the lantern walk is the clear young-child choice.",
        "Choose the lantern walk and lowest-scare houses; avoid assuming every home is gentle."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "details-incomplete",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "emmaplein_early",
      "title": "Emmaplein early Halloween trick-or-treat",
      "venue": "Emmaplein early Halloween trick-or-treat",
      "city": "Vlaardingen",
      "category": "trail",
      "summary": "Neighbourhood trick-or-treat around Emmaplein and adjacent streets.",
      "fitReason": "Organizer listing says all ages; choose the 19:00 group for younger children.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Early grouping is intended for younger/sensitive children, but no detailed scare policy published.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "19:00",
          "end": "20:30",
          "label": "Choose 19:00 young/sensitive group; check-in from 18:45.",
          "status": "confirmed"
        }
      ],
      "dateText": "31 Oct 2026. Doors/check-in 18:45; younger/sensitive groups 19:00; older/braver groups 19:45. Event ends 20:30.",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "published price: Ticket price not exposed in public listing read; free parking must not be mistaken for free admission.",
        "kind": "unknown"
      },
      "duration": "19:00–20:30 event window",
      "transitMinutesEstimate": null,
      "routingNotes": "Travel time from Zoetermeer not verified. Map link is an address/place search, not a verified event entrance pin.",
      "address": "Emmaplein, 3134 Vlaardingen",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Emmaplein%2C%203134%20Vlaardingen",
      "availability": "Organizer Eventbrite listing exists; price, registration requirement and remaining tickets not verified.",
      "bookingUrl": "https://www.eventbrite.co.uk/e/tickets-halloween-2026-2001683683782?aff=ebdssbcategorybrowse",
      "officialUrl": "https://www.eventbrite.co.uk/e/tickets-halloween-2026-2001683683782?aff=ebdssbcategorybrowse",
      "photoUrl": null,
      "photoPageUrl": "https://www.eventbrite.co.uk/e/tickets-halloween-2026-2001683683782?aff=ebdssbcategorybrowse",
      "photoRights": "No reuse licence verified; link to the official page rather than copying imagery.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No independently verified 2026 event reviews found in this research. Do not interpret this as poor quality."
      },
      "sources": [
        {
          "label": "Organizer ticket listing source",
          "url": "https://www.eventbrite.co.uk/e/tickets-halloween-2026-2001683683782?aff=ebdssbcategorybrowse",
          "checkedAt": "2026-10-20",
          "supports": "Organizer Marit van Oort; indexed public listing read"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Outdoor. Treat as a promising lead, not a ready-to-go recommendation until price/entry terms are known.",
        "Early grouping is intended for younger/sensitive children, but no detailed scare policy published."
      ],
      "language": "Dutch event information; other languages not confirmed.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "details-incomplete",
      "socialNote": "Official organizer/venue links; not necessarily an event-specific 2026 post. Haastrecht profile handle is printed by organizer but profile itself was not inspected.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "leiden-oud-poelgeest-pumpkins",
      "title": "Pumpkin carving at Oud Poelgeest",
      "venue": "Pumpkin carving at Oud Poelgeest",
      "city": "Oegstgeest",
      "category": "craft",
      "summary": "Outdoor pumpkin carving; pumpkin, materials, snack and drink included. Warm/old clothes; adult must remain because sharp tools are used.",
      "fitReason": "Children can participate; adult supervision is required.",
      "ageMin": 5,
      "ageMax": 12,
      "scareLevel": "gentle",
      "scareNote": "Low, creative rather than scare attraction Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "14:00",
          "end": "15:00",
          "label": "14:00–15:00; 16:00–17:00 sold out",
          "status": "confirmed"
        },
        {
          "date": "2026-10-21",
          "start": "16:00",
          "end": "17:00",
          "label": "Sold out in official ticket flow",
          "status": "sold-out"
        }
      ],
      "dateText": "2026-10-21; 14:00–15:00; 16:00–17:00 sold out",
      "price": {
        "adult": null,
        "child": null,
        "family5": 49.5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "3 × €16.50 = €49.50, including €1 ticket fee per child. No adult fee stated.",
        "notes": "3 × €16.50 = €49.50, including €1 ticket fee per child. No adult fee stated.",
        "kind": "published-base-price"
      },
      "duration": "60 minutes",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Poelgeesterweg 1, 2341 NM Oegstgeest",
      "coordinates": {
        "lat": 52.17961423,
        "lng": 4.48489092
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Poelgeesterweg%201%2C%202341%20NM%20Oegstgeest",
      "availability": "Official Weeztix flow on Oct 20 offered 14:00 regular tickets and marked 16:00 sold out. Three simultaneous places were not verified. No reservation made.",
      "bookingUrl": "https://www.landgoedoudpoelgeest.com/pompoenen-uithollen-2026",
      "officialUrl": "https://www.landgoedoudpoelgeest.com/pompoenen-uithollen-2026",
      "photoUrl": null,
      "photoPageUrl": "https://www.landgoedoudpoelgeest.com/pompoenen-uithollen-2026",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://www.landgoedoudpoelgeest.com/pompoenen-uithollen-2026",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "organizer",
          "url": "https://www.landgoedoudpoelgeest.com/agenda",
          "checkedAt": "2026-10-20",
          "supports": "Maximum 25 children per time slot"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Poelgeesterweg+1%2C+2341+NM+Oegstgeest&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Poelgeesterweg 1, 2341NM Oegstgeest. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Low, creative rather than scare attraction",
        "3 × €16.50 = €49.50, including €1 ticket fee per child. No adult fee stated."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Poelgeesterweg 1, 2341NM Oegstgeest. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-museum-autumn",
      "title": "Día de Muertos autumn activities",
      "venue": "Wereldmuseum Leiden",
      "city": "Leiden",
      "category": "craft",
      "summary": "Mexican Día de Muertos, a distinct cultural holiday, not Halloween. Make a tin skeleton; hear Benito en Perro; see the altar.",
      "fitReason": "Calavera craft is available with adults; papel picado is 8+ independently or 6+ with an adult, so children under six cannot join that workshop.",
      "ageMin": 4,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Low, cultural skeletons/remembering loved ones, not a horror attraction Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "12:00",
          "end": "16:00",
          "label": "Museum 10:00–17:00; crafts 12:00–16:00, last entry 15:30; all-age story 12:30–12:45",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "12:00",
          "end": "16:00",
          "label": "Museum 10:00–17:00; crafts 12:00–16:00, last entry 15:30; all-age story 12:30–12:45",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "12:00",
          "end": "16:00",
          "label": "Museum 10:00–17:00; crafts 12:00–16:00, last entry 15:30; all-age story 12:30–12:45",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "12:00",
          "end": "16:00",
          "label": "Museum 10:00–17:00; crafts 12:00–16:00, last entry 15:30; all-age story 12:30–12:45",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "12:00",
          "end": "16:00",
          "label": "Museum 10:00–17:00; crafts 12:00–16:00, last entry 15:30; all-age story 12:30–12:45",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-21, 2026-10-22, 2026-10-23, 2026-10-24, 2026-10-25; Museum 10:00–17:00; crafts 12:00–16:00, last entry 15:30; all-age story 12:30–12:45",
      "price": {
        "adult": null,
        "child": null,
        "family5": 45,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Illustrative online total: 2 × €16 adults + 2 × €6.50 child tickets (ages 6–18) + 1 free child under six = €45; equivalent door total €52. Actual totals depend on ticket age bands. Listed activities included; Museumkaart entry free.",
        "notes": "Illustrative online total: 2 × €16 adults + 2 × €6.50 child tickets (ages 6–18) + 1 free child under six = €45; equivalent door total €52. Actual totals depend on ticket age bands. Listed activities included; Museumkaart entry free.",
        "kind": "published-base-price",
        "family5WithValidMuseumkaarten": 0,
        "museumkaartCondition": "Admission only: assumes each visitor who needs a paid ticket has a valid Museumkaart. Optional paid workshops remain extra."
      },
      "duration": "Craft duration unpublished; plan 1.5–3 hours is a planning estimate",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time. Central Leiden venue; station-to-venue route not timed.",
      "address": "Steenstraat 1, 2312 BS Leiden",
      "coordinates": {
        "lat": 52.16356753,
        "lng": 4.48406057
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Steenstraat%201%2C%202312%20BS%20Leiden",
      "availability": "Walk-in crafts subject to space. Museum tickets sold online; live capacity not checked.",
      "bookingUrl": "https://leiden.wereldmuseum.nl/nl/zien-en-doen/activiteiten/herfstvakantie",
      "officialUrl": "https://leiden.wereldmuseum.nl/nl/zien-en-doen/activiteiten/herfstvakantie",
      "photoUrl": null,
      "photoPageUrl": "https://leiden.wereldmuseum.nl/nl/zien-en-doen/activiteiten/herfstvakantie",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [
        {
          "label": "official venue profile (content not retrievable)",
          "url": "https://www.facebook.com/wereldmuseum.leiden/"
        }
      ],
      "review": {
        "rating": 4.5,
        "count": 3499,
        "scope": "venue",
        "sourceUrl": "https://wanderlog.com/nl/place/details/34445/wereldmuseum-leiden",
        "note": "A 4/5 review found displays atmospheric and interesting for children, with some exhibit disappointment. Venue review, not Día de Muertos. Review date: 2026-02-23. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://leiden.wereldmuseum.nl/nl/zien-en-doen/activiteiten/herfstvakantie",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "organizer",
          "url": "https://leiden.wereldmuseum.nl/nl/plan-je-bezoek-in-wereldmuseum-leiden/openingstijden-en-prijzen",
          "checkedAt": "2026-10-20",
          "supports": "Current entry tariff and opening times"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Steenstraat+1%2C+2312+BS+Leiden&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Steenstraat 1, 2312BS Leiden. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Low, cultural skeletons/remembering loved ones, not a horror attraction",
        "Illustrative online total: 2 × €16 adults + 2 × €6.50 child tickets (ages 6–18) + 1 free child under six = €45; equivalent door total €52. Actual totals depend on ticket age bands. Listed activities included; Museumkaart entry free."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Accepted; museum admission free with valid card, optional workshop fees remain.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Steenstraat 1, 2312BS Leiden. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-rusthout-cupcakes",
      "title": "Spooky cupcake decorating",
      "venue": "Spooky cupcake decorating",
      "city": "Leidschendam",
      "category": "craft",
      "summary": "Decorate Halloween cupcakes at the garden.",
      "fitReason": "Family participation is advertised; check activity-specific rules.",
      "ageMin": 4,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Low, creative Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-23",
          "start": "13:30",
          "end": "14:30",
          "label": "13:30–14:30",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-23; 13:30–14:30",
      "price": {
        "adult": null,
        "child": null,
        "family5": 9,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "3 × €3 = €9; adults not separately priced.",
        "notes": "3 × €3 = €9; adults not separately priced.",
        "kind": "from"
      },
      "duration": "Approximately 45 minutes",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Noordsingel 3, 2264 EK Leidschendam",
      "coordinates": {
        "lat": 52.08717488,
        "lng": 4.38609385
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Noordsingel%203%2C%202264%20EK%20Leidschendam",
      "availability": "Advance signup required through Tuinhuis; remaining places not published.",
      "bookingUrl": "https://stadstuinrusthout.nl/aktiviteiten/",
      "officialUrl": "https://stadstuinrusthout.nl/aktiviteiten/",
      "photoUrl": null,
      "photoPageUrl": "https://stadstuinrusthout.nl/aktiviteiten/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://stadstuinrusthout.nl/aktiviteiten/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "organizer",
          "url": "https://stadstuinrusthout.nl/contact/",
          "checkedAt": "2026-10-20",
          "supports": "Address"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Noordsingel+3%2C+2264+EK+Leidschendam&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Noordsingel 3, 2264EK Leidschendam. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Food-centred activity: gluten-free ingredients and cross-contact precautions are not verified. Not a top choice for this family until suitability is confirmed.",
        "Low, creative",
        "3 × €3 = €9; adults not separately priced."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": false,
      "status": "food-suitability-unverified",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Noordsingel 3, 2264EK Leidschendam. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-rusthout-halloween",
      "title": "Halloween at Stadstuin Rusthout and Scouting De Damherten",
      "venue": "Halloween at Stadstuin Rusthout and Scouting De Damherten",
      "city": "Leidschendam",
      "category": "community party",
      "summary": "Small-group garden route, marshmallows/sausages by the fire, decorate a pumpkin to keep, then a haunted scouting clubhouse.",
      "fitReason": "Family participation is advertised; choose the earliest start for younger children.",
      "ageMin": 4,
      "ageMax": 11,
      "scareLevel": "mild",
      "scareNote": "Mild-to-moderate: organizers describe mild haunted house, but darkness and characters may frighten younger children Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "18:30",
          "end": null,
          "label": "Starts between 18:30 and 20:00; younger children advised 18:30",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; Starts between 18:30 and 20:00; younger children advised 18:30",
      "price": {
        "adult": null,
        "child": null,
        "family5": 12,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "3 × €4 = €12. Accompanying adults not separately priced.",
        "notes": "3 × €4 = €12. Accompanying adults not separately priced.",
        "kind": "from"
      },
      "duration": "Route duration unpublished; start window is not a confirmed 90-minute duration",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Noordsingel 3, 2264 EK Leidschendam",
      "coordinates": {
        "lat": 52.08717488,
        "lng": 4.38609385
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Noordsingel%203%2C%202264%20EK%20Leidschendam",
      "availability": "Limited capacity. Register and pay at Tuinhuis cashdesk; no live count. Tuinhuis open Tue/Wed/Fri/Sat/Sun 10:30–17:00 until Nov 1.",
      "bookingUrl": "https://stadstuinrusthout.nl/aktiviteiten/",
      "officialUrl": "https://stadstuinrusthout.nl/aktiviteiten/",
      "photoUrl": null,
      "photoPageUrl": "https://stadstuinrusthout.nl/aktiviteiten/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://stadstuinrusthout.nl/aktiviteiten/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "organizer",
          "url": "https://stadstuinrusthout.nl/contact/",
          "checkedAt": "2026-10-20",
          "supports": "Address and seasonal opening hours"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Noordsingel+3%2C+2264+EK+Leidschendam&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Noordsingel 3, 2264EK Leidschendam. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Mild-to-moderate: organizers describe mild haunted house, but darkness and characters may frighten younger children",
        "3 × €4 = €12. Accompanying adults not separately priced.",
        "Use current 2026 agenda, not the separate 2025 news article. 18:30–20:00 is the start window, route duration unpublished."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Noordsingel 3, 2264EK Leidschendam. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-voorschoten-centre",
      "title": "Halloween in Voorschoten centre",
      "venue": "Halloween in Voorschoten centre",
      "city": "Voorschoten",
      "category": "community party",
      "summary": "Pumpkin carving, games, face paint/glitter tattoos, lucky dip, soup/witch lemonade; costume parade.",
      "fitReason": "Likely suitable for younger children; suitability is inferred from daytime crafts and games.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Low, daytime family festivities Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "12:00",
          "end": "17:00",
          "label": "12:00–17:00; witches parade 16:15 from Kruispuntkerk",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; 12:00–17:00; witches parade 16:15 from Kruispuntkerk",
      "price": {
        "adult": null,
        "child": null,
        "family5": 0,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Listed free; incidental purchases extra.",
        "notes": "Listed free; incidental purchases extra.",
        "kind": "free-entry"
      },
      "duration": "Drop-in event window 5 hours; choose your own visit length",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Treubplein 5 A, 2251 CV Voorschoten",
      "coordinates": {
        "lat": 52.12601522,
        "lng": 4.4478704
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Treubplein%205A%2C%202251%20CV%20Voorschoten",
      "availability": "No booking requirement published. Supplies/craft places not guaranteed.",
      "bookingUrl": "https://www.kidsproof.nl/leiden/uitje/voorschoten-centrum-halloween-thema/",
      "officialUrl": "https://www.vakerinvoorschoten.nl/nl/",
      "photoUrl": null,
      "photoPageUrl": "https://www.kidsproof.nl/leiden/uitje/voorschoten-centrum-halloween-thema/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "family-events publisher",
          "url": "https://www.kidsproof.nl/leiden/uitje/voorschoten-centrum-halloween-thema/",
          "checkedAt": "2026-10-20",
          "supports": "Full 2026 program, free price, timings"
        },
        {
          "label": "town tourism",
          "url": "https://www.vakerinvoorschoten.nl/nl/",
          "checkedAt": "2026-10-20",
          "supports": "Official agenda confirms Halloween Oct 31; specific page could not be retrieved"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Treubplein+5+A%2C+2251+CV+Voorschoten&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Treubplein 5A, 2251CV Voorschoten. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Low, daytime family festivities",
        "Listed free; incidental purchases extra."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Treubplein 5A, 2251CV Voorschoten. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-huygenskwartier",
      "title": "Huygenskwartier trick-or-treat",
      "venue": "Huygenskwartier trick-or-treat",
      "city": "Voorburg",
      "category": "trick or treat",
      "summary": "Costumed trick-or-treat at more than 20 shops in the historic shopping quarter.",
      "fitReason": "Likely suitable for younger children; daylight, but costumed characters may still frighten.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Low-to-moderate, storyteller/character surprises Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "12:00",
          "end": "16:00",
          "label": "12:00–16:00",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; 12:00–16:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "No fee published in sources checked; do not label definitively free.",
        "notes": "No fee published in sources checked; do not label definitively free.",
        "kind": "unknown"
      },
      "duration": "Drop-in event window 4 hours; route duration unpublished",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Herenstraat, 2271 CJ Voorburg",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Herenstraat%2C%202271%20CJ%20Voorburg",
      "availability": "No registration requirement published; candy while supplies last is possible, not confirmed.",
      "bookingUrl": "https://www.huygenskwartier.nl/nl/events/",
      "officialUrl": "https://www.huygenskwartier.nl/nl/events/",
      "photoUrl": null,
      "photoPageUrl": "https://www.huygenskwartier.nl/nl/events/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://www.huygenskwartier.nl/nl/events/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "municipal tourism",
          "url": "https://www.lvverrast.nl/kalender/",
          "checkedAt": "2026-10-20",
          "supports": "Confirms Oct 31 family trick-or-treat"
        },
        {
          "label": "local news",
          "url": "https://midvliet.nl/actueel/nieuws-uit-leidschendam-voorburg/34583-halloween-2026-hier-kun-je-griezelen-in-leidschendam-voorburg",
          "checkedAt": "2026-10-20",
          "supports": "Published Oct 15, 2026; 12:00–16:00"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Low-to-moderate, storyteller/character surprises",
        "No fee published in sources checked; do not label definitively free."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "leiden-leidschendam-band",
      "title": "Halloween streetband",
      "venue": "Halloween streetband",
      "city": "Leidschendam",
      "category": "show",
      "summary": "Halloween-costumed band roams the historic centre. A short add-on rather than a full planned outing.",
      "fitReason": "Likely suitable for younger children; this is an editorial assessment.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Low: themed musicians, not a dedicated scare attraction Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "12:00",
          "end": "16:00",
          "label": "12:00–16:00",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; 12:00–16:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "No admission price published; public shopping-area performance.",
        "notes": "No admission price published; public shopping-area performance.",
        "kind": "unknown"
      },
      "duration": "Drop-in; performances move through shopping area",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Damlaan / Dam, Leidschendam",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Damlaan%20/%20Dam%2C%20Leidschendam",
      "availability": "No booking indicated.",
      "bookingUrl": "https://leidschendamcentrum.nl/event/halloween/",
      "officialUrl": "https://leidschendamcentrum.nl/event/halloween/",
      "photoUrl": null,
      "photoPageUrl": "https://leidschendamcentrum.nl/event/halloween/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://leidschendamcentrum.nl/event/halloween/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Low: themed musicians, not a dedicated scare attraction",
        "No admission price published; public shopping-area performance."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "leiden-lego-halloween",
      "title": "LEGO Store Halloween hunt and Ghost Street build",
      "venue": "LEGO Store Halloween hunt and Ghost Street build",
      "city": "Leidschendam",
      "category": "treasure hunt",
      "summary": "Find hidden Halloween items for a surprise. On Oct 28/29 eligible children can build and take home Ghost Street.",
      "fitReason": "The hunt is a family activity; the Ghost Street build is advertised for ages 6+. Participation in the build for children under six is unconfirmed.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Low, toy pumpkins/ghosts Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-24",
          "start": "10:00",
          "end": "20:00",
          "label": "Hunt Oct 24–31 during store hours; build Oct 28 and 29 15:00–17:00",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "12:00",
          "end": "18:00",
          "label": "Hunt Oct 24–31 during store hours; build Oct 28 and 29 15:00–17:00",
          "status": "confirmed"
        },
        {
          "date": "2026-10-26",
          "start": "11:00",
          "end": "20:00",
          "label": "Hunt Oct 24–31 during store hours; build Oct 28 and 29 15:00–17:00",
          "status": "confirmed"
        },
        {
          "date": "2026-10-27",
          "start": "10:00",
          "end": "20:00",
          "label": "Hunt Oct 24–31 during store hours; build Oct 28 and 29 15:00–17:00",
          "status": "confirmed"
        },
        {
          "date": "2026-10-28",
          "start": "10:00",
          "end": "20:00",
          "label": "Hunt Oct 24–31 during store hours; build Oct 28 and 29 15:00–17:00",
          "status": "confirmed"
        },
        {
          "date": "2026-10-29",
          "start": "10:00",
          "end": "20:00",
          "label": "Hunt Oct 24–31 during store hours; build Oct 28 and 29 15:00–17:00",
          "status": "confirmed"
        },
        {
          "date": "2026-10-30",
          "start": "10:00",
          "end": "20:00",
          "label": "Hunt Oct 24–31 during store hours; build Oct 28 and 29 15:00–17:00",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "10:00",
          "end": "20:00",
          "label": "Hunt Oct 24–31 during store hours; build Oct 28 and 29 15:00–17:00",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-24, 2026-10-25, 2026-10-26, 2026-10-27, 2026-10-28, 2026-10-29, 2026-10-30, 2026-10-31; Hunt Oct 24–31 during store hours; build Oct 28 and 29 15:00–17:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": 0,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Free; one build per participant, limited stock.",
        "notes": "Free; one build per participant, limited stock.",
        "kind": "free-entry"
      },
      "duration": "Hunt/build duration unpublished; build window 2 hours",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Berkenhove 2, 2262 AK Leidschendam",
      "coordinates": {
        "lat": 52.08919749,
        "lng": 4.38391967
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Berkenhove%202%2C%202262%20AK%20Leidschendam",
      "availability": "First come/while stock lasts. No reservation reported; stock not checked. Store normally Mon 11–20, Tue–Sat 10–20, Sun 12–18.",
      "bookingUrl": "https://www.lego.com/nl-nl/stores/events/ghost-street-nl",
      "officialUrl": "https://www.lego.com/nl-nl/stores/events/ghost-street-nl",
      "photoUrl": null,
      "photoPageUrl": "https://www.lego.com/nl-nl/stores/events/ghost-street-nl",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://www.lego.com/nl-nl/stores/events/ghost-street-nl",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "organizer · currently unavailable (404)",
          "url": "https://www.lego.com/nl-nl/stores/events/halloween-hunt-gbieesdkbe",
          "checkedAt": "2026-10-20",
          "supports": "Oct 24–31, year absent; local current news corroborates"
        },
        {
          "label": "local news",
          "url": "https://midvliet.nl/actueel/nieuws-uit-leidschendam-voorburg/34583-halloween-2026-hier-kun-je-griezelen-in-leidschendam-voorburg",
          "checkedAt": "2026-10-20",
          "supports": "Oct 15, 2026 confirms Mall participation and dates"
        },
        {
          "label": "offer publisher",
          "url": "https://www.gratisworld.nl/gratis-lego-spookstraat-bouwen-en-mee-naar-huis-nemen/",
          "checkedAt": "2026-10-20",
          "supports": "Oct 14, 2026 free build; lists Mall"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Berkenhove+2%2C+2262+AK+Leidschendam&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Berkenhove 2, 2262AK Leidschendam. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Low, toy pumpkins/ghosts",
        "Free; one build per participant, limited stock.",
        "Build sessions are 6+; children under six can participate in the hunt only. The 15:00–17:00 build dates are October 28 and 29.",
        "One supplementary LEGO hunt URL returned 404 during publication checks. Use the working official store/event links and reconfirm current details."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "six-plus-guidance",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": "Published 6+ build guidance, not a verified hard admission cutoff; hunt is separately suitable for all ages.",
      "userAgePreference": "User explicitly permits 6+ recommendations.",
      "coordinateNote": "PDOK/BAG address point for Berkenhove 2, 2262AK Leidschendam. This verifies the public address, not the event entrance."
    },
    {
      "id": "leiden-ons-tolhuis",
      "title": "Ons Tolhuis neighbourhood trick-or-treat",
      "venue": "Ons Tolhuis neighbourhood trick-or-treat",
      "city": "Leidschendam",
      "category": "trick or treat",
      "summary": "Route through Oude Bleijk, De Horre, De Schans and Ambachtsstraat low-rise homes; witch drink and costume prizes afterwards.",
      "fitReason": "Potentially suitable for younger children, but the official invitation is for local neighbourhood children. Access for non-residents is unconfirmed.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Mild-to-moderate, darkness and decorated homes Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "18:30",
          "end": "19:30",
          "label": "18:30 departure; return/prizes around 19:30",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; 18:30 departure; return/prizes around 19:30",
      "price": {
        "adult": null,
        "child": null,
        "family5": 0,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Free.",
        "notes": "Free.",
        "kind": "free-entry"
      },
      "duration": "About 1 hour plus prize-giving",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "De Horre 1, Leidschendam",
      "coordinates": {
        "lat": 52.07783808,
        "lng": 4.40196875
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=De%20Horre%201%2C%20Leidschendam",
      "availability": "No booking instruction found. Community event, not confirmed as destination event for visitors.",
      "bookingUrl": "https://www.onstolhuis.com/halloween",
      "officialUrl": "https://www.onstolhuis.com/halloween",
      "photoUrl": null,
      "photoPageUrl": "https://www.onstolhuis.com/halloween",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://www.onstolhuis.com/halloween",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=De+Horre+1%2C+Leidschendam&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for De Horre 1, 2266CN Leidschendam. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Mild-to-moderate, darkness and decorated homes",
        "Free.",
        "No booking instruction found. Community event, not confirmed as destination event for visitors."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "local-community-eligibility-unconfirmed",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for De Horre 1, 2266CN Leidschendam. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-de-kooi",
      "title": "Halloween at Speeltuin De Kooi",
      "venue": "Halloween at Speeltuin De Kooi",
      "city": "Leiden",
      "category": "trick or treat",
      "summary": "Face paint, spooky games/tattoos, neighbourhood trick-or-treat and marshmallow fires.",
      "fitReason": "Likely suitable for younger children with an adult, but scare intensity is unpublished.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Mild-to-moderate, evening ghost walk Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "18:00",
          "end": null,
          "label": "Gather 18:00; neighbourhood walk 19:00; end not verified",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; Gather 18:00; neighbourhood walk 19:00; end not verified",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€1 participation; unclear whether adults pay. Budget €3 if child-only or €5 if all five pay.",
        "notes": "€1 participation; unclear whether adults pay. Budget €3 if child-only or €5 if all five pay.",
        "kind": "unknown"
      },
      "duration": "Duration unpublished; do not assert 22:00 end",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Ambonstraat 28 A, 2315 GH Leiden",
      "coordinates": {
        "lat": 52.16438344,
        "lng": 4.51166456
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Ambonstraat%2028A%2C%202315%20GH%20Leiden",
      "availability": "Advance signup via playground required; no availability count. Event photography/video announced; tell photographer if opting out.",
      "bookingUrl": "https://www.kidsproof.nl/leiden/uitje/halloween-in-speeltuin-de-kooi/",
      "officialUrl": "https://www.speeltuindekooi.nl/",
      "photoUrl": null,
      "photoPageUrl": "https://www.kidsproof.nl/leiden/uitje/halloween-in-speeltuin-de-kooi/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": 4.5,
        "count": 35,
        "scope": "venue",
        "sourceUrl": "https://wannado.nl/p/speeltuin-de-kooi-leiden",
        "note": "Venue aggregate only; individual dates not verified, not Halloween. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "family-events publisher",
          "url": "https://www.kidsproof.nl/leiden/uitje/halloween-in-speeltuin-de-kooi/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "family-events publisher",
          "url": "https://uitjemetdekids.nl/activiteiten-agenda/?activiteit=halloween-26",
          "checkedAt": "2026-10-20",
          "supports": "Everyone welcome; €1, signup, photo notice. Organizer website unavailable."
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Ambonstraat+28+A%2C+2315+GH+Leiden&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Ambonstraat 28A, 2315GH Leiden. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Mild-to-moderate, evening ghost walk",
        "€1 participation; unclear whether adults pay. Budget €3 if child-only or €5 if all five pay."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Ambonstraat 28A, 2315GH Leiden. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-meowloween",
      "title": "Meowloween at WonderCat",
      "venue": "Meowloween at WonderCat",
      "city": "Leiden",
      "category": "fair",
      "summary": "Cat-themed art market, arts/crafts, seasonal refreshments, tarot and resident cat.",
      "fitReason": "Potential low-key option, but not specifically a children’s event",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Low, whimsical cat art/mystical decorations; tariff/activities not all necessarily child-focused Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "12:00",
          "end": "19:00",
          "label": "12:00–19:00",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; 12:00–19:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": 0,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Free entry; purchases, refreshments and any separate craft charges not included/confirmed.",
        "notes": "Free entry; purchases, refreshments and any separate craft charges not included/confirmed.",
        "kind": "free-entry"
      },
      "duration": "Drop-in; duration unpublished",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Middelstegracht 89 M, 2312 TT Leiden",
      "coordinates": {
        "lat": 52.15915941,
        "lng": 4.49803843
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Middelstegracht%2089M%2C%202312%20TT%20Leiden",
      "availability": "No booking requirement published.",
      "bookingUrl": "https://www.visitleiden.nl/en/event-calendar/618258158/meowloween-halloween-with-cat-art",
      "officialUrl": "https://www.visitleiden.nl/en/event-calendar/618258158/meowloween-halloween-with-cat-art",
      "photoUrl": null,
      "photoPageUrl": "https://www.visitleiden.nl/en/event-calendar/618258158/meowloween-halloween-with-cat-art",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "city tourism",
          "url": "https://www.visitleiden.nl/en/event-calendar/618258158/meowloween-halloween-with-cat-art",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Middelstegracht+89+M%2C+2312+TT+Leiden&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Middelstegracht 89M, 2312TT Leiden. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Low, whimsical cat art/mystical decorations; tariff/activities not all necessarily child-focused",
        "Free entry; purchases, refreshments and any separate craft charges not included/confirmed."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Middelstegracht 89M, 2312TT Leiden. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-kidszoo",
      "title": "SpookyZoo at KidsZoo",
      "venue": "SpookyZoo at KidsZoo",
      "city": "Noordwijkerhout",
      "category": "indoor play",
      "summary": "Indoor play with haunted house, treat and glitter tattoo.",
      "fitReason": "Check venue age guidance. The haunted house and roaming scares may be too much for sensitive younger children. The adult-admission rule needs clarification.",
      "ageMin": null,
      "ageMax": 12,
      "scareLevel": "mild",
      "scareNote": "Moderate: indoor haunted house and possible roaming characters Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "18:30",
          "end": "21:00",
          "label": "18:30–21:00",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; 18:30–21:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": 38.85,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Live official flow:3 children+2 adults €38.85. Mandatory gripsocks: own permitted; online 3 × €1.95 =>€44.70. Homepage counter price€2.95/pair =>€47.70 with 3 door pairs. Flow also says maximum 1 adult per 2 children, despite accepting 2 adults/3 children: do not promise two adults admitted without clarification.",
        "notes": "Live official flow:3 children+2 adults €38.85. Mandatory gripsocks: own permitted; online 3 × €1.95 =>€44.70. Homepage counter price€2.95/pair =>€47.70 with 3 door pairs. Flow also says maximum 1 adult per 2 children, despite accepting 2 adults/3 children: do not promise two adults admitted without clarification.",
        "kind": "from"
      },
      "duration": "2.5 hours",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time. Organizer says free parking with 100+ own spaces; bus stop Smederij approximately 250 metres away.",
      "address": "Pletterij 3, 2211 JT Noordwijkerhout",
      "coordinates": {
        "lat": 52.24858586,
        "lng": 4.49384786
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Pletterij%203%2C%202211%20JT%20Noordwijkerhout",
      "availability": "Oct 31 slot selectable and flow accepted 3 children/2 adults on Oct 20. No customer details, booking or payment submitted; availability can change.",
      "bookingUrl": "https://portal.nostium.com/reservering/u9ammfx6z14w/kidszoo/halloween-spooky-zoo",
      "officialUrl": "https://kidszoo.nl/activiteiten/",
      "photoUrl": null,
      "photoPageUrl": "https://kidszoo.nl/activiteiten/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": 3.9,
        "count": 44,
        "scope": "venue",
        "sourceUrl": "https://www.tripadvisor.com/Attraction_Review-g850696-d9799007-Reviews-KidsZoo-Noordwijkerhout_South_Holland_Province.html",
        "note": "Family reviewer praised play equipment/food but noted supervision/rules concerns. Not a Halloween review. Review date: 2026-02-24. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://kidszoo.nl/activiteiten/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "official booking",
          "url": "https://portal.nostium.com/reservering/u9ammfx6z14w/kidszoo/halloween-spooky-zoo",
          "checkedAt": "2026-10-20",
          "supports": "Live public flow checked Oct 20"
        },
        {
          "label": "organizer",
          "url": "https://kidszoo.nl/",
          "checkedAt": "2026-10-20",
          "supports": "Venue age and counter gripsock price"
        },
        {
          "label": "organizer",
          "url": "https://kidszoo.nl/contact/",
          "checkedAt": "2026-10-20",
          "supports": "100+ own parking spaces, free parking"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Pletterij+3%2C+2211+JT+Noordwijkerhout&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Pletterij 3, 2211JT Noordwijkerhout. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Moderate: indoor haunted house and possible roaming characters",
        "Live official flow:3 children+2 adults €38.85. Mandatory gripsocks: own permitted; online 3 × €1.95 =>€44.70. Homepage counter price€2.95/pair =>€47.70 with 3 door pairs. Flow also says maximum 1 adult per 2 children, despite accepting 2 adults/3 children: do not promise two adults admitted without clarification.",
        "Oct 31 slot selectable and flow accepted 3 children/2 adults on Oct 20. No customer details, booking or payment submitted; availability can change."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Pletterij 3, 2211JT Noordwijkerhout. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-langs-berg-dal",
      "title": "Bo the woodland gnome Halloween walk",
      "venue": "Bo the woodland gnome Halloween walk",
      "city": "Noordwijk",
      "category": "treasure hunt",
      "summary": "Outdoor Halloween tasks with Bo de Boskabouter; child receives themed bag, activity materials and candy.",
      "fitReason": "Likely suitable for younger children, especially at the daylight start; this is an editorial assessment, not an official age rating.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Low-to-moderate, themed family quest with treats Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "15:00",
          "end": "20:00",
          "label": "15:00–20:00 event window",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; 15:00–20:00 event window",
      "price": {
        "adult": null,
        "child": null,
        "family5": 22.5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "3 × €7.50 =€22.50; adult charge not stated; food/drinks separate.",
        "notes": "3 × €7.50 =€22.50; adult charge not stated; food/drinks separate.",
        "kind": "from"
      },
      "duration": "Actual route length/time unpublished",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Langevelderlaan 22, 2204 BD Noordwijk",
      "coordinates": {
        "lat": 52.28327611,
        "lng": 4.48617498
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Langevelderlaan%2022%2C%202204%20BD%20Noordwijk",
      "availability": "Reservation policy/capacity not published in checked listing.",
      "bookingUrl": "https://www.noordwijk.info/en/discover-noordwijk/events/3963140285/halloween-wandeling-1",
      "officialUrl": "https://www.noordwijk.info/en/discover-noordwijk/events/3963140285/halloween-wandeling-1",
      "photoUrl": null,
      "photoPageUrl": "https://www.noordwijk.info/en/discover-noordwijk/events/3963140285/halloween-wandeling-1",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "official tourism",
          "url": "https://www.noordwijk.info/en/discover-noordwijk/events/3963140285/halloween-wandeling-1",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "organizer",
          "url": "https://www.langsbergendal.nl/",
          "checkedAt": "2026-10-20",
          "supports": "Venue address"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Langevelderlaan+22%2C+2204+BD+Noordwijk&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Langevelderlaan 22, 2204BD Noordwijk. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Low-to-moderate, themed family quest with treats",
        "3 × €7.50 =€22.50; adult charge not stated; food/drinks separate."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Langevelderlaan 22, 2204BD Noordwijk. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-beleving",
      "title": "Halloween weekend at Eeterij De Beleving",
      "venue": "Halloween weekend at Eeterij De Beleving",
      "city": "Noordwijk",
      "category": "craft",
      "summary": "Pumpkin carving, face painting, sweets decorating and costume prize at a family restaurant.",
      "fitReason": "Likely suitable for younger children; this is an editorial assessment.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Low, crafts/face paint/costumes Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-30",
          "start": "15:00",
          "end": null,
          "label": "Oct 30 from 15:00; Oct 31 from 12:00; ends not published",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "12:00",
          "end": null,
          "label": "Oct 30 from 15:00; Oct 31 from 12:00; ends not published",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-30, 2026-10-31; Oct 30 from 15:00; Oct 31 from 12:00; ends not published",
      "price": {
        "adult": null,
        "child": null,
        "family5": 0,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Tourism listing says free entry; official page does not detail charges for each activity. Meals/drinks extra; total spend cannot be calculated.",
        "notes": "Tourism listing says free entry; official page does not detail charges for each activity. Meals/drinks extra; total spend cannot be calculated.",
        "kind": "free-entry"
      },
      "duration": "Duration unpublished",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Kraaierslaan 7, 2204 AN Noordwijk",
      "coordinates": {
        "lat": 52.27025835,
        "lng": 4.47525984
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Kraaierslaan%207%2C%202204%20AN%20Noordwijk",
      "availability": "Official page requests reservation; full is full. Places not checked.",
      "bookingUrl": "https://eeterijdebeleving.nl/evenementen/halloween-weekend/",
      "officialUrl": "https://eeterijdebeleving.nl/evenementen/halloween-weekend/",
      "photoUrl": null,
      "photoPageUrl": "https://eeterijdebeleving.nl/evenementen/halloween-weekend/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": 4.2,
        "count": 77,
        "scope": "venue",
        "sourceUrl": "https://www.tripadvisor.com/Restaurant_Review-g227899-d10470707-Reviews-Eeterij_de_Beleving-Noordwijk_South_Holland_Province.html",
        "note": "Family Easter reviewer liked the afternoon/location but felt food was expensive for the amount. March 29, 2026 family review praised food. Neither reviews Halloween. Review date: 2026-04-06. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://eeterijdebeleving.nl/evenementen/halloween-weekend/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "official tourism",
          "url": "https://www.visitduinenbollenstreek.nl/nl/agenda/3654688933/halloween-weekend",
          "checkedAt": "2026-10-20",
          "supports": "Free entry; structured times conflict with organizer, so use organizer start times"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Kraaierslaan+7%2C+2204+AN+Noordwijk&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Kraaierslaan 7, 2204AN Noordwijk. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Low, crafts/face paint/costumes",
        "Tourism listing says free entry; official page does not detail charges for each activity. Meals/drinks extra; total spend cannot be calculated.",
        "Use organizer starts: Friday 15:00, Saturday 12:00. Tourism structured times conflict. Free-entry tag is not proof that all activities/materials/food are free."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Kraaierslaan 7, 2204AN Noordwijk. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-binnenzee",
      "title": "Halloween disco swimming at Binnenzee",
      "venue": "Halloween disco swimming at Binnenzee",
      "city": "Noordwijk",
      "category": "community",
      "summary": "Halloween-themed pool disco. Swimming ability and supervision are more important than costume age.",
      "fitReason": "All may attend under swimming rules; non-swimmers need armbands and 18+adult with diploma",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Moderate sensory load: dark/disco lighting and DJ Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-30",
          "start": "19:00",
          "end": "21:00",
          "label": "19:00–21:00; optional dinner 18:00–19:00",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-30; 19:00–21:00; optional dinner 18:00–19:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": 44,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€8.80 online or€9.80 door per person: five paying swimmers €44/€49. Optional meal package€15.50 pp not included.",
        "notes": "€8.80 online or€9.80 door per person: five paying swimmers €44/€49. Optional meal package€15.50 pp not included.",
        "kind": "published-base-price"
      },
      "duration": "2 hours swimming",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Nieuwe Zeeweg 165, 2202 HA Noordwijk",
      "coordinates": {
        "lat": 52.24017715,
        "lng": 4.4404889
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Nieuwe%20Zeeweg%20165%2C%202202%20HA%20Noordwijk",
      "availability": "Online ticket option present; live stock not checked. Dinner requires reservation.",
      "bookingUrl": "https://binnenzee.sportfondsen.nl/activiteiten/discozwemmen/",
      "officialUrl": "https://binnenzee.sportfondsen.nl/activiteiten/discozwemmen/",
      "photoUrl": null,
      "photoPageUrl": "https://binnenzee.sportfondsen.nl/activiteiten/discozwemmen/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://binnenzee.sportfondsen.nl/activiteiten/discozwemmen/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Nieuwe+Zeeweg+165%2C+2202+HA+Noordwijk&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Nieuwe Zeeweg 165, 2202HA Noordwijk. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Moderate sensory load: dark/disco lighting and DJ",
        "€8.80 online or€9.80 door per person: five paying swimmers €44/€49. Optional meal package€15.50 pp not included."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Nieuwe Zeeweg 165, 2202HA Noordwijk. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-zijl",
      "title": "Halloween disco swimming at De Zijl",
      "venue": "Halloween disco swimming at De Zijl",
      "city": "Leiden",
      "category": "community",
      "summary": "Pool Halloween disco. Confirm additional flotation/supervision rules for a non-swimmer.",
      "fitReason": "Check published age eligibility; any child without a swimming diploma needs at least one adult aged 18+ with a swimming diploma.",
      "ageMin": null,
      "ageMax": 11,
      "scareLevel": "mild",
      "scareNote": "Moderate: spooky pool/dim lights/DJ Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-30",
          "start": "18:30",
          "end": "21:00",
          "label": "18:30–21:00",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-30; 18:30–21:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": 37.5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€7.50 per person; five paying people €37.50.",
        "notes": "€7.50 per person; five paying people €37.50.",
        "kind": "published-base-price"
      },
      "duration": "2.5 hours",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Paramaribostraat 66, 2315 VD Leiden",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Paramaribostraat%2066%2C%202315%20VD%20Leiden",
      "availability": "Availability/booking fees not verified.",
      "bookingUrl": "https://www.kidsproof.nl/leiden/uitje/zwembad-de-zijl-halloween-disco-in-het-zwembad/",
      "officialUrl": "https://www.instagram.com/p/DeZMrhJiFg0/",
      "photoUrl": null,
      "photoPageUrl": "https://www.kidsproof.nl/leiden/uitje/zwembad-de-zijl-halloween-disco-in-het-zwembad/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [
        {
          "label": "exact post linked by 2026 Kidsproof event (content not retrievable)",
          "url": "https://www.instagram.com/p/DeZMrhJiFg0/"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "family-events publisher",
          "url": "https://www.kidsproof.nl/leiden/uitje/zwembad-de-zijl-halloween-disco-in-het-zwembad/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Moderate: spooky pool/dim lights/DJ",
        "€7.50 per person; five paying people €37.50."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "leiden-wedde",
      "title": "Halloween AquaDisco at Het Wedde",
      "venue": "Halloween AquaDisco at Het Wedde",
      "city": "Voorschoten",
      "category": "community",
      "summary": "Halloween swim disco.",
      "fitReason": "Age eligible; swimming diploma/adult access requirements not verified, so do not recommend until checked",
      "ageMin": null,
      "ageMax": 12,
      "scareLevel": "mild",
      "scareNote": "Moderate: pool disco, lighting/music Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-24",
          "start": "19:00",
          "end": "21:00",
          "label": "19:00–21:00",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-24; 19:00–21:00",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Children 3 × €7.50 presale throughOct 23=€22.50; door 3 × €8.50=€25.50. Adult access/charges unknown, so complete family total unknown.",
        "notes": "Children 3 × €7.50 presale throughOct 23=€22.50; door 3 × €8.50=€25.50. Adult access/charges unknown, so complete family total unknown.",
        "kind": "unknown"
      },
      "duration": "2 hours",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Richard Wagnerlaan 85, 2253 CD Voorschoten",
      "coordinates": {
        "lat": 52.13913409,
        "lng": 4.45192674
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Richard%20Wagnerlaan%2085%2C%202253%20CD%20Voorschoten",
      "availability": "Presale advertised; current venue event link returns 404. No availability verified.",
      "bookingUrl": "https://www.vakerinvoorschoten.nl/nl/uitagenda/halloween-aquadisco-het-wedde/",
      "officialUrl": "https://www.vakerinvoorschoten.nl/nl/uitagenda/halloween-aquadisco-het-wedde/",
      "photoUrl": null,
      "photoPageUrl": "https://www.vakerinvoorschoten.nl/nl/uitagenda/halloween-aquadisco-het-wedde/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "town tourism",
          "url": "https://www.vakerinvoorschoten.nl/nl/uitagenda/halloween-aquadisco-het-wedde/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "organizer",
          "url": "https://wedde.sportfondsen.nl/nieuws/",
          "checkedAt": "2026-10-20",
          "supports": "News index includes event, specific page unavailable"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Richard+Wagnerlaan+85%2C+2253+CD+Voorschoten&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Richard Wagnerlaan 85, 2253CD Voorschoten. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Moderate: pool disco, lighting/music",
        "Children 3 × €7.50 presale throughOct 23=€22.50; door 3 × €8.50=€25.50. Adult access/charges unknown, so complete family total unknown.",
        "Presale advertised; current venue event link returns 404. No availability verified."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Richard Wagnerlaan 85, 2253CD Voorschoten. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-liethorp",
      "title": "Halloween at Manege Liethorp",
      "venue": "Halloween at Manege Liethorp",
      "city": "Leiderdorp",
      "category": "community",
      "summary": "Halloween haunted walk and children’s disco at riding school.",
      "fitReason": "Could fit, but minimum age and intensity need confirmation",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Moderate/unknown: haunted walk and disco Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-24",
          "start": "18:00",
          "end": null,
          "label": "From 18:00; end unpublished",
          "status": "unconfirmed"
        }
      ],
      "dateText": "2026-10-24; From 18:00; end unpublished",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€5 pp; if all five charged €25. Adult charges not clearly distinguished.",
        "notes": "€5 pp; if all five charged €25. Adult charges not clearly distinguished.",
        "kind": "unknown"
      },
      "duration": "Unpublished",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Bloemerd 5, 2353 BZ Leiderdorp",
      "coordinates": {
        "lat": 52.1681693,
        "lng": 4.54010773
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Bloemerd%205%2C%202353%20BZ%20Leiderdorp",
      "availability": "Signup required. Detailed Kidsproof page saysSatOct 24, 2026; another listing surfacedOct 25. Organizer site unavailable, so date must be reconfirmed before planning.",
      "bookingUrl": "https://www.kidsproof.nl/leiden/uitje/manege-leiderdorp-liethorp-halloween-herfstvakantie/",
      "officialUrl": "https://www.liethorp.nl/",
      "photoUrl": null,
      "photoPageUrl": "https://www.kidsproof.nl/leiden/uitje/manege-leiderdorp-liethorp-halloween-herfstvakantie/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "family-events publisher",
          "url": "https://www.kidsproof.nl/leiden/uitje/manege-leiderdorp-liethorp-halloween-herfstvakantie/",
          "checkedAt": "2026-10-20",
          "supports": "Explicit detailed 2026 date; conflict with other listing"
        },
        {
          "label": "organizer",
          "url": "https://www.liethorp.nl/",
          "checkedAt": "2026-10-20",
          "supports": "Unavailable during check"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Bloemerd+5%2C+2353+BZ+Leiderdorp&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Bloemerd 5, 2353BZ Leiderdorp. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "unconfirmed",
      "caveats": [
        "Moderate/unknown: haunted walk and disco",
        "€5 pp; if all five charged €25. Adult charges not clearly distinguished.",
        "Signup required. Detailed Kidsproof page saysSatOct 24, 2026; another listing surfacedOct 25. Organizer site unavailable, so date must be reconfirmed before planning."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "date-unconfirmed",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Bloemerd 5, 2353BZ Leiderdorp. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-voorschoten-scare",
      "title": "Voorschoten Scare Zone",
      "venue": "Voorschoten Scare Zone",
      "city": "Voorschoten",
      "category": "community",
      "summary": "Decorated houses, candy, actors and effects in Bijdorp/Starrenburg.",
      "fitReason": "Not a default recommendation for younger children; actors and effects may be too frightening.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "intense",
      "scareNote": "Moderate-to-high, uncontrolled neighbourhood scares Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": null,
          "end": null,
          "label": "Evening; exact route/times announced on Facebook, not retrieved",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; Evening; exact route/times announced on Facebook, not retrieved",
      "price": {
        "adult": null,
        "child": null,
        "family5": 0,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Listed free.",
        "notes": "Listed free.",
        "kind": "free-entry"
      },
      "duration": "Unpublished",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Bijdorp / Starrenburg, Voorschoten",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Bijdorp%20/%20Starrenburg%2C%20Voorschoten",
      "availability": "No booking indicated; exact 2026 route not verified.",
      "bookingUrl": "https://www.kidsproof.nl/leiden/uitje/voorschoten-scare-zone-halloween-kinderhalloween/",
      "officialUrl": "https://www.kidsproof.nl/leiden/uitje/voorschoten-scare-zone-halloween-kinderhalloween/",
      "photoUrl": null,
      "photoPageUrl": "https://www.kidsproof.nl/leiden/uitje/voorschoten-scare-zone-halloween-kinderhalloween/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [
        {
          "label": "organizer profile (content not retrievable)",
          "url": "https://www.facebook.com/HalloweenVoorschoten/"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "family-events publisher",
          "url": "https://www.kidsproof.nl/leiden/uitje/voorschoten-scare-zone-halloween-kinderhalloween/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Moderate-to-high, uncontrolled neighbourhood scares",
        "Listed free.",
        "No booking indicated; exact 2026 route not verified."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "age-caution",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "leiden-vlietwijk",
      "title": "Halloween in Vlietwijk",
      "venue": "Halloween in Vlietwijk",
      "city": "Voorschoten",
      "category": "community",
      "summary": "Neighbourhood Halloween route with advance wristband collection.",
      "fitReason": "Suitability for younger children is unknown until route and scare details are confirmed.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Unknown Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-30",
          "start": null,
          "end": null,
          "label": "Start time supplied at wristband pickup; exact event hours unpublished",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-30; Start time supplied at wristband pickup; exact event hours unpublished",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Price not published.",
        "notes": "Price not published.",
        "kind": "unknown"
      },
      "duration": "Unpublished",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Albert Schweitzerplantsoen 21, 2251 JP Voorschoten",
      "coordinates": {
        "lat": 52.12705856,
        "lng": 4.45779561
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Albert%20Schweitzerplantsoen%2021%2C%202251%20JP%20Voorschoten",
      "availability": "Sign up in person Oct 28 12:30–15:00 or 19:00–20:00, orOct 30 15:00–16:00 at listed address; receive wristband/start time.",
      "bookingUrl": "https://www.vakerinvoorschoten.nl/nl/uitagenda/halloween-in-vlietwijk/",
      "officialUrl": "https://www.vakerinvoorschoten.nl/nl/uitagenda/halloween-in-vlietwijk/",
      "photoUrl": null,
      "photoPageUrl": "https://www.vakerinvoorschoten.nl/nl/uitagenda/halloween-in-vlietwijk/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "town tourism",
          "url": "https://www.vakerinvoorschoten.nl/nl/uitagenda/halloween-in-vlietwijk/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Albert+Schweitzerplantsoen+21%2C+2251+JP+Voorschoten&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Albert Schweitzerplantsoen 21, 2251JP Voorschoten. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Unknown",
        "Price not published.",
        "Sign up in person Oct 28 12:30–15:00 or 19:00–20:00, orOct 30 15:00–16:00 at listed address; receive wristband/start time."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "coordinateNote": "PDOK/BAG address point for Albert Schweitzerplantsoen 21, 2251JP Voorschoten. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-stevenshof",
      "title": "Halloween Stevenshofpark",
      "venue": "Halloween Stevenshofpark",
      "city": "Leiden",
      "category": "community",
      "summary": "Neighbourhood Halloween evening; municipality confirms 2026 permit but program not found.",
      "fitReason": "Suitability is unknown; confirm age and scare information before taking younger children.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Unknown Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "19:00",
          "end": "23:00",
          "label": "Permit 19:00–23:00; actual participant schedule unverified",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; Permit 19:00–23:00; actual participant schedule unverified",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Price unknown.",
        "notes": "Price unknown.",
        "kind": "unknown"
      },
      "duration": "Unpublished",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Stevenshofpark, Leiden",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Stevenshofpark%2C%20Leiden",
      "availability": "Registration/capacity unknown. Permit is not equivalent to participant details.",
      "bookingUrl": "https://gemeente.leiden.nl/nieuws-en-publicaties/nieuws/gemeenteberichten-week-39-2026/",
      "officialUrl": "https://gemeente.leiden.nl/nieuws-en-publicaties/nieuws/gemeenteberichten-week-39-2026/",
      "photoUrl": null,
      "photoPageUrl": "https://gemeente.leiden.nl/nieuws-en-publicaties/nieuws/gemeenteberichten-week-39-2026/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "municipality",
          "url": "https://gemeente.leiden.nl/nieuws-en-publicaties/nieuws/gemeenteberichten-week-39-2026/",
          "checkedAt": "2026-10-20",
          "supports": "Permit grantedSep 24, 2026 forOct 31, 19–23"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Unknown",
        "Price unknown.",
        "Registration/capacity unknown. Permit is not equivalent to participant details."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "leiden-museum-day",
      "title": "Día de Muertos day at Wereldmuseum",
      "venue": "Wereldmuseum Leiden",
      "city": "Leiden",
      "category": "storytelling",
      "summary": "Día de Muertos stories, sugar-skull making and miniature altars. Distinct cultural holiday, not Halloween.",
      "fitReason": "Children under six can join the altar and story activities but not most published workshops; children aged six and over have more options.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Low, cultural day about remembrance, not horror Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-11-01",
          "start": "10:00",
          "end": "17:00",
          "label": "Museum/altar 10:00–17:00; all-age story 12:30–12:45; 6+theatre 14:00–14:45",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-11-01; Museum/altar 10:00–17:00; all-age story 12:30–12:45; 6+theatre 14:00–14:45",
      "price": {
        "adult": null,
        "child": null,
        "family5": 45,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Illustrative base admission: €45 online/€52 at the door for two adults, two children aged 6–18 and one child under six; other age mixes change the total. Sugar-skull workshops cost €2.50 per eligible child: two workshop places add €5, giving €50 online for this example. Children under six are not eligible for the workshop.",
        "notes": "Illustrative base admission: €45 online/€52 at the door for two adults, two children aged 6–18 and one child under six; other age mixes change the total. Sugar-skull workshops cost €2.50 per eligible child: two workshop places add €5, giving €50 online for this example. Children under six are not eligible for the workshop.",
        "kind": "published-base-price",
        "family5WithValidMuseumkaarten": 0,
        "museumkaartCondition": "Admission only: assumes each visitor who needs a paid ticket has a valid Museumkaart. Optional paid workshops remain extra."
      },
      "duration": "Full-day program; choose activities",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time. Central Leiden venue; station-to-venue route not timed.",
      "address": "Steenstraat 1, 2312 BS Leiden",
      "coordinates": {
        "lat": 52.16356753,
        "lng": 4.48406057
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Steenstraat%201%2C%202312%20BS%20Leiden",
      "availability": "Workshops subject to space/tickets; live availability not checked. Sugar-skull sessions 11:00, 12:15, 13:30, 14:45, each 45 min.",
      "bookingUrl": "https://leiden.wereldmuseum.nl/nl/zien-en-doen/activiteiten/event-dia-de-muertos",
      "officialUrl": "https://leiden.wereldmuseum.nl/nl/zien-en-doen/activiteiten/event-dia-de-muertos",
      "photoUrl": null,
      "photoPageUrl": "https://leiden.wereldmuseum.nl/nl/zien-en-doen/activiteiten/event-dia-de-muertos",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [
        {
          "label": "official venue profile (content not retrievable)",
          "url": "https://www.facebook.com/wereldmuseum.leiden/"
        }
      ],
      "review": {
        "rating": 4.5,
        "count": 3499,
        "scope": "venue",
        "sourceUrl": "https://wanderlog.com/nl/place/details/34445/wereldmuseum-leiden",
        "note": "A 4/5 review found displays atmospheric and interesting for children, with some exhibit disappointment. Venue review, not Día de Muertos. Review date: 2026-02-23. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://leiden.wereldmuseum.nl/nl/zien-en-doen/activiteiten/event-dia-de-muertos",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        },
        {
          "label": "organizer",
          "url": "https://leiden.wereldmuseum.nl/nl/plan-je-bezoek-in-wereldmuseum-leiden/openingstijden-en-prijzen",
          "checkedAt": "2026-10-20",
          "supports": "Tariffs"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Steenstraat+1%2C+2312+BS+Leiden&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Steenstraat 1, 2312BS Leiden. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Low, cultural day about remembrance, not horror",
        "Illustrative base admission: €45 online/€52 at the door for two adults, two children aged 6–18 and one child under six; other age mixes change the total. Sugar-skull workshops cost €2.50 per eligible child: two workshop places add €5, giving €50 online for this example. Children under six are not eligible for the workshop.",
        "Children under six cannot join most workshops; choose the all-age story and altar activities instead of the 6+ sessions."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Accepted; museum admission free with valid card, optional workshop fees remain.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": true,
      "status": "six-plus-guidance",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "userAgePreference": "Keep 6+ options in recommendations as explicitly requested; published guidance remains visible.",
      "coordinateNote": "PDOK/BAG address point for Steenstraat 1, 2312BS Leiden. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "leiden-rusthoff",
      "title": "Halloween Park Party: Movie Night",
      "venue": "Halloween Park Party: Movie Night",
      "city": "Sassenheim",
      "category": "community",
      "summary": "Lantern parade and island games for younger children; movie-themed haunted route for braver children.",
      "fitReason": "Choose young-child island games/lantern parade; older-child outer route is scarier",
      "ageMin": null,
      "ageMax": 12,
      "scareLevel": "mild",
      "scareNote": "Mixed: gentle young-child section and stronger haunted trail Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-24",
          "start": "19:00",
          "end": "21:00",
          "label": "Gates 18:30; event 19:00–21:00; finale 20:45",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-24; Gates 18:30; event 19:00–21:00; finale 20:45",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Ticket price not found.",
        "notes": "Ticket price not found.",
        "kind": "unknown"
      },
      "duration": "2 hours plus entry",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Park Rusthoff, entrance Hoofdstraat / J. P. Gouverneurlaan, Sassenheim",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Park%20Rusthoff%2C%20entrance%20Hoofdstraat%20/%20J.%20P.%20Gouverneurlaan%2C%20Sassenheim",
      "availability": "Advance tickets only, in person at Garage Borst on Parklaan fromOct 3; fewer tickets than usual, availability unknown. Previously issued orange/purple tickets valid.",
      "bookingUrl": "https://parkrusthoff.nl/2026/09/28/halloween-park-party-in-park-rusthoff-dit-jaar-is-het-movie-night/",
      "officialUrl": "https://parkrusthoff.nl/2026/09/28/halloween-park-party-in-park-rusthoff-dit-jaar-is-het-movie-night/",
      "photoUrl": null,
      "photoPageUrl": "https://parkrusthoff.nl/2026/09/28/halloween-park-party-in-park-rusthoff-dit-jaar-is-het-movie-night/",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://parkrusthoff.nl/2026/09/28/halloween-park-party-in-park-rusthoff-dit-jaar-is-het-movie-night/",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date verified"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Mixed: gentle young-child section and stronger haunted trail",
        "Ticket price not found."
      ],
      "language": "Advertised in Dutch; English delivery not verified. Mostly visual activity unless noted.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "ageNote": null
    },
    {
      "id": "leiden-palace-film",
      "title": "Palace Kids Movie Night: Hotel Transylvania op zijn kop",
      "venue": "Palace Kids Movie Night: Hotel Transylvania op zijn kop",
      "city": "Noordwijk",
      "category": "film",
      "summary": "Dutch-language film with themed three-course dinner and welcome drink. Current organizer identifies the 2022 sequel, not the 2012 original still shown in tourism copy.",
      "fitReason": "The film is rated 6; children under six are below that rating. Assess suitability despite the tourism listing’s all-ages tag, and check admission with the organizer.",
      "ageMin": 6,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Moderate animated monster peril, loud cinema sound/dark room Editorial assessment, not a guarantee.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "17:00",
          "end": "20:30",
          "label": "Doors 17:00; film 17:30; tourism listing ends 20:30",
          "status": "confirmed"
        }
      ],
      "dateText": "2026-10-31; Doors 17:00; film 17:30; tourism listing ends 20:30",
      "price": {
        "adult": null,
        "child": null,
        "family5": 163.5,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "2 × €49.50 adults + 3 × €21.50 children = €163.50. Includes three-course dinner and welcome drink; other drinks/parking/any unshown fees extra.",
        "notes": "2 × €49.50 adults + 3 × €21.50 children = €163.50. Includes three-course dinner and welcome drink; other drinks/parking/any unshown fees extra.",
        "kind": "published-base-price"
      },
      "duration": "Event about 3.5 hours per tourism listing; film approximately 88 minutes",
      "transitMinutesEstimate": null,
      "routingNotes": "No live public-transport journey checked. Use map link and a live planner for the chosen departure time.",
      "address": "Picképlein 8, 2202 CL Noordwijk",
      "coordinates": {
        "lat": 52.24170204,
        "lng": 4.4319633
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Pick%C3%A9plein%208%2C%202202%20CL%20Noordwijk",
      "availability": "Reserve table in advance via organizer. No live remaining availability checked; no booking made. Free cancellation until 24 hours before; later charge not stated.",
      "bookingUrl": "https://www.valknoordwijk.nl/evenement/palace-kids-movie-night-hotel-transylvania",
      "officialUrl": "https://www.valknoordwijk.nl/evenement/palace-kids-movie-night-hotel-transylvania",
      "photoUrl": null,
      "photoPageUrl": "https://www.valknoordwijk.nl/evenement/palace-kids-movie-night-hotel-transylvania",
      "photoRights": "No reuse licence verified; source photos not copied.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "none",
        "sourceUrl": null,
        "note": "No reliable event-specific review found; no venue score substituted. Checked October 20, 2026; not a 2026 event review."
      },
      "sources": [
        {
          "label": "organizer",
          "url": "https://www.valknoordwijk.nl/evenement/palace-kids-movie-night-hotel-transylvania",
          "checkedAt": "2026-10-20",
          "supports": "Current 2026 date, prices, 2022 sequel and cancellation policy"
        },
        {
          "label": "organizer",
          "url": "https://www.valknoordwijk.nl/en/events/palace-kids-movie-night-hotel-transylvania",
          "checkedAt": "2026-10-20",
          "supports": "Explicit Dutch-language screening"
        },
        {
          "label": "official tourism",
          "url": "https://www.noordwijk.info/en/discover-noordwijk/events/2987800871/palace-kids-movie-night-hotel-transylvania",
          "checkedAt": "2026-10-20",
          "supports": "Address and 17:00–20:30; film title/year is older copy, use organizer instead"
        },
        {
          "label": "film distributor",
          "url": "https://tv.apple.com/nl/movie/hotel-transsylvanie-op-zijn-kop/umc.cmc.11xpfsgnvcvf647reuo8vde9u",
          "checkedAt": "2026-10-20",
          "supports": "Dutch listing classification 6, violence/fear; approximately 88 minutes"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Pick%C3%A9plein+8%2C+2202+CL+Noordwijk&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Picképlein 8, 2202CL Noordwijk. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Moderate animated monster peril, loud cinema sound/dark room",
        "2 × €49.50 adults + 3 × €21.50 children = €163.50. Includes three-course dinner and welcome drink; other drinks/parking/any unshown fees extra.",
        "Reserve table in advance via organizer. No live remaining availability checked; no booking made. Free cancellation until 24 hours before; later charge not stated.",
        "Organizer now names 2022 sequel. Tourism still describes 2012 original and labels all ages; do not rely on that stale film/age text. Current Dutch distribution listing rates sequel 6 for violence/fear."
      ],
      "language": "Explicitly Dutch-language screening; no English subtitles promised.",
      "museumkaart": "Not applicable / no acceptance claim verified.",
      "foodNote": "Ingredients and cross-contact controls have not been verified. Check treats and shared food against any dietary requirements before participating.",
      "fitAllThree": false,
      "recommended": true,
      "status": "six-plus-guidance",
      "socialNote": "Exact post only for De Zijl, linked by current listing but content inaccessible. Other links are venue/organizer profiles, not verified 2026 posts.",
      "availabilityCheckedAt": "2026-10-20",
      "userAgePreference": "Keep 6+ options in recommendations as explicitly requested; published guidance remains visible.",
      "coordinateNote": "PDOK/BAG address point for Picképlein 8, 2202CL Noordwijk. This verifies the public address, not the event entrance.",
      "ageNote": null,
      "ageRuleLabel": "Film rating 6 · check admission"
    },
    {
      "id": "julianatoren-griezelschool",
      "title": "Julianatoren: De Griezelschool",
      "venue": "Julianatoren: De Griezelschool",
      "city": "Apeldoorn",
      "category": "Halloween theme park",
      "summary": "Witch lessons, cheerful ghosts, Halloween shows and a spooky diploma at a park built for younger children.",
      "fitReason": "A strong larger-park option for families with younger children.",
      "ageMin": 2,
      "ageMax": 10,
      "scareLevel": "mild",
      "scareNote": "Choose cheerful shows and ghosts first; individual walkthroughs may feel scarier. Ride restrictions depend on height, not age.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-30",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "10:30",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-11-01",
          "start": "10:30",
          "end": "17:00",
          "label": "Event range includes this day; November ticket calendar and exact hours not independently checked.",
          "status": "unconfirmed"
        }
      ],
      "dateText": "21–25, 30–31 October and 1 November. Closed 26–29 October. Nov 1 opening supported by event range; price not yet checked.",
      "price": {
        "adult": 20,
        "child": 20,
        "family5": 100,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Live calendar: €20 each on Oct 21/23/24/25/30; €23 on Oct 22 (€115 family); €27.50 Oct 31 (€137.50 family). Gate €29.95 each (€149.75). Trick-or-treat, Schrik Academie and pumpkin carving cost extra. Mandatory fees not verified at checkout. Parking omitted.",
        "datePrices": {
          "2026-10-21": 100,
          "2026-10-22": 115,
          "2026-10-23": 100,
          "2026-10-24": 100,
          "2026-10-25": 100,
          "2026-10-30": 100,
          "2026-10-31": 137.5
        },
        "kind": "from",
        "dateUnitPrices": {
          "2026-10-21": {
            "adult": 20.0,
            "child": 20.0
          },
          "2026-10-22": {
            "adult": 23.0,
            "child": 23.0
          },
          "2026-10-23": {
            "adult": 20.0,
            "child": 20.0
          },
          "2026-10-24": {
            "adult": 20.0,
            "child": 20.0
          },
          "2026-10-25": {
            "adult": 20.0,
            "child": 20.0
          },
          "2026-10-30": {
            "adult": 20.0,
            "child": 20.0
          },
          "2026-10-31": {
            "adult": 27.5,
            "child": 27.5
          }
        }
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        115,
        150
      ],
      "routingNotes": "Train via Utrecht/Amersfoort to Apeldoorn. Bus 102 serves the Julianatoren entrance; the NS guide explicitly documents boarding at Marktplein. Check the dated planner for the best station connection and return. No exact departure checked.",
      "address": "Amersfoortseweg 35, 7313 AC Apeldoorn",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "availability": "Oct 21–25/30/31 were priced and selectable in official live calendar at 12:10 UTC Oct 20. Does not guarantee five tickets remain. Subsequent calendar interaction timed out; no purchase/hold made.",
      "bookingUrl": "https://www.julianatoren.nl/tickets-online/",
      "officialUrl": "https://www.julianatoren.nl/evenementen/halloween/",
      "photoUrl": "https://www.julianatoren.nl/wp-content/uploads/2025/09/JT2025-Halloween-Griezelschool-Website-1280x720-1.jpg",
      "photoPageUrl": "https://www.julianatoren.nl/evenementen/halloween/",
      "photoRights": "Official promotional image linked from the cited page. Copyright remains with its owner; no open reuse licence verified. Credit the venue/photographer where stated.",
      "socialLinks": [
        {
          "label": "Official Instagram profile",
          "url": "https://www.instagram.com/dejulianatoren/"
        },
        {
          "label": "Official Facebook profile",
          "url": "https://www.facebook.com/julianatoren/"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "venue",
        "sourceUrl": "https://nl.trustpilot.com/review/www.julianatoren.nl",
        "note": "Mixed self-selected venue reviews: June 2026 family praised young-child fit and staff; Aug 2026 visitor criticised queues and short hours. Not a 2026 Halloween score."
      },
      "sources": [
        {
          "label": "Official Halloween program",
          "url": "https://www.julianatoren.nl/evenementen/halloween/",
          "checkedAt": "2026-10-20",
          "supports": "Live cloud browser: program and date range"
        },
        {
          "label": "Official pricing",
          "url": "https://www.julianatoren.nl/info/toegangsprijzen/",
          "checkedAt": "2026-10-20",
          "supports": "Live browser: gate €29.95; online varies"
        },
        {
          "label": "Official dated ticket calendar",
          "url": "https://tickets.julianatoren.nl/tickets-op-datum",
          "checkedAt": "2026-10-20",
          "supports": "Live browser: listed date prices and closed days"
        },
        {
          "label": "NS family guide",
          "url": "https://www.ns.nl/dagje-uit/steden/apeldoorn/apeldoorn-kinderen",
          "checkedAt": "2026-10-20",
          "supports": "Bus 102 to entrance; do not use outdated admission price"
        },
        {
          "label": "Venue reviews",
          "url": "https://nl.trustpilot.com/review/www.julianatoren.nl",
          "checkedAt": "2026-10-20",
          "supports": "Dated 2026 venue opinions"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Official live event page says Oct 2–Nov 1; older homepage/search snippets say Oct 3–Nov 1. This does not affect requested dates.",
        "Some attraction/show subpages still carry 2025 dates; live ticket calendar takes precedence.",
        "Mainly outdoors. On quiet/rainy days rides may alternate operation.",
        "Exact adult/child ride eligibility requires their heights."
      ],
      "duration": "5–6 hours suggested",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Amersfoortseweg%2035%2C%207313%20AC%20Apeldoorn",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "agePolicy": "Park mainly targets ages 2–10; this is not a strict admission rule. Height restrictions remain ride-specific.",
      "ageNote": null
    },
    {
      "id": "uitgelicht-openluchtmuseum",
      "title": "Uitgelicht light walk",
      "venue": "Nederlands Openluchtmuseum",
      "city": "Arnhem",
      "category": "Autumn-adjacent, not Halloween",
      "summary": "An after-dark route through historic buildings, with projections and the story of physician Christine Bader.",
      "fitReason": "Best Museumkaart evening value; no horror performers advertised.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "All ages officially. Story includes childhood illness, crisis and war; not a Halloween scare event.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "18:00",
          "end": "23:00",
          "label": "Timed entry; choose an early slot",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "18:00",
          "end": "23:00",
          "label": "Timed entry; choose an early slot",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "18:00",
          "end": "23:00",
          "label": "Timed entry; choose an early slot",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "18:00",
          "end": "23:00",
          "label": "Timed entry; choose an early slot",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "18:00",
          "end": "23:00",
          "label": "Timed entry; choose an early slot",
          "status": "confirmed"
        }
      ],
      "dateText": "Every evening 21–25 October; event ends Oct 25.",
      "price": {
        "adult": 5,
        "child": 5,
        "family5": 25,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€5 each with valid Museumkaart. Without cards: adults €24.50, ages 4–12 €19 = €106 family. Event ticket required even with Museumkaart; no parking needed.",
        "kind": "family-admission"
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        120,
        155
      ],
      "routingNotes": "Train via Utrecht to Arnhem Centraal; bus 3 toward Burgers’ Zoo/Openluchtmuseum; 450 m walk from stop. Early 18:00 slot avoids a very late return. Return timetable not checked.",
      "address": "Hoeferlaan 4, 6816 SG Arnhem",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "availability": "Event confirmed; live capacity not verified.",
      "bookingUrl": "https://www.openluchtmuseum.nl/nl/uitgelicht",
      "officialUrl": "https://www.openluchtmuseum.nl/nl/uitgelicht",
      "photoUrl": null,
      "photoPageUrl": "https://www.openluchtmuseum.nl/nl/uitgelicht",
      "photoRights": "Official promotional image; copyright remains with owner. No open reuse licence verified. Link/attribute; do not imply own photography.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": "https://www.dagjewegtickets.nl/tips/16-nederlands-openluchtmuseum/reviews/",
        "note": "Two verified Oct 2024 Uitgelicht visitor comments: one called it impressive; another liked production but found story simplified. Different annual story, not a 2026 review."
      },
      "sources": [
        {
          "label": "Official event",
          "url": "https://www.openluchtmuseum.nl/nl/uitgelicht",
          "checkedAt": "2026-10-20",
          "supports": "2026 dates, all ages, duration and route"
        },
        {
          "label": "Official prices",
          "url": "https://www.openluchtmuseum.nl/nl/openingstijden",
          "checkedAt": "2026-10-20",
          "supports": "Museumkaart surcharge and 18–23 h window"
        },
        {
          "label": "Official route",
          "url": "https://www.openluchtmuseum.nl/nl/route",
          "checkedAt": "2026-10-20",
          "supports": "Bus 3 and 450 m last mile"
        },
        {
          "label": "Older event reviews",
          "url": "https://www.dagjewegtickets.nl/tips/16-nederlands-openluchtmuseum/reviews/",
          "checkedAt": "2026-10-20",
          "supports": "2024 event-only comments"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Not Halloween.",
        "Online timed reservation needed; remaining slots not verified.",
        "Museum changes to limited walking-park operation from Oct 26; historic buildings close and tram stops."
      ],
      "duration": "Official 1.5–2 hours; about 2 km",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Hoeferlaan%204%2C%206816%20SG%20Arnhem",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "ageNote": null
    },
    {
      "id": "dinoadventures-amersfoort",
      "title": "DinoAdventures + Mini DinoAdventures",
      "venue": "DierenPark Amersfoort",
      "city": "Amersfoort",
      "category": "Autumn-adjacent adventure",
      "summary": "Rescue a dinosaur youngster on an outdoor forest adventure, then explore the zoo and climbing routes.",
      "fitReason": "An adventurous alternative, with a gentler early version for younger children.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Mini 10–11 is aimed at children up to 5. Regular route 11–17 becomes scarier halfway; an escape route allows younger children to leave before the intense section.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "10:00",
          "end": "17:00",
          "label": "Mini 10–11; regular 11–17",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "10:00",
          "end": "17:00",
          "label": "Mini 10–11; regular 11–17",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "10:00",
          "end": "17:00",
          "label": "Mini 10–11; regular 11–17",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "10:00",
          "end": "17:00",
          "label": "Mini 10–11; regular 11–17",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "10:00",
          "end": "17:00",
          "label": "Mini 10–11; regular 11–17",
          "status": "confirmed"
        }
      ],
      "dateText": "21–25 October only in this window.",
      "price": {
        "adult": 23,
        "child": 23,
        "family5": 115,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Official limited DINO promotion: €23 per person if still available. Event included with admission. Museumkaart does not cover zoo. No parking needed.",
        "kind": "limited-promotion"
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        85,
        115
      ],
      "routingNotes": "Train via Utrecht to Amersfoort Centraal; bus 70 takes about 5 min to park entrance (official). Exact trip not scheduled.",
      "address": "Barchman Wuytierslaan 224, 3819 AC Amersfoort",
      "coordinates": {
        "lat": 52.1518085,
        "lng": 5.34804064
      },
      "availability": "Event confirmed; live capacity not verified.",
      "bookingUrl": "https://dierenparkamersfoort.nl/dinoadventures/",
      "officialUrl": "https://dierenparkamersfoort.nl/dinoadventures/",
      "photoUrl": "https://dierenparkamersfoort.nl/wp-content/uploads/2025/03/DinoAdventures-2023-DierenPark-Amersfoort-5-scaled.jpg",
      "photoPageUrl": "https://dierenparkamersfoort.nl/dinoadventures/",
      "photoRights": "Official promotional image linked from the cited page. Copyright remains with its owner; no open reuse licence verified. Credit the venue/photographer where stated.",
      "socialLinks": [
        {
          "label": "Official 2026 event video",
          "url": "https://www.youtube-nocookie.com/embed/yGWl4taUbEc?feature=oembed"
        }
      ],
      "review": {
        "rating": 4.5,
        "count": 21814,
        "scope": "venue",
        "sourceUrl": "https://wanderlog.com/place/details/232247",
        "note": "Google venue rating as republished by Wanderlog; retrieved Oct 20, not a DinoAdventures score. A Feb 2026 parent praised play areas/Dinopark but criticised food."
      },
      "sources": [
        {
          "label": "Official 2026 event",
          "url": "https://dierenparkamersfoort.nl/dinoadventures/",
          "checkedAt": "2026-10-20",
          "supports": "Dates, Mini times, intensity split andDINO offer"
        },
        {
          "label": "Official practical info",
          "url": "https://dierenparkamersfoort.nl/praktische-info/",
          "checkedAt": "2026-10-20",
          "supports": "Address andbus 70"
        },
        {
          "label": "Venue reviews",
          "url": "https://wanderlog.com/place/details/232247",
          "checkedAt": "2026-10-20",
          "supports": "Republished Google rating, not event"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Barchman+Wuytierslaan+224%2C+3819+AC+Amersfoort&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Barchman Wuytierslaan 224, 3819AC Amersfoort. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Not a named Halloween celebration.",
        "Do not promise the 7/6-year-olds fit the Mini age target; regular has a gentle exit option.",
        "Outdoor obstacles and dirt; wear practical clothes."
      ],
      "duration": "Adventure time not published; allow 4–6 h zoo visit",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Barchman%20Wuytierslaan%20224%2C%203819%20AC%20Amersfoort",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "coordinateNote": "PDOK/BAG address point for Barchman Wuytierslaan 224, 3819AC Amersfoort. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "halloween-xxl-utrecht",
      "title": "Halloween XXL",
      "venue": "Leidsche Rijn Centrum",
      "city": "Utrecht",
      "category": "Halloween street celebration",
      "summary": "A shop-window clue hunt, characters and a fire show, with separate haunted-house attractions.",
      "fitReason": "Easiest wider-area rail option; concentrate on the daytime hunt rather than haunted houses.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "No published age or intensity rating for haunted house. For younger children, choose the hunt and atmosphere and skip house unless suitability is confirmed.",
      "dates": [
        {
          "date": "2026-10-28",
          "start": "12:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-29",
          "start": "12:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-30",
          "start": "12:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "12:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-11-01",
          "start": "12:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-30",
          "start": "15:00",
          "end": "19:30",
          "label": "Main hunt/entertainment; fire show 19:00",
          "status": "confirmed"
        }
      ],
      "dateText": "28 Oct–1 Nov 12–17; main family event Fri 30 Oct 15–19:30.",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Transport and food extra unless stated.",
        "kind": "unknown"
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        50,
        75
      ],
      "routingNotes": "Train from Zoetermeer toward Utrecht; use Utrecht Leidsche Rijn station and walk into centre. Exact connection depends on route. Excellent last-mile fit.",
      "address": "Grauwaartsingel 1 A, 3541 DA Utrecht",
      "coordinates": {
        "lat": 52.097886,
        "lng": 5.061362
      },
      "availability": "Event confirmed; live capacity not verified.",
      "bookingUrl": "https://www.ontdek-utrecht.nl/event/149592/halloween-xxl",
      "officialUrl": "https://www.ontdek-utrecht.nl/event/149592/halloween-xxl",
      "photoUrl": "https://assets.plaece.nl/odp-ubase/image/halloween-leidsche-rijn-centrum-ondernemersfonds-utrecht-3_1527226706.jpg",
      "photoPageUrl": "https://www.ontdek-utrecht.nl/event/149592/halloween-xxl",
      "photoRights": "Official promotional image linked from the cited page. Copyright remains with its owner; no open reuse licence verified. Credit the venue/photographer where stated.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review score found."
      },
      "sources": [
        {
          "label": "Official Utrecht tourism listing",
          "url": "https://www.ontdek-utrecht.nl/event/149592/halloween-xxl",
          "checkedAt": "2026-10-20",
          "supports": "Exact 2026 dates, public programme, address, map"
        },
        {
          "label": "Venue events archive",
          "url": "https://leidscherijncentrum.nl/events/",
          "checkedAt": "2026-10-20",
          "supports": "Confirms event title; current direct content verification blocked"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "2026 prices/registration and precise child suitability not published in accessible source. Do not label free based on prior years.",
        "Venue page displayed verification block; tourism-board details are current 2026."
      ],
      "duration": "1–3 h suggested",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Grauwaartsingel%201%20A%2C%203541%20DA%20Utrecht",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "ageNote": null
    },
    {
      "id": "science-camp-halloween",
      "title": "The Science Camp Halloween Party",
      "venue": "The Science Camp / Science Hub",
      "city": "Amsterdam",
      "category": "Halloween craft party",
      "summary": "One hour of crafts, a scavenger hunt, costume parade, dancing, trick-or-treating and lemonade.",
      "fitReason": "Explicit target ages 4–10; indoors and short.",
      "ageMin": 4,
      "ageMax": 10,
      "scareLevel": "mild",
      "scareNote": "Friendly main programme. FAQ references a haunted house and warns it may scare younger children; ask onsite/skip if needed.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "12:00",
          "end": "17:30",
          "label": "Book a one-hour slot",
          "status": "confirmed"
        }
      ],
      "dateText": "Saturday 31 October, one-hour slots during 12–17:30.",
      "price": {
        "adult": null,
        "child": 10,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Official booking page says €10 per ticket, 1 hour. Three child tickets would be €30; whether adults need paid tickets is not explicit, so family total not verified.",
        "kind": "three-child-activities",
        "childrenActivityTotal": 30
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        80,
        110
      ],
      "routingNotes": "Train to Amsterdam then GVB tram/walk to Kinkerstraat 70 A. Budget a local transit fare; NS weekend pass does not cover GVB. Exact route not scheduled.",
      "address": "Kinkerstraat 70 A, 1053 EA Amsterdam",
      "coordinates": {
        "lat": 52.36751396,
        "lng": 4.87271205
      },
      "availability": "Event confirmed; live capacity not verified.",
      "bookingUrl": "https://www.thesciencecamp.nl/service-page/halloween-ticket?referral=book_button_widget",
      "officialUrl": "https://www.thesciencecamp.nl/halloween",
      "photoUrl": "https://static.wixstatic.com/media/f58e8b_d09d1aac4d744713a78afa626dfeef73~mv2.jpg/v1/fill/w_428%2Ch_600%2Cal_c%2Cq_80%2Cusm_0.66_1.00_0.01%2Cenc_avif%2Cquality_auto/Halloween%20Party%202026_edited.jpg",
      "photoPageUrl": "https://www.thesciencecamp.nl/halloween",
      "photoRights": "Official promotional image linked from the cited page. Copyright remains with its owner; no open reuse licence verified. Credit the venue/photographer where stated.",
      "socialLinks": [
        {
          "label": "Official Instagram profile",
          "url": "https://www.instagram.com/thesciencecamp"
        },
        {
          "label": "Official Facebook profile",
          "url": "https://www.facebook.com/thesciencecamp"
        }
      ],
      "review": {
        "rating": 5,
        "count": 1,
        "scope": "venue",
        "sourceUrl": "https://kampzoek.nl/kampen/the-science-camp-amsterdam?lang=en",
        "note": "Only 1 unconfirmed Aug 2026 summer-camp review, at another camp address. Not evidence of Halloween quality; too small for ranking."
      },
      "sources": [
        {
          "label": "Official party page",
          "url": "https://www.thesciencecamp.nl/halloween",
          "checkedAt": "2026-10-20",
          "supports": "Exact 2026 date andage range"
        },
        {
          "label": "Live booking page",
          "url": "https://www.thesciencecamp.nl/service-page/halloween-ticket?referral=book_button_widget",
          "checkedAt": "2026-10-20",
          "supports": "€10 ticket and 1 h"
        },
        {
          "label": "Official FAQ",
          "url": "https://www.thesciencecamp.nl/copy-of-halloween-party",
          "checkedAt": "2026-10-20",
          "supports": "No strollers; intensity and cancellation caveat"
        },
        {
          "label": "Camp review",
          "url": "https://kampzoek.nl/kampen/the-science-camp-amsterdam?lang=en",
          "checkedAt": "2026-10-20",
          "supports": "Limited review context"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Kinkerstraat+70+A%2C+1053+EA+Amsterdam&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Kinkerstraat 70A, 1053EA Amsterdam. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Slot inventory and adult admission not verified.",
        "No strollers inside.",
        "Cancellation information conflicts: FAQ says 48 h; booking page says 7 days/€5 admin. Read terms before paying."
      ],
      "duration": "1 hour official",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Kinkerstraat%2070%20A%2C%201053%20EA%20Amsterdam",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "coordinateNote": "PDOK/BAG address point for Kinkerstraat 70A, 1053EA Amsterdam. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "noordoogst-halloween",
      "title": "Halloween: Nacht van de Doden",
      "venue": "NoordOogst",
      "city": "Amsterdam",
      "category": "Halloween theatre route",
      "summary": "Community theatre, masks, music and food around Halloween and remembering loved ones.",
      "fitReason": "Published minimum age is 5; a theatre evening rather than thrill-park horror.",
      "ageMin": 5,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Officially 5+, but dark theatre and death/remembrance themes may need preparation. Choose earliest 18:00 group.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "16:00",
          "end": "21:00",
          "label": "Theatre starts 18:00/18:30/19:00/19:30",
          "status": "confirmed"
        }
      ],
      "dateText": "31 October; arrive from 16:00, book theatre start.",
      "price": {
        "adult": 10,
        "child": 10,
        "family5": 55,
        "mandatoryFees": 5,
        "currency": "EUR",
        "note": "€10 admission plus €1 service charge per person. Family total €55 already includes all €5 in fees. Includes grounds and the chosen theatre route; food/drinks extra.",
        "kind": "total-including-fees"
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        105,
        140
      ],
      "routingNotes": "Train to Amsterdam then GVB/ferry/bus toward NoordOogst. Outer-Noord last mile is less easy than city centre; check specific evening return. Not a confirmed timetable.",
      "address": "Meteorenweg 272–280, 1035 RN Amsterdam",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "availability": "Event confirmed; live capacity not verified.",
      "bookingUrl": "https://weeztix.shop/xcn2nvcf",
      "officialUrl": "https://noordoogst.org/evenement/halloween-nacht-van-de-doden/",
      "photoUrl": "https://noordoogst.org/wp-content/uploads/2026/10/Mark-van-Holsteijn-kermis-amsterdam-2025-scaled.jpg",
      "photoPageUrl": "https://noordoogst.org/evenement/halloween-nacht-van-de-doden/",
      "photoRights": "Official promotional image linked from the cited page. Copyright remains with its owner; no open reuse licence verified. Credit the venue/photographer where stated.",
      "socialLinks": [
        {
          "label": "Official Instagram profile",
          "url": "https://www.instagram.com/noordoogst/"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review score found."
      },
      "sources": [
        {
          "label": "Official post 11 Oct 2026",
          "url": "https://noordoogst.org/evenement/halloween-nacht-van-de-doden/",
          "checkedAt": "2026-10-20",
          "supports": "Age 5+, date, times, €10+€1"
        },
        {
          "label": "Amsterdam tourism programme",
          "url": "https://www.iamsterdam.com/uit/agenda/festivals/events/magische-theaterroute-op-noordoogst",
          "checkedAt": "2026-10-20",
          "supports": "Community production andtheme;photo credit"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Ticket shop link exists; remaining slots not verified.",
        "Not a purely cheerful pumpkin party: theme includes death and memorials."
      ],
      "duration": "Route duration not published; allow 2–3 h suggested",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Meteorenweg%20272%E2%80%93280%2C%201035%20RN%20Amsterdam",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "ageNote": null
    },
    {
      "id": "nieuwe-anita-kids",
      "title": "Kids Halloween Costume Ball",
      "venue": "De Nieuwe Anita",
      "city": "Amsterdam",
      "category": "Halloween costume party",
      "summary": "An all-ages family costume afternoon with trick-or-treating, face painting and dancing.",
      "fitReason": "Classic child-friendly Halloween without a full theme-park day.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Advertised all-ages family party. Costumes and loud music; separate 21:00 adult event is not this listing.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "15:00",
          "end": "18:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "Saturday 31 October 15–18. Ignore a conflicting third-partyNov 1 listing.",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Transport and food extra unless stated.",
        "kind": "unknown"
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        80,
        110
      ],
      "routingNotes": "Train to Amsterdam then tram/walk to Frederik Hendrikstraat. Return early evening. Exact GVB route not checked.",
      "address": "Frederik Hendrikstraat 111, 1052 HN Amsterdam",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "availability": "Event confirmed; live capacity not verified.",
      "bookingUrl": "https://denieuweanita.nl/",
      "officialUrl": "https://denieuweanita.nl/",
      "photoUrl": "https://www.iamsterdam.com/_next/image?q=75&url=https%3A%2F%2Fapp.thefeedfactory.nl%2Fapi%2Fassets%2F6ab8fadee7b5420c87f5a46a%2FKid_sHalloweenCostumeBall2026_FB-EVENT_1920x1080px_V2psd.webp&w=3840",
      "photoPageUrl": "https://www.iamsterdam.com/uit/agenda/festivals/events/kids-halloween-costume-ball-2026",
      "photoRights": "Official promotional image linked from the cited page. Copyright remains with its owner; no open reuse licence verified. Credit the venue/photographer where stated.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review score found."
      },
      "sources": [
        {
          "label": "Official venue agenda",
          "url": "https://denieuweanita.nl/",
          "checkedAt": "2026-10-20",
          "supports": "31 Oct 15–18 kids party"
        },
        {
          "label": "Official tourism event",
          "url": "https://www.iamsterdam.com/uit/agenda/festivals/events/kids-halloween-costume-ball-2026",
          "checkedAt": "2026-10-20",
          "supports": "2026, date, allages, programme, address"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Current official entry price not readable. Conflicting third-party listings say free or €5 children; neither used as confirmed.",
        "Basement dancefloor stairs; accessible entry not established."
      ],
      "duration": "Up to 3 hours",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Frederik%20Hendrikstraat%20111%2C%201052%20HN%20Amsterdam",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "ageNote": null
    },
    {
      "id": "wachterlied-halloween",
      "title": "Halloweenfeest Wachterliedplantsoen",
      "venue": "Wijkboerderij Wachterlied / KIEM",
      "city": "Amsterdam",
      "category": "Halloween farm and crafts",
      "summary": "Pumpkin decorating, face paint, spider-web crafts, games and a deliberately reassuring bug corner.",
      "fitReason": "Gentle, hands-on Sunday option with a small per-child activity fee.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "No horror actors advertised; anti-scare nature corner suits cautious kids.",
      "dates": [
        {
          "date": "2026-10-25",
          "start": "12:00",
          "end": "15:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "Sunday 25 October 12–15, current officialOctober 2026 post.",
      "price": {
        "adult": null,
        "child": 5,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€5 activity card per child: €15 for three. Adult admission is not explicitly stated, so a guaranteed family total is unavailable. Cards include the activities and lemonade/treat; buy at the KIEM till.",
        "childrenActivityTotal": 15,
        "kind": "three-child-activities"
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        85,
        120
      ],
      "routingNotes": "Train to Amsterdam Sloterdijk/central area then local tram/bus and walk to Wachterliedplantsoen. Exact trip not scheduled.",
      "address": "Wachterliedplantsoen 1, 1055 SB Amsterdam",
      "coordinates": {
        "lat": 52.37763867,
        "lng": 4.85384749
      },
      "availability": "Event confirmed; live capacity not verified.",
      "bookingUrl": "https://wijkboerderijwachterlied.nl/halloweenfeest-in-het-wachterliedplantsoen/",
      "officialUrl": "https://wijkboerderijwachterlied.nl/halloweenfeest-in-het-wachterliedplantsoen/",
      "photoUrl": null,
      "photoPageUrl": "https://wijkboerderijwachterlied.nl/halloweenfeest-in-het-wachterliedplantsoen/",
      "photoRights": "Official promotional image; copyright remains with owner. No open reuse licence verified. Link/attribute; do not imply own photography.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review score found."
      },
      "sources": [
        {
          "label": "Official Halloween post",
          "url": "https://wijkboerderijwachterlied.nl/halloweenfeest-in-het-wachterliedplantsoen/",
          "checkedAt": "2026-10-20",
          "supports": "Date, time, activities, €5 card, address"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Wachterliedplantsoen+1%2C+1055+SB+Amsterdam&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Wachterliedplantsoen 1, 1055SB Amsterdam. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "No live capacity or age restriction published.",
        "€15 family is based on three activity cards and no stated adult charge, not a checkout quote."
      ],
      "duration": "1.5–3 h suggested",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Wachterliedplantsoen%201%2C%201055%20SB%20Amsterdam",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "coordinateNote": "PDOK/BAG address point for Wachterliedplantsoen 1, 1055SB Amsterdam. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "brinkhorst-halloween",
      "title": "Halloweenfeestje at De Brinkhorst",
      "venue": "Natuurboerderij De Brinkhorst",
      "city": "Amersfoort",
      "category": "Halloween farm trail",
      "summary": "A funny-spooky puzzle trail and decorated farmyard with food stalls.",
      "fitReason": "Very inexpensive small-scale Halloween, with a free yard if anyone opts out of the trail.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "mild",
      "scareNote": "Official page describes funny/spooky but provides no minimum age. Parent judgement needed after seeing the setup.",
      "dates": [
        {
          "date": "2026-10-31",
          "start": "17:00",
          "end": "19:30",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "31 October 2026, 17–19:30.",
      "price": {
        "adult": 0,
        "child": 2,
        "family5": 6,
        "mandatoryFees": 0,
        "currency": "EUR",
        "note": "Farmyard free; puzzle trail €2 per child, adults free.€6 for three children. Food extra.",
        "kind": "family-admission"
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        100,
        135
      ],
      "routingNotes": "Train to Amersfoort then onward toward Vathorst/farm atWageningseberg 43. Check bus or walking last mile before committing; route not live-verified.",
      "address": "Wageningseberg 43, 3825 GR Amersfoort",
      "coordinates": {
        "lat": 52.19791827,
        "lng": 5.41762157
      },
      "availability": "Event confirmed; live capacity not verified.",
      "bookingUrl": "https://sro.nl/natuurboerderij-de-brinkhorst/agenda/halloweenfeestje/",
      "officialUrl": "https://sro.nl/natuurboerderij-de-brinkhorst/agenda/halloweenfeestje/",
      "photoUrl": "https://b1307353.smushcdn.com/1307353/wp-content/uploads/2025/08/halloween-2024-3-150x150.jpg?lossy=1&strip=1&webp=1",
      "photoPageUrl": "https://sro.nl/natuurboerderij-de-brinkhorst/agenda/halloweenfeestje/",
      "photoRights": "Official promotional image linked from the cited page. Copyright remains with its owner; no open reuse licence verified. Credit the venue/photographer where stated.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review score found."
      },
      "sources": [
        {
          "label": "Official 2026 event",
          "url": "https://sro.nl/natuurboerderij-de-brinkhorst/agenda/halloweenfeestje/",
          "checkedAt": "2026-10-20",
          "supports": "Date, time, price, address, programme"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Wageningseberg+43%2C+3825+GR+Amersfoort&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Wageningseberg 43, 3825GR Amersfoort. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "No published age guidance or capacity.",
        "Likely too much travel for a short event unless combined with an Amersfoort day."
      ],
      "duration": "1–2 h suggested",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Wageningseberg%2043%2C%203825%20GR%20Amersfoort",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "coordinateNote": "PDOK/BAG address point for Wageningseberg 43, 3825GR Amersfoort. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "intratuin-vleuterweide-pumpkin",
      "title": "Pumpkin-carving kids workshop",
      "venue": "Intratuin Vleuterweide",
      "city": "Vleuten",
      "category": "Pumpkin craft workshop",
      "summary": "A short pumpkin-carving activity with materials, a drink and a treat.",
      "fitReason": "Low-cost option, but closer pumpkin workshops are likely better for this family.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "Craft, not horror; sharp tools require adult oversight. No official age guidance found.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "10:30",
          "end": "11:00",
          "label": "2026 regional listing; official store confirms workshop and price but exact-date ticket page was not readable.",
          "status": "unconfirmed"
        },
        {
          "date": "2026-10-22",
          "start": "10:30",
          "end": "11:00",
          "label": "2026 regional listing; official store confirms workshop and price but exact-date ticket page was not readable.",
          "status": "unconfirmed"
        },
        {
          "date": "2026-10-23",
          "start": "10:30",
          "end": "11:00",
          "label": "2026 regional listing; official store confirms workshop and price but exact-date ticket page was not readable.",
          "status": "unconfirmed"
        },
        {
          "date": "2026-10-21",
          "start": "14:30",
          "end": "15:00",
          "label": "2026 regional listing; official store confirms workshop and price but exact-date ticket page was not readable.",
          "status": "unconfirmed"
        },
        {
          "date": "2026-10-22",
          "start": "14:30",
          "end": "15:00",
          "label": "2026 regional listing; official store confirms workshop and price but exact-date ticket page was not readable.",
          "status": "unconfirmed"
        },
        {
          "date": "2026-10-23",
          "start": "14:30",
          "end": "15:00",
          "label": "2026 regional listing; official store confirms workshop and price but exact-date ticket page was not readable.",
          "status": "unconfirmed"
        }
      ],
      "dateText": "21–23 October 10:30–11:00 or 14:30–15:00, current 2026 regional listing; store confirms offering.",
      "price": {
        "adult": null,
        "child": 6,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "€6 per child: €18 for three activity places. Accompanying-adult admission is not explicitly stated. Materials, drink and treat included according to the regional event listing.",
        "childrenActivityTotal": 18,
        "kind": "three-child-activities"
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        65,
        95
      ],
      "routingNotes": "Train to Vleuten; final walk/bus to Mostperenlaan 6 needs checking. Travel disproportionately long for 30 min activity.",
      "address": "Mostperenlaan 6, 3452 DN Vleuten",
      "coordinates": {
        "lat": 52.09103048,
        "lng": 5.00072738
      },
      "availability": "Event confirmed; live capacity not verified.",
      "bookingUrl": "https://www.intratuin.nl/belevenissen/kidsworkshop-pompoen-snijden-97919.html/winkel/intratuin-vleuten",
      "officialUrl": "https://www.intratuin.nl/belevenissen/kidsworkshop-pompoen-snijden-97919.html/winkel/intratuin-vleuten",
      "photoUrl": null,
      "photoPageUrl": "https://www.intratuin.nl/belevenissen/kidsworkshop-pompoen-snijden-97919.html/winkel/intratuin-vleuten",
      "photoRights": "Official promotional image; copyright remains with owner. No open reuse licence verified. Link/attribute; do not imply own photography.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review score found."
      },
      "sources": [
        {
          "label": "Official store",
          "url": "https://www.intratuin.nl/intratuin-vleuten",
          "checkedAt": "2026-10-20",
          "supports": "Offering, €6, address"
        },
        {
          "label": "Current regional event",
          "url": "https://go-kids.nl/utrecht-en-amersfoort/agenda/kidsworkshop-pompoen-snijden-bij-intratuin-vleuterweide",
          "checkedAt": "2026-10-20",
          "supports": "2026 dates, times, inclusions"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Mostperenlaan+6%2C+3452+DN+Vleuten&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Mostperenlaan 6, 3452DN Vleuten. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Exact workshop detail/ticket page was not readable; dates are secondary-source verified only.",
        "Reserve via linked official workshop; inventory not checked."
      ],
      "duration": "30 minutes",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Mostperenlaan%206%2C%203452%20DN%20Vleuten",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "coordinateNote": "PDOK/BAG address point for Mostperenlaan 6, 3452DN Vleuten. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "groene-schuur-halloween",
      "title": "Halloween-festijn pumpkin carving",
      "venue": "De Groene Schuur",
      "city": "Groessen",
      "category": "Pumpkin greenhouse festival",
      "summary": "Choose a pumpkin of any size and carve it in a decorated greenhouse; equipment and guidance supplied.",
      "fitReason": "Gentle all-age farm craft, but poor car-free fit compared with nearer options.",
      "ageMin": null,
      "ageMax": null,
      "scareLevel": "gentle",
      "scareNote": "No horror advertised; supervised carving, plus face paint.",
      "dates": [
        {
          "date": "2026-10-25",
          "start": "11:00",
          "end": "16:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "Sunday 25 October; official post dated 14 October 2026.",
      "price": {
        "adult": 0,
        "child": null,
        "family5": 30,
        "mandatoryFees": 0,
        "currency": "EUR",
        "note": "Entry free;€10 per pumpkin of choice.€30 if all 3 children make one;€10 if family shares one. No reservation.",
        "kind": "three-pumpkins-with-free-entry"
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        155,
        200
      ],
      "routingNotes": "Train viaArnhem toDuiven/Zevenaar region then substantial last mile toLijkweg 9 b; no practical Sunday bus verified. Treat as taxi/overnight add-on, not a recommended car-free standalone trip.",
      "address": "Lijkweg 9 b, 6923 CA Groessen",
      "coordinates": {
        "lat": 51.9269796,
        "lng": 6.01356968
      },
      "availability": "Event confirmed; live capacity not verified.",
      "bookingUrl": "https://degroeneschuur.nl/halloween-festijn/",
      "officialUrl": "https://degroeneschuur.nl/halloween-festijn/",
      "photoUrl": null,
      "photoPageUrl": "https://degroeneschuur.nl/halloween-festijn/",
      "photoRights": "Official promotional image; copyright remains with owner. No open reuse licence verified. Link/attribute; do not imply own photography.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review score found."
      },
      "sources": [
        {
          "label": "Official 2026 event",
          "url": "https://degroeneschuur.nl/halloween-festijn/",
          "checkedAt": "2026-10-20",
          "supports": "Date, €10 per pumpkin, no booking"
        },
        {
          "label": "Official contact",
          "url": "https://degroeneschuur.nl/contact/",
          "checkedAt": "2026-10-20",
          "supports": "Address"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Lijkweg+9+b%2C+6923+CA+Groessen&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Lijkweg 9b, 6923CA Groessen. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Long rural last mile; not recommended without a verified transfer."
      ],
      "duration": "1–2 hours suggested",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Lijkweg%209%20b%2C%206923%20CA%20Groessen",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "coordinateNote": "PDOK/BAG address point for Lijkweg 9b, 6923CA Groessen. This verifies the public address, not the event entrance.",
      "ageNote": null
    },
    {
      "id": "walibi-spooky-days",
      "title": "Walibi Halloween Spooky Days",
      "venue": "Walibi Holland",
      "city": "Biddinghuizen",
      "category": "Conditional: age caution",
      "summary": "Daytime monster zones, a witch walk and a monster ball. Only one date remains in this window.",
      "fitReason": "Consider younger children’s comfort against the official 6–12 target; not a top pick for children under six.",
      "ageMin": 6,
      "ageMax": 12,
      "scareLevel": "mild",
      "scareNote": "Children under six are below the target age, though tickets for ages 3–5 exist. Do not substitute Fright Nights, a different intense event.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "10:00",
          "end": "18:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "Wednesday 21 October ONLY. No Spooky Days on Fright Nights dates.",
      "price": {
        "adult": null,
        "child": null,
        "family5": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "note": "Official family deal 4 tickets €109; a fifth child ticket is extra and not priced here. Do not present €109 as whole-family cost.",
        "kind": "unknown"
      },
      "driveMinutes": null,
      "transitMinutesEstimate": [
        140,
        180
      ],
      "routingNotes": "Train toHarderwijk thenWalibi shuttle/bus 247; check service forOct 21 and prebook if needed. Long weekday trip; NS Weekend Vrij may not cover outbound travel.",
      "address": "Spijkweg 30, 8256 RJ Biddinghuizen",
      "coordinates": {
        "lat": 52.44013509,
        "lng": 5.7674905
      },
      "availability": "Event confirmed; live capacity not verified.",
      "bookingUrl": "https://www.walibi.nl/halloween/nl/halloween-spooky-days",
      "officialUrl": "https://www.walibi.nl/halloween/nl/halloween-spooky-days",
      "photoUrl": null,
      "photoPageUrl": "https://www.walibi.nl/halloween/nl/halloween-spooky-days",
      "photoRights": "Official promotional image; copyright remains with owner. No open reuse licence verified. Link/attribute; do not imply own photography.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No reliable event-specific review score found."
      },
      "sources": [
        {
          "label": "Official 2026 event",
          "url": "https://www.walibi.nl/halloween/nl/halloween-spooky-days",
          "checkedAt": "2026-10-20",
          "supports": "Exactdates, ages, 4 persondeal, programme"
        },
        {
          "label": "Official hours",
          "url": "https://www.walibi.nl/halloween/nl/halloween-spooky-days/openingstijden",
          "checkedAt": "2026-10-20",
          "supports": "OnlyOct 21 inwindow 10–18"
        },
        {
          "label": "PDOK public address coordinates",
          "url": "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q=Spijkweg+30%2C+8256+RJ+Biddinghuizen&fq=type%3Aadres&rows=12&fl=weergavenaam%2Ccentroide_ll%2Cbron%2Ctype%2Cpostcode%2Cstraatnaam%2Chuisnummer%2Chuisletter%2Chuisnummertoevoeging%2Cwoonplaatsnaam",
          "checkedAt": "2026-10-20",
          "supports": "PDOK/BAG address point for Spijkweg 30, 8256RJ Biddinghuizen. This verifies the public address, not the event entrance."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Not a default choice for younger children without parental judgement.",
        "Whole-family price and shuttle timetable unverified."
      ],
      "duration": "5–7 h suggested",
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Spijkweg%2030%2C%208256%20RJ%20Biddinghuizen",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "checkedAt": "2026-10-20T12:22:00Z",
      "transitNote": "Rough planning estimate from Zoetermeer station, not a checked departure or live itinerary. Local access, bus/tram fares and disruption buffers are extra.",
      "scareAssessment": "Editorial assessment based on the published programme; not an official safety certification.",
      "socialEvidenceNote": "Official profiles are included where verified. No accessible exact 2026 social post was established unless explicitly linked.",
      "coordinateNote": "PDOK/BAG address point for Spijkweg 30, 8256RJ Biddinghuizen. This verifies the public address, not the event entrance.",
      "ageNote": null,
      "ageRuleLabel": "6+ target / advice · check admission"
    },
    {
      "id": "asten-pompoendagen",
      "title": "Pompoendagen Asten at Museum Klok & Peel",
      "venue": "Museum Klok & Peel",
      "city": "Asten",
      "category": "Gentle pumpkin festival / Museumkaart pick",
      "summary": "Enchanted pumpkin gardens, atmospheric tunnels, storytelling and pumpkin carving, with the museum included.",
      "fitReason": "Best value in this region, although a long day by public transport. Prefer Sat 24 or Sun 25 October to use weekend rail benefits.",
      "ageMin": null,
      "ageMax": null,
      "agePolicy": "Family-oriented, no published minimum age found. Gentle autumn/Halloween rather than horror. Tunnels may be dark. Pumpkin carving needs adult supervision.",
      "scareLevel": "gentle",
      "scareNote": "Family-oriented, no published minimum age found. Gentle autumn/Halloween rather than horror. Tunnels may be dark. Pumpkin carving needs adult supervision.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "11:00",
          "end": "16:30",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "11:00",
          "end": "16:30",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "11:00",
          "end": "16:30",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "11:00",
          "end": "16:30",
          "label": "",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "11:00",
          "end": "16:30",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "21–25 October, 11:00–16:30. Most scheduled activities run 12:00–16:00.",
      "price": {
        "adult": null,
        "child": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "family5": 0,
        "kind": "museumkaart-conditional",
        "note": "€0 admission ONLY with five valid Museumkaarten. Three optional pumpkin carvings add €10.50 (€3.50 each). Without cards, published family admission is €35 for up to 2 adults + 4 children through 17. Candles €3 and soap €3.50 each; some activities cash-only. Excludes travel and food.",
        "conditional": true,
        "condition": "All five visitors hold valid Museumkaarten",
        "withoutCardsFamily5": 35,
        "optionalThreePumpkins": 10.5
      },
      "duration": "3–4 hours, our planning estimate",
      "driveMinutes": null,
      "transitMinutesEstimate": [
        165,
        200
      ],
      "routingNotes": "Train toward Eindhoven or Helmond, then bus 320 to Asten Heesakkerweg; official museum directions say 7-minute walk via path beside garage Vink, Beatrixlaan and Rootweg. Estimate 2h45–3h20 each way from Zoetermeer station, connection-dependent.",
      "address": "Ostaderstraat 23, 5721 WC Asten",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://maps.app.goo.gl/RMuNa9z3S5NjJXLe7",
      "mapNote": "Map link observed on the official venue page.",
      "availability": "Official ticket shop says Museumkaart holders do not need a reservation. Workshops do not require advance signup. Not a capacity guarantee for a particular workshop.",
      "bookingUrl": "https://tickets.museumklokenpeel.nl/nl/tickets",
      "officialUrl": "https://museumklokenpeel.nl/pompoendagen26/",
      "photoUrl": "https://museumklokenpeel.nl/wp-content/uploads/2026/09/Welkom-2026-09-17-155023-223x300.png",
      "photoPageUrl": "https://museumklokenpeel.nl/pompoendagen26/",
      "photoRights": "No open reuse licence verified. Copyright remains with the venue/photographer; link or obtain permission for publication.",
      "socialLinks": [
        {
          "label": "Official Facebook profile",
          "url": "https://www.facebook.com/museumklokenpeel"
        },
        {
          "label": "Official Instagram profile",
          "url": "https://www.instagram.com/museumklokenpeel/"
        },
        {
          "label": "Official YouTube channel",
          "url": "https://www.youtube.com/user/klokenpeel"
        }
      ],
      "review": {
        "rating": 4.6,
        "count": 204,
        "scope": "venue",
        "sourceUrl": "https://www.tripadvisor.nl/Attraction_Review-g1087426-d3728044-Reviews-Museum_Klok_Peel-Asten_North_Brabant_Province.html",
        "note": "Current venue-wide Tripadvisor score, not a 2026 event score. Two October 2024 event reviews contrast enthusiasm for annual pumpkin visits and gardens with complaints about repetitive crafts and extra costs."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://museumklokenpeel.nl/pompoendagen26/",
          "checkedAt": "2026-10-20",
          "supports": "Explicit 2026 dates, programme, hours and activity costs"
        },
        {
          "label": "Supporting source",
          "url": "https://tickets.museumklokenpeel.nl/nl/tickets",
          "checkedAt": "2026-10-20",
          "supports": "Museumkaart free admission and no-reservation rule; general ticket information"
        },
        {
          "label": "Supporting source",
          "url": "https://tickets.museumklokenpeel.nl/nl/rabobankactie-pompoendagen/tickets",
          "checkedAt": "2026-10-20",
          "supports": "Event-specific corroboration of free Museumkaart entry"
        },
        {
          "label": "Supporting source",
          "url": "https://museumklokenpeel.nl/plan-je-bezoek/toegankelijkheid/",
          "checkedAt": "2026-10-20",
          "supports": "Bus 320 and seven-minute final walk"
        },
        {
          "label": "Supporting source",
          "url": "https://museumklokenpeel.nl/plan-je-bezoek/toegangsprijs/",
          "checkedAt": "2026-10-20",
          "supports": "Published admission and family ticket"
        },
        {
          "label": "Review source",
          "url": "https://www.tripadvisor.nl/Attraction_Review-g1087426-d3728044-Reviews-Museum_Klok_Peel-Asten_North_Brabant_Province.html",
          "checkedAt": "2026-10-20",
          "supports": "Current venue-wide Tripadvisor score, not a 2026 event score. Two October 2024 event reviews contrast enthusiasm for annual pumpkin visits and gardens with complaints about repetitive crafts and extra costs."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Family-oriented, no published minimum age found. Gentle autumn/Halloween rather than horror. Tunnels may be dark. Pumpkin carving needs adult supervision.",
        "Garden festival outside with museum/Oranjerie indoor fallback; wet-weather clothes useful.",
        "Transit is an estimate, not a dated itinerary. Confirm last buses and rail works before purchasing.",
        "24 October: bubbles plus Showmotion acrobatics at 13:00 and 15:00. 25 October adds face painting. Specific activity costs beyond published crafts not verified."
      ],
      "language": "Official information and programme are in Dutch. Spoken storytelling/show language not independently confirmed.",
      "museumkaart": "Free admission only when all five hold valid Museumkaarten. No cardholder reservation required; paid crafts are separate.",
      "fitAllThree": null,
      "recommended": true,
      "status": "available-not-checked",
      "checkedAt": "2026-10-20T12:18:00Z",
      "availabilityCheckedAt": "2026-10-20",
      "transitNote": "All door-to-door times below are planning estimates, not date-specific journey-planner results. NS Weekend passes do not establish free local bus travel. Check rail engineering works and final bus connections before buying. No bookings, purchases or personal data submitted.",
      "scareAssessment": "Editorial classification from published programme, not an official safety certification.",
      "socialEvidenceNote": "Official profiles where verified; no exact 2026 social post claimed.",
      "media": [
        {
          "url": "https://museumklokenpeel.nl/wp-content/uploads/2026/09/Welkom-2026-09-17-155023-223x300.png",
          "description": "Official 2026 welcome poster",
          "credit": "Museum Klok & Peel",
          "reuse_license": "Unknown; not assumed licensed"
        },
        {
          "url": "https://museumklokenpeel.nl/wp-content/uploads/2026/09/Looproute-2026-09-17-153444-768x1081.png",
          "description": "Official festival walking map",
          "credit": "Museum Klok & Peel",
          "reuse_license": "Unknown"
        }
      ],
      "programPdfUrl": "https://museumklokenpeel.nl/wp-content/uploads/2026/09/Definitief-gezamenlijk_A5_boekje_2026_05-compressed.pdf",
      "ageNote": null
    },
    {
      "id": "dippieboe",
      "title": "DippieBoe at DippieDoe, Best",
      "venue": "DippieDoe",
      "city": "Best",
      "category": "Full children's Halloween theme-park day",
      "summary": "Friendly scarecrow shows, a treasure hunt, crafts and indoor/outdoor rides. Choose the daytime programme, not the scarier evening.",
      "fitReason": "Strong age fit and half Toverland's quoted family price; transit needs advance planning. Attend daylight portion, skip scarier evening.",
      "ageMin": 2,
      "ageMax": 12,
      "agePolicy": "Official target 2–12 years; Daytime mild; evening ghosts/haunted houses/scare zone explicitly scary. Avoid zone behind Dolle Dobber. Optional €6 wand asks actors to keep distance, not a guarantee of no scares.",
      "scareLevel": "mild",
      "scareNote": "Official target 2–12 years; Daytime mild; evening ghosts/haunted houses/scare zone explicitly scary. Avoid zone behind Dolle Dobber. Optional €6 wand asks actors to keep distance, not a guarantee of no scares.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "12:00",
          "end": "21:00",
          "label": "Friendly programme ends 18:00; scary evening follows.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "12:00",
          "end": "21:00",
          "label": "Friendly programme ends 18:00; scary evening follows.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "12:00",
          "end": "21:00",
          "label": "Friendly programme ends 18:00; scary evening follows.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "12:00",
          "end": "21:00",
          "label": "Friendly programme ends 18:00; scary evening follows.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "12:00",
          "end": "21:00",
          "label": "Friendly programme ends 17:00; scary evening follows.",
          "status": "confirmed"
        }
      ],
      "dateText": "21–25 October, 12:00–21:00. Friendly daytime until 18:00; Sunday 25 October only until 17:00.",
      "price": {
        "adult": 19.99,
        "child": 19.99,
        "mandatoryFees": null,
        "currency": "EUR",
        "family5": 99.95,
        "kind": "family-admission",
        "note": "5 × €19.99 day tickets, ages 2+. Selected Oct 24 in the live calendar; Oct 21–25 selectable. Evening tickets €15.99 each (€79.95 for five) are not the recommended family programme. Optional crafts €1, pumpkin decorating €5, face paint €5, anti-scare wand €6 each. Additional checkout fees not verified; transport/food excluded."
      },
      "duration": "4–6 hours for daytime visit, our estimate",
      "driveMinutes": null,
      "transitMinutesEstimate": [
        135,
        170
      ],
      "routingNotes": "Train toward Best, then prebooked Bravoflex to Best Aquabest at Ekkersweijer. Stop confirmed in official Bravo PDF. Correct service is Zuidoost-Brabant: Taxbus app, https://taxbus.optiapps.nl/ or 0800 0234 795, reserve at least 1 hour ahead. Verify allowable interchange station in booking tool and reserve both directions. Official fare €2 per adult if no linebus ±30 minutes, otherwise €5; two children through 11 free per adult. Thus family flex round trip €8–€20 for qualifying hub routes, not a ride quote. Legacy fallback bus145 Wilhelminabrug requires >30min walk. Estimated total 2h15–2h50 each way with suitable train/flex connection; 2h30–3h15 with long-walk fallback.",
      "address": "Ekkersweijer 1, 5681 RZ Best",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Ekkersweijer%201%2C%205681%20RZ%20Best",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "availability": "Cloud browser: 21–25 October selectable; selected Saturday 24 displayed day ticket €19.99 and evening €15.99. Did not add tickets or check out. Official advises prebooking because capacity is limited.",
      "bookingUrl": "https://dippiedoe.combiv2.ticketcounter.eu/nl-NL/tickets?journey=dippieboe",
      "officialUrl": "https://dippiedoe.nl/dippieboe/",
      "photoUrl": "https://dippiedoe.nl/wp-content/uploads/2026/08/Kinderen-met-Vincent-de-vogelverschrikker-1.png",
      "photoPageUrl": "https://dippiedoe.nl/dippieboe/",
      "photoRights": "No open reuse licence verified. Copyright remains with the venue/photographer; link or obtain permission for publication.",
      "socialLinks": [
        {
          "label": "Official Instagram profile",
          "url": "https://www.instagram.com/dippiedoebest/"
        },
        {
          "label": "Official Facebook profile",
          "url": "https://www.facebook.com/Dippiedoe"
        },
        {
          "label": "Official YouTube channel",
          "url": "https://www.youtube.com/channel/UCpTiGq8EgozD5qn-iMOxtnQ/featured"
        }
      ],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event-2024",
        "sourceUrl": "https://scarezone.nl/2024/10/29/scareview-dippieboe-eerste-stap/",
        "note": "Historical ScareZone event review: 72% overall, 40% scare factor; good beginner-family atmosphere and themed house, but inconsistent actor focus. Not a 2026 score. Separately, venue-wide Google 4.2/5 from 2,991 reviews is republished indirectly by Wannado.",
        "additionalSourceUrl": "https://wannado.nl/p/speelpark-dippiedoe-best"
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://dippiedoe.nl/dippieboe/",
          "checkedAt": "2026-10-20",
          "supports": "2026 event dates, age target, programme, hours and extras"
        },
        {
          "label": "Supporting source",
          "url": "https://dippiedoe.nl/halloween-brabant/",
          "checkedAt": "2026-10-20",
          "supports": "Halloween programme context"
        },
        {
          "label": "Supporting source",
          "url": "https://dippiedoe.nl/praktische-informatie/",
          "checkedAt": "2026-10-20",
          "supports": "Address and legacy public-transport approach"
        },
        {
          "label": "Supporting source",
          "url": "https://dippiedoe.nl/blog/vervoer-nodig/",
          "checkedAt": "2026-10-20",
          "supports": "Aquabest flex stop; app/phone details conflict with transport operator"
        },
        {
          "label": "Supporting source",
          "url": "https://dippiedoe.combiv2.ticketcounter.eu/nl-NL/tickets?journey=dippieboe",
          "checkedAt": "2026-10-20",
          "supports": "Live dates selectable and Oct 24 day/evening prices; no cart or checkout"
        },
        {
          "label": "Supporting source",
          "url": "https://www.bravo.info/reizen/ik-reis-met/bravoflex/bravoflex-zuidoost-brabant",
          "checkedAt": "2026-10-20",
          "supports": "Correct regional service, booking rules and fares"
        },
        {
          "label": "Supporting source",
          "url": "https://www.bravo.info/sites/d10p.bravo.info/files/documenten/nieuwe-bravoflex-haltes-zuidoost-brabant-8.pdf",
          "checkedAt": "2026-10-20",
          "supports": "Official Aquabest stop at Ekkersweijer"
        },
        {
          "label": "Review source",
          "url": "https://scarezone.nl/2024/10/29/scareview-dippieboe-eerste-stap/",
          "checkedAt": "2026-10-20",
          "supports": "Historical ScareZone event review: 72% overall, 40% scare factor; good beginner-family atmosphere and themed house, but inconsistent actor focus. Not a 2026 score. Separately, venue-wide Google 4.2/5 from 2,991 reviews is republished indirectly by Wannado."
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Official target 2–12 years; Daytime mild; evening ghosts/haunted houses/scare zone explicitly scary. Avoid zone behind Dolle Dobber. Optional €6 wand asks actors to keep distance, not a guarantee of no scares.",
        "Mixed indoor/outdoor, useful rain fallback",
        "Transit is an estimate, not a dated itinerary. Confirm last buses and rail works before purchasing.",
        "DippieDoe transport article mistakenly directs users to West-Brabant app/phone. Use official Bravo Zuidoost-Brabant details instead. No flex inventory or specific eligible interchange verified.",
        "Ride-specific, not age-only; check the official attraction list for each child's measured height. https://dippiedoe.nl/attracties-en-plattegrond/"
      ],
      "language": "Official programme is in Dutch. English-language performances not verified.",
      "museumkaart": "No Museumkaart admission benefit verified; event-specific paid tickets required.",
      "fitAllThree": true,
      "recommended": true,
      "status": "available-not-checked",
      "checkedAt": "2026-10-20T12:18:00Z",
      "availabilityCheckedAt": "2026-10-20",
      "transitNote": "All door-to-door times below are planning estimates, not date-specific journey-planner results. NS Weekend passes do not establish free local bus travel. Check rail engineering works and final bus connections before buying. No bookings, purchases or personal data submitted.",
      "scareAssessment": "Editorial classification from published programme, not an official safety certification.",
      "socialEvidenceNote": "Official profiles where verified; no exact 2026 social post claimed.",
      "media": [
        {
          "url": "https://dippiedoe.nl/wp-content/uploads/2026/08/Kinderen-met-Vincent-de-vogelverschrikker-1.png",
          "description": "Children with Vincent the scarecrow; official daytime imagery",
          "credit": "DippieDoe",
          "reuse_license": "Unknown; not assumed licensed"
        },
        {
          "url": "https://dippiedoe.nl/wp-content/uploads/2026/09/dippieboeposter-1024x777.jpg",
          "description": "2026 time-travel event poster",
          "credit": "DippieDoe",
          "reuse_license": "Unknown"
        },
        {
          "url": "https://dippiedoe.nl/wp-content/uploads/2026/10/Programma-DippieBoe-2026-di-za-210-x-97-mm-1024x478.jpg",
          "description": "Official event park map",
          "credit": "DippieDoe",
          "reuse_license": "Unknown"
        }
      ],
      "videoUrl": "https://youtu.be/kTroNKSK4vI?si=pqmAZmQnnZEZTzZX",
      "ageNote": null
    },
    {
      "id": "toverland-days",
      "title": "Toverland Halloween Days, Sevenum",
      "venue": "Toverland",
      "city": "Sevenum",
      "category": "Big-budget family Halloween park",
      "summary": "A big Halloween day out with a pumpkin farm, child-friendly corn maze, hay-bale play and friendly witch shows.",
      "fitReason": "Excellent daytime age fit, but costly and approximately six hours round-trip transport. Clearly distinguish Days from Nights.",
      "ageMin": null,
      "ageMax": 11,
      "agePolicy": "Officially aimed at under-12s. Children up to 12 may wear costumes/face paint. No general minimum height for Halloween activities found; rides have separate restrictions. Avoid Maison de la Magie and The Dollhouse even in daytime, as scarier actors may appear there. Halloween Nights is 12+ recommended.",
      "scareLevel": "mild",
      "scareNote": "Officially aimed at under-12s. Children up to 12 may wear costumes/face paint. No general minimum height for Halloween activities found; rides have separate restrictions. Avoid Maison de la Magie and The Dollhouse even in daytime, as scarier actors may appear there. Halloween Nights is 12+ recommended.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "10:00",
          "end": "18:00",
          "label": "Days programme; leave around 17:30 to avoid 18:00 Night parade (editorial advice).",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "10:00",
          "end": "18:00",
          "label": "Days programme; leave around 17:30 to avoid 18:00 Night parade (editorial advice).",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "10:00",
          "end": "18:00",
          "label": "Days programme; leave around 17:30 to avoid 18:00 Night parade (editorial advice).",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "10:00",
          "end": "18:00",
          "label": "Days programme; leave around 17:30 to avoid 18:00 Night parade (editorial advice).",
          "status": "confirmed"
        },
        {
          "date": "2026-10-25",
          "start": "10:00",
          "end": "18:00",
          "label": "Days programme; leave around 17:30 to avoid 18:00 Night parade (editorial advice).",
          "status": "confirmed"
        },
        {
          "date": "2026-10-31",
          "start": "10:00",
          "end": "18:00",
          "label": "Days programme; leave around 17:30 to avoid 18:00 Night parade (editorial advice).",
          "status": "confirmed"
        },
        {
          "date": "2026-11-01",
          "start": "10:00",
          "end": "18:00",
          "label": "Days programme; leave around 17:30 to avoid 18:00 Night parade (editorial advice).",
          "status": "confirmed"
        }
      ],
      "dateText": "21–25 and 31 October; 1 November. Halloween Days 10:00–18:00.",
      "price": {
        "adult": 49.5,
        "child": 39.5,
        "mandatoryFees": null,
        "currency": "EUR",
        "family5": 217.5,
        "kind": "height-conditional-quote",
        "note": "Displayed quote for Oct 24 and Oct 31: 2 adults at €49.50 + 3 children in the 90–140 cm band at €39.50. Confirm actual measured heights; children in the adult-height band cost more. Ticket flow showed 10:00–23:00, with no cheaper Days-only option exposed. Other dates and final fees unverified. Availability unresolved; not a checkout total.",
        "conditional": true,
        "condition": "Example total assumes three children qualify for the quoted child-height band; checked dates only",
        "datePrices": {
          "2026-10-24": 217.5,
          "2026-10-31": 217.5
        },
        "dateUnitPrices": {
          "2026-10-24": {
            "adult": 49.5,
            "child": 39.5
          },
          "2026-10-31": {
            "adult": 49.5,
            "child": 39.5
          }
        }
      },
      "duration": "6–7 hours, our estimate",
      "driveMinutes": null,
      "transitMinutesEstimate": [
        170,
        210
      ],
      "routingNotes": "Train to Horst-Sevenum (typically via Utrecht/Eindhoven), then bus 79 or 679 to park, official stop opposite park. Estimate 2h50–3h30 each way from Zoetermeer station, depending on waits. Check return bus before buying.",
      "address": "Toverlaan 2, 5975 MR Sevenum",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/place/Attractiepark%2BToverland/%4051.397376%2C5.9791547%2C17z/data%3D%213m1%214b1%214m6%213m5%211s0x47c747af8fb993ad%3A0xcbd6d838c3340cbc%218m2%213d51.3973727%214d5.9817296%2116s%2Fm%2F0vb3szz?entry=ttu&g_ep=EgoyMDI1MDkxNS4wIKXMDSoASAFQAw%3D%3D",
      "mapNote": "Map link observed on the official venue page.",
      "availability": "Dates selectable in cloud browser and price generated, but the accessibility label called the timeslot occupied while visible blue slot/Next button remained enabled. Treat actual admission availability as unresolved; do not label sold out or guaranteed available. No checkout or reservation made.",
      "bookingUrl": "https://tickets.toverland.com/nl/tickets",
      "officialUrl": "https://www.toverland.com/en/theme-park/actvities/halloweendays",
      "photoUrl": null,
      "photoPageUrl": "https://www.toverland.com/en/theme-park/actvities/halloweendays",
      "photoRights": "No open reuse licence verified. Copyright remains with the venue/photographer; link or obtain permission for publication.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "mostly-night-event-2025",
        "sourceUrl": "https://parkbuzz.nl/review-toverland-halloween-nights-2025/",
        "note": "Independent 2025 review covers mainly Nights and mentions friendly daytime shows/pumpkin farm. Its Night endorsement must not be transferred to a Days score; no current Days-only rating established."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://www.toverland.com/en/theme-park/actvities/halloweendays",
          "checkedAt": "2026-10-20",
          "supports": "Halloween Days dates, hours and child programme"
        },
        {
          "label": "Supporting source",
          "url": "https://www.toverland.com/evenementen/halloween/inspiratie-halloween/halloween-doen-toverland",
          "checkedAt": "2026-10-20",
          "supports": "Explicit 2026 season corroboration"
        },
        {
          "label": "Supporting source",
          "url": "https://www.toverland.com/contact/adres-route",
          "checkedAt": "2026-10-20",
          "supports": "Address and bus 79/679 last mile"
        },
        {
          "label": "Supporting source",
          "url": "https://tickets.toverland.com/nl/tickets",
          "checkedAt": "2026-10-20",
          "supports": "Oct 24/31 displayed price, with unresolved conflicting availability UI"
        },
        {
          "label": "Supporting source",
          "url": "https://www.toverland.com/toverblog/blog-halloweendays-2026?__lang=changed",
          "checkedAt": "2026-10-20",
          "supports": "2026 daytime programme and Halloween Village"
        },
        {
          "label": "Review source",
          "url": "https://parkbuzz.nl/review-toverland-halloween-nights-2025/",
          "checkedAt": "2026-10-20",
          "supports": "Independent 2025 review covers mainly Nights and mentions friendly daytime shows/pumpkin farm. Its Night endorsement must not be transferred to a Days score; no current Days-only rating established."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Officially aimed at under-12s. Children up to 12 may wear costumes/face paint. No general minimum height for Halloween activities found; rides have separate restrictions. Avoid Maison de la Magie and The Dollhouse even in daytime, as scarier actors may appear there. Halloween Nights is 12+ recommended.",
        "Some covered rides/play areas, but pumpkin village and corn maze outdoors; bring mud-tolerant shoes.",
        "Transit is an estimate, not a dated itinerary. Confirm last buses and rail works before purchasing.",
        "Displayed €217.50 is conditional on the three child-height bands and only checked on Oct 24/31. Availability is unresolved, not confirmed sold out.",
        "Avoid Maison de la Magie and The Dollhouse even in daytime; scarier actors may appear."
      ],
      "language": "English event information is available. Language of live shows and spoken interactions not verified.",
      "museumkaart": "Museumkaart not applicable.",
      "fitAllThree": true,
      "recommended": false,
      "status": "availability-unresolved",
      "checkedAt": "2026-10-20T12:18:00Z",
      "availabilityCheckedAt": "2026-10-20",
      "transitNote": "All door-to-door times below are planning estimates, not date-specific journey-planner results. NS Weekend passes do not establish free local bus travel. Check rail engineering works and final bus connections before buying. No bookings, purchases or personal data submitted.",
      "scareAssessment": "Editorial classification from published programme, not an official safety certification.",
      "socialEvidenceNote": "Official profiles where verified; no exact 2026 social post claimed.",
      "media": [],
      "ageNote": null
    },
    {
      "id": "billybird-herfstfestival",
      "title": "BillyBird Hemelrijk Herfstfestival, Volkel",
      "venue": "BillyBird Hemelrijk",
      "city": "Volkel",
      "category": "Autumn lights and fireworks, not a horror/Halloween event",
      "summary": "An autumn alternative rather than Halloween horror: illuminated rides, dragons, drummers and a musical fireworks finale.",
      "fitReason": "Good low-scare alternative but poor car-free bedtime fit from Zoetermeer; finale means a very late arrival home.",
      "ageMin": null,
      "ageMax": null,
      "agePolicy": "Official all ages. No horror claim. Fireworks/loud drums can unsettle sensitive children; bring ear protection.",
      "scareLevel": "gentle",
      "scareNote": "Official all ages. No horror claim. Fireworks/loud drums can unsettle sensitive children; bring ear protection.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "10:00",
          "end": "20:30",
          "label": "Rides close 20:00; final goodbye may run until 20:30.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-22",
          "start": "10:00",
          "end": "20:30",
          "label": "Rides close 20:00; final goodbye may run until 20:30.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-23",
          "start": "10:00",
          "end": "20:30",
          "label": "Rides close 20:00; final goodbye may run until 20:30.",
          "status": "confirmed"
        },
        {
          "date": "2026-10-24",
          "start": "10:00",
          "end": "20:30",
          "label": "Rides close 20:00; final goodbye may run until 20:30.",
          "status": "confirmed"
        }
      ],
      "dateText": "21–24 October. Park from 10:00; shows from 17:00; finale 20:00; goodbye until 20:30.",
      "price": {
        "adult": null,
        "child": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "family5": null,
        "kind": "unknown",
        "note": "Exact festival family price not verified. Regular gate admission €21 × 5 = €105 is only a baseline, not a confirmed event quote. Homepage online “from €9.95” does not establish an event total. Do not treat €49.75 as a festival quote."
      },
      "duration": "4–6 hours; evening program about 3.5 hours",
      "driveMinutes": null,
      "transitMinutesEstimate": [
        170,
        220
      ],
      "routingNotes": "Official park festival FAQ names nearby Molen stop (322) or Zeelandsedijk (91). Likely rail to Eindhoven or Den Bosch and bus via Uden; exact best connection/last bus not checked. Planning estimate 2h50–3h40 each way. A separate directory lists a Bravoflex stop at entrance, not independently verified.",
      "address": "Zeelandsedijk 34a, 5408 SM Volkel",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Zeelandsedijk%2034a%2C%205408%20SM%20Volkel",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "availability": "Event confirmed, dated inventory and exact event price not verified.",
      "bookingUrl": "https://billybird.nl/nl/hemelrijk/tickets",
      "officialUrl": "https://billybird.nl/nl/hemelrijk/park/evenementen/herfstfestival",
      "photoUrl": null,
      "photoPageUrl": "https://billybird.nl/nl/hemelrijk/park/evenementen/herfstfestival",
      "photoRights": "No open reuse licence verified. Copyright remains with the venue/photographer; link or obtain permission for publication.",
      "socialLinks": [],
      "review": {
        "rating": 4.5,
        "count": 4933,
        "scope": "venue-indirect",
        "sourceUrl": "https://wannado.nl/p/billybird-park-hemelrijk-volkel",
        "note": "Directory republishes a venue-wide score, not a festival rating. No independent current festival review established."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://billybird.nl/nl/hemelrijk/park/evenementen/herfstfestival",
          "checkedAt": "2026-10-20",
          "supports": "2026 festival dates and programme; full page fetch/browser failed"
        },
        {
          "label": "Supporting source",
          "url": "https://billybird.nl/nl/hemelrijk/openingstijden",
          "checkedAt": "2026-10-20",
          "supports": "Opening information"
        },
        {
          "label": "Supporting source",
          "url": "https://billybird.nl/nl/hemelrijk",
          "checkedAt": "2026-10-20",
          "supports": "Standard from-price and gate baseline, not dated event quote"
        },
        {
          "label": "Supporting source",
          "url": "https://billybird.nl/nl/billybird/contact",
          "checkedAt": "2026-10-20",
          "supports": "Standard admission applies from age 3"
        },
        {
          "label": "Supporting source",
          "url": "https://billybird.nl/nl/hemelrijk/park/evenementen/heerlijk-hemelrijk-festival",
          "checkedAt": "2026-10-20",
          "supports": "Other park festival FAQ names nearby bus stops; not a dated journey"
        },
        {
          "label": "Review source",
          "url": "https://wannado.nl/p/billybird-park-hemelrijk-volkel",
          "checkedAt": "2026-10-20",
          "supports": "Directory republishes a venue-wide score, not a festival rating. No independent current festival review established."
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Official all ages. No horror claim. Fireworks/loud drums can unsettle sensitive children; bring ear protection.",
        "Outdoor evening festival plus indoor playground",
        "Transit is an estimate, not a dated itinerary. Confirm last buses and rail works before purchasing.",
        "This is an autumn-light festival, not a Halloween horror event. Exact event price and return bus not verified."
      ],
      "language": "Official information is in Dutch; much of the light/firework spectacle is visual. Spoken performance language not verified.",
      "museumkaart": "No Museumkaart admission benefit verified.",
      "fitAllThree": true,
      "recommended": false,
      "status": "available-not-checked",
      "checkedAt": "2026-10-20T12:18:00Z",
      "availabilityCheckedAt": "2026-10-20",
      "transitNote": "All door-to-door times below are planning estimates, not date-specific journey-planner results. NS Weekend passes do not establish free local bus travel. Check rail engineering works and final bus connections before buying. No bookings, purchases or personal data submitted.",
      "scareAssessment": "Editorial classification from published programme, not an official safety certification.",
      "socialEvidenceNote": "Official profiles where verified; no exact 2026 social post claimed.",
      "media": [],
      "ageNote": null
    },
    {
      "id": "breda-pumpkin-party",
      "title": "Pumpkin Party: Carve & Paint, Van der Valk Hotel Breda",
      "venue": "Van der Valk Hotel Breda",
      "city": "Breda",
      "category": "Creative Halloween afternoon",
      "summary": "A cheerful three-hour pumpkin carving or painting afternoon with materials and snacks.",
      "fitReason": "Gentle age-appropriate craft option, but exact price for 2 adults + 3 children needs confirmation.",
      "ageMin": 4,
      "ageMax": 12,
      "agePolicy": "Official tourism listing recommends ages 4–12. Paint option avoids knives; cheerful Halloween rather than scares.",
      "scareLevel": "gentle",
      "scareNote": "Official tourism listing recommends ages 4–12. Paint option avoids knives; cheerful Halloween rather than scares.",
      "dates": [
        {
          "date": "2026-10-25",
          "start": "14:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "Sunday 25 October, 14:00–17:00.",
      "price": {
        "adult": null,
        "child": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "family5": null,
        "kind": "unknown",
        "note": "€17.50 per adult-child duo including one pumpkin; extra pumpkin €9.50. Two duos (€35) cover four people. Adding a pumpkin does not establish admission for the fifth visitor, so €44.50 is NOT a verified whole-family total."
      },
      "duration": "Up to 3 hours",
      "driveMinutes": null,
      "transitMinutesEstimate": [
        105,
        140
      ],
      "routingNotes": "Rail via Rotterdam to Breda then local bus toward Princenhage and walk; exact stop/journey not verified. Rough planning range 1h45–2h20 each way from Zoetermeer station.",
      "address": "Princenhagelaan 5, 4813 DA Breda",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.com/maps/search/?api=1&query=Van+der+Valk+Hotel+Breda+Princenhagelaan+5+4813DA+Breda",
      "mapNote": "Address-search link, not a verified entrance coordinate.",
      "availability": "Ticket link exists, inventory not readable in web lookup. No contact details submitted.",
      "bookingUrl": null,
      "officialUrl": "https://www.explorebreda.com/nl/evenementen/pumpkin-party-carve-paint",
      "photoUrl": null,
      "photoPageUrl": "https://www.explorebreda.com/nl/evenementen/pumpkin-party-carve-paint",
      "photoRights": "No open reuse licence verified. Copyright remains with the venue/photographer; link or obtain permission for publication.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No event-specific review verified. Hotel reviews are not evidence of workshop quality."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://www.explorebreda.com/nl/evenementen/pumpkin-party-carve-paint",
          "checkedAt": "2026-10-20",
          "supports": "Official tourism listing: date, hours, age guidance and duo/extra-pumpkin rates"
        }
      ],
      "confidence": "partial",
      "caveats": [
        "Official tourism listing recommends ages 4–12. Paint option avoids knives; cheerful Halloween rather than scares.",
        "Likely indoor hotel activity; exact room not verified",
        "Transit is an estimate, not a dated itinerary. Confirm last buses and rail works before purchasing.",
        "The whole-family admission arrangement and total require confirmation before booking."
      ],
      "language": "Official tourism listing is in Dutch. Workshop instruction language not verified.",
      "museumkaart": "No Museumkaart admission benefit verified.",
      "fitAllThree": true,
      "recommended": false,
      "status": "available-not-checked",
      "checkedAt": "2026-10-20T12:18:00Z",
      "availabilityCheckedAt": "2026-10-20",
      "transitNote": "All door-to-door times below are planning estimates, not date-specific journey-planner results. NS Weekend passes do not establish free local bus travel. Check rail engineering works and final bus connections before buying. No bookings, purchases or personal data submitted.",
      "scareAssessment": "Editorial classification from published programme, not an official safety certification.",
      "socialEvidenceNote": "Official profiles where verified; no exact 2026 social post claimed.",
      "media": [],
      "ageNote": null
    },
    {
      "id": "buitenuit-halloween",
      "title": "Halloweenmiddag at Buitenuit Bakel",
      "venue": "Buitenuit Bakel",
      "city": "Bakel",
      "category": "Small-scale witch stories and crafts",
      "summary": "Witch stories, crafts and marshmallow roasting, with optional face painting, glitter tattoos and a spooky trail.",
      "fitReason": "Tomorrow-only and gentle; a very long trip for this modest event, probably not worth prioritizing from Zoetermeer.",
      "ageMin": null,
      "ageMax": null,
      "agePolicy": "Library specifically welcomes toddlers and preschoolers for stories/crafts; brave-children trail may be spooky. No numeric minimum age for main event established.",
      "scareLevel": "mild",
      "scareNote": "Library specifically welcomes toddlers and preschoolers for stories/crafts; brave-children trail may be spooky. No numeric minimum age for main event established.",
      "dates": [
        {
          "date": "2026-10-21",
          "start": "12:00",
          "end": "17:00",
          "label": "",
          "status": "confirmed"
        }
      ],
      "dateText": "Wednesday 21 October, 12:00–17:00. Library stories 13:00–17:00.",
      "price": {
        "adult": null,
        "child": null,
        "mandatoryFees": null,
        "currency": "EUR",
        "family5": 0,
        "kind": "free-entry",
        "note": "Co-organizing library explicitly lists free admission. Optional child activity cards €11.50 each, so €34.50 for three, include face painting, glitter tattoo and unlimited witch lemonade. Other activities/food may cost extra; no all-inclusive family checkout total verified."
      },
      "duration": "2–3 hours, our estimate",
      "driveMinutes": null,
      "transitMinutesEstimate": [
        180,
        220
      ],
      "routingNotes": "Train to Helmond then local bus toward Bakel plus walk; exact stop/timetable not verified. Planning estimate 3h–3h40 each way. Poor match for car-free day trip with young children.",
      "address": "Neerstraat 2A, 5761 RE Bakel",
      "coordinates": {
        "lat": null,
        "lng": null
      },
      "mapUrl": "https://www.google.nl/maps/dir//buitenuit%2Bbakel/data%3D%214m6%214m5%211m1%214e2%211m2%211m1%211s0x47c72384b36363f3%3A0xf0a4e21cbe51cd50?sa=X&ved=2ahUKEwi6nsjXq7z4AhULtqQKHfjpA0sQ9Rd6BAhVEAQ",
      "mapNote": "Map link observed on the official venue page.",
      "availability": "Venue displays child-card reservation form; no live inventory count verified. Library includes a reservation link. No booking made.",
      "bookingUrl": null,
      "officialUrl": "https://www.buitenuitbakel.nl/",
      "photoUrl": null,
      "photoPageUrl": "https://www.buitenuitbakel.nl/",
      "photoRights": "No open reuse licence verified. Copyright remains with the venue/photographer; link or obtain permission for publication.",
      "socialLinks": [],
      "review": {
        "rating": null,
        "count": null,
        "scope": "event",
        "sourceUrl": null,
        "note": "No independent event review verified. Selected venue testimonials are marketing, not independent event evidence."
      },
      "sources": [
        {
          "label": "Official event information",
          "url": "https://www.buitenuitbakel.nl/",
          "checkedAt": "2026-10-20",
          "supports": "Venue Halloween programme and reservation form"
        },
        {
          "label": "Supporting source",
          "url": "https://delagebeemden.op-shop.nl/3179/halloweenverhalen-bij-buitenuit/21-10-2026",
          "checkedAt": "2026-10-20",
          "supports": "Co-organizing library: date, story times, younger-child fit and free entry"
        },
        {
          "label": "Supporting source",
          "url": "https://www.bakelleeft.nl/evenement/halloweenmiddag-bij-buitenuit/",
          "checkedAt": "2026-10-20",
          "supports": "Destination listing: optional €11.50 child activity card"
        }
      ],
      "confidence": "confirmed",
      "caveats": [
        "Library specifically welcomes toddlers and preschoolers for stories/crafts; brave-children trail may be spooky. No numeric minimum age for main event established.",
        "Weather fallback not verified.",
        "Transit is an estimate, not a dated itinerary. Confirm last buses and rail works before purchasing."
      ],
      "language": "Library storytelling information is in Dutch. English storytelling not verified.",
      "museumkaart": "No Museumkaart needed for the library-listed free admission; optional activity cards cost extra.",
      "fitAllThree": null,
      "recommended": false,
      "status": "available-not-checked",
      "checkedAt": "2026-10-20T12:18:00Z",
      "availabilityCheckedAt": "2026-10-20",
      "transitNote": "All door-to-door times below are planning estimates, not date-specific journey-planner results. NS Weekend passes do not establish free local bus travel. Check rail engineering works and final bus connections before buying. No bookings, purchases or personal data submitted.",
      "scareAssessment": "Editorial classification from published programme, not an official safety certification.",
      "socialEvidenceNote": "Official profiles where verified; no exact 2026 social post claimed.",
      "media": [],
      "ageNote": null
    }
  ]
}
