{
  "schema_version": 2,
  "generated_at": "2026-08-03T12:43:50.000Z",
  "ingestion_policy": {
    "apify_source_eligibility": "all-public-event-platforms",
    "cross_listing_policy": "eligible-with-provenance-deduplication",
    "platform_listing_url_sufficient": true,
    "apify_public_event_platforms": [
      "eventbrite.com",
      "meetup.com",
      "luma.com",
      "lu.ma",
      "ticketmaster.com",
      "10times.com",
      "google.com",
      "allevents.in",
      "feverup.com",
      "facebook.com",
      "ra.co",
      "dice.fm",
      "partiful.com",
      "posh.vip"
    ],
    "status": "eligible-with-actor-review",
    "approved_actor_candidates": {
      "eventbrite.com": "solidcode/eventbrite-scraper",
      "meetup.com": "filip_cicvarek/meetup-scraper",
      "luma.com": "solidcode/luma-scraper",
      "lu.ma": "solidcode/luma-scraper"
    },
    "lower_priority_actor_candidates": {
      "ticketmaster.com": "solidcode/ticketmaster-scraper",
      "10times.com": "zen-studio/10times-events-scraper",
      "google.com": "johnvc/google-events-api---access-google-events-data",
      "allevents.in": "solidcode/allevents-scraper",
      "feverup.com": "solidcode/feverup-scraper",
      "facebook.com": "apify/facebook-events-scraper",
      "ra.co": "crawlerbros/resident-advisor-scraper",
      "dice.fm": "solidcode/dice-fm-scraper",
      "partiful.com": "heliostech/partiful-event-scraper",
      "posh.vip": "trev0n/posh-vip-scraper"
    },
    "public_facts_only": true,
    "attendee_or_profile_data": false,
    "default_max_results_per_pilot": 200,
    "default_max_usd_per_run": 5,
    "default_max_usd_per_billing_period": 25
  },
  "sources": [
    {
      "id": "bric",
      "name": "BRIC Events",
      "category": "culture",
      "scope": "Brooklyn",
      "url": "https://bricartsmedia.org/events-performances/",
      "access": "first-party-bounded-slot-json",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Bounded first-party event-slot JSON; exact public dates, venues, and canonical event links only."
    },
    {
      "id": "bronx-bp",
      "name": "Bronx Borough President Events",
      "category": "civic",
      "scope": "Bronx",
      "url": "https://bronxboropres.nyc.gov/events/",
      "access": "revize-json",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Bounded first-party finite Revize JSON calendar with local date filtering. Borough civic and community programs; contact-like text and media are discarded."
    },
    {
      "id": "bronx-museum",
      "name": "Bronx Museum Events",
      "category": "culture",
      "scope": "Bronx",
      "url": "https://bronxmuseum.org/events/",
      "access": "first-party-calendar-html",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Bounded first-party event HTML; exact public dates, times, venues, and canonical links only."
    },
    {
      "id": "brooklyn-bp",
      "name": "Brooklyn Borough President Events",
      "category": "civic",
      "scope": "Brooklyn",
      "url": "https://www.brooklynbp.nyc.gov/events/list/",
      "access": "wordpress-html",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Hearings, constituent events and borough programs."
    },
    {
      "id": "brooklyn-bridge-park",
      "name": "Brooklyn Bridge Park Events",
      "category": "parks",
      "scope": "Brooklyn waterfront",
      "url": "https://brooklynbridgepark.org/events/",
      "access": "html",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Mostly free seasonal sports, films, music and family events."
    },
    {
      "id": "brooklyn-museum",
      "name": "Brooklyn Museum Programs",
      "category": "culture",
      "scope": "Brooklyn",
      "url": "https://www.brooklynmuseum.org/calendar",
      "access": "html",
      "cadence": "weekly",
      "priority": 1,
      "status": "blocked",
      "notes": "First Saturdays, talks, performances and community programs."
    },
    {
      "id": "bpl",
      "name": "Brooklyn Public Library Calendar",
      "category": "library",
      "scope": "Brooklyn",
      "url": "https://www.bklynlibrary.org/calendar",
      "access": "first-party-json",
      "cadence": "daily",
      "priority": 1,
      "status": "active",
      "notes": "First-party discovery JSON supplies occurrence IDs, UTC times, branch/location, audience, tags, registration, virtual/hybrid, and cancellation state. Adapter pages sequentially with a 175ms delay."
    },
    {
      "id": "bryant-park",
      "name": "Bryant Park Calendar",
      "category": "public-space",
      "scope": "Midtown",
      "url": "https://bryantpark.org/calendar",
      "access": "html",
      "cadence": "daily-in-season",
      "priority": 1,
      "status": "blocked",
      "notes": "Films, performances, games, dance and workshops."
    },
    {
      "id": "city-parks-foundation",
      "name": "City Parks Foundation / SummerStage",
      "category": "music",
      "scope": "citywide",
      "url": "https://cityparksfoundation.org/calendar/",
      "access": "wordpress-html",
      "cadence": "daily-in-season",
      "priority": 1,
      "status": "active",
      "notes": "Free concerts, PuppetMobile and park stewardship."
    },
    {
      "id": "columbia",
      "name": "Columbia University Events",
      "category": "university",
      "scope": "Upper Manhattan",
      "url": "https://events.columbia.edu/",
      "access": "blocked-localist-robots",
      "cadence": "manual-recheck",
      "priority": 1,
      "status": "blocked",
      "notes": "Runtime fetches fail closed: the current robots policy disallows all crawling and the Localist occurrence API returns HTTP 403. Preserve previously verified public occurrences, but do not request this source until policy/access changes."
    },
    {
      "id": "cuny",
      "name": "CUNY Events",
      "category": "university",
      "scope": "citywide",
      "url": "https://www.cuny.edu/events/",
      "access": "html",
      "cadence": "weekly",
      "priority": 1,
      "status": "blocked",
      "notes": "Distributed public lectures, workforce and cultural programs."
    },
    {
      "id": "governors-island",
      "name": "Governors Island Events",
      "category": "public-space",
      "scope": "Governors Island",
      "url": "https://www.govisland.com/things-to-do/events",
      "access": "first-party-craft-calendar-json",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Bounded first-party Craft Calendar JSON adapter for complete non-recurring occurrences plus the one concrete next occurrence exposed for each repeating series. Later dates are never inferred from the aggregate repeat count. Arts, climate, races and community programs; public facts only."
    },
    {
      "id": "hudson-river-park",
      "name": "Hudson River Park Events",
      "category": "parks",
      "scope": "Manhattan west side",
      "url": "https://hudsonriverpark.org/visit/events/",
      "access": "html",
      "cadence": "weekly",
      "priority": 1,
      "status": "blocked",
      "notes": "Seasonal, often free and weather-sensitive."
    },
    {
      "id": "lincoln-center",
      "name": "Lincoln Center — Summer for the City",
      "category": "culture",
      "scope": "Lincoln Square",
      "url": "https://www.lincolncenter.org/series/summer-for-the-city/v/calendar",
      "access": "first-party-calendar-html",
      "cadence": "daily-in-season",
      "priority": 1,
      "status": "active",
      "notes": "Bounded first-party calendar HTML; duplicate renderings and time-only rows fail closed."
    },
    {
      "id": "nypl",
      "name": "New York Public Library Events",
      "category": "library",
      "scope": "Manhattan, Bronx, Staten Island",
      "url": "https://www.nypl.org/events/calendar",
      "access": "blocked-first-party-graphql",
      "cadence": "daily",
      "priority": 1,
      "status": "blocked",
      "notes": "High-volume free learning, culture, tech and neighborhood programming. The audited normalization module remains fixture-tested, but runtime hydration is disabled because scout.nypl.org/robots.txt currently publishes User-agent: * with Disallow: /. Previous good snapshot rows are preserved without requesting Scout."
    },
    {
      "id": "nonsense-nyc",
      "name": "Nonsense NYC",
      "category": "discovery",
      "scope": "citywide",
      "url": "https://www.nonsensenyc.com/",
      "access": "newsletter",
      "cadence": "weekly",
      "priority": 1,
      "status": "blocked",
      "notes": "High-value weird/underground coverage, often sparse metadata."
    },
    {
      "id": "community-boards",
      "name": "NYC Community Boards",
      "category": "civic",
      "scope": "59 districts",
      "url": "https://www.nyc.gov/site/communityboards/index.page",
      "access": "mixed",
      "cadence": "weekly",
      "priority": 1,
      "status": "blocked",
      "notes": "Umbrella directory only; never hydrated as a calendar. All 59 districts were independently audited and split into exact child dispositions: 25 registered runnable calendars and 34 blocked children (PDF-only, stale/404, cadence-only, challenge, undocumented embeds, or no bounded occurrence surface)."
    },
    {
      "id": "community-board-mn-02",
      "name": "Manhattan Community Board 2 Calendar",
      "category": "civic",
      "scope": "Manhattan Community District 2",
      "url": "https://cbmanhattan.cityofnewyork.us/cb2/calendar/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Independently reviewed child of the 59-board directory. Bounded first-party public meeting occurrences; private/contact/media fields are discarded."
    },
    {
      "id": "community-board-mn-04",
      "name": "Manhattan Community Board 4 Calendar",
      "category": "civic",
      "scope": "Manhattan Community District 4",
      "url": "https://cbmanhattan.cityofnewyork.us/cb4/calendar/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Independently reviewed child of the 59-board directory. Bounded first-party public meeting occurrences; private/contact/media fields are discarded."
    },
    {
      "id": "community-board-mn-10",
      "name": "Manhattan Community Board 10 Calendar",
      "category": "civic",
      "scope": "Manhattan Community District 10",
      "url": "https://cbmanhattan.cityofnewyork.us/cb10/calendar/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Independently reviewed child of the 59-board directory. Bounded first-party public meeting occurrences; private/contact/media fields are discarded."
    },
    {
      "id": "community-board-mn-12",
      "name": "Manhattan Community Board 12 Calendar",
      "category": "civic",
      "scope": "Manhattan Community District 12",
      "url": "https://cbmanhattan.cityofnewyork.us/cb12/calendar/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Independently reviewed child of the 59-board directory. Bounded first-party public meeting occurrences; private/contact/media fields are discarded."
    },
    {
      "id": "community-board-bk-06",
      "name": "Brooklyn Community Board 6 Calendar",
      "category": "civic",
      "scope": "Brooklyn Community District 6",
      "url": "https://brooklyncb6.cityofnewyork.us/calendar/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Independently reviewed child of the 59-board directory. First-party date-bounded Tribe REST; at most 3 pages x 100 rows, 2 MB per page and a 92-day window with the published 10-second crawl delay."
    },
    {
      "id": "community-board-bx-08",
      "name": "Bronx Community Board 8 Calendar",
      "category": "civic",
      "scope": "Bronx Community District 8",
      "url": "https://cbbronx.cityofnewyork.us/cb8/events/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Independently reviewed child of the 59-board directory. First-party date-bounded Tribe REST using New York wall-time fields; at most 3 pages x 100 rows, 2 MB per page and a 92-day window with the published 10-second crawl delay."
    },
    {
      "id": "community-board-qn-03",
      "name": "Queens Community Board 3 Calendar",
      "category": "civic",
      "scope": "Queens Community District 3",
      "url": "https://queenscb3.cityofnewyork.us/calendar/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Independently reviewed child of the 59-board directory. First-party date-bounded Tribe REST; at most 3 pages x 100 rows, 2 MB per page and a 92-day window."
    },
    {
      "id": "nyc-council",
      "name": "NYC Council Legislative Calendar",
      "category": "civic",
      "scope": "citywide",
      "url": "https://legistar.council.nyc.gov/Calendar.aspx",
      "access": "legistar-ics-api",
      "cadence": "weekdays",
      "priority": 1,
      "status": "active",
      "notes": "Hearings and public meetings; retain committee relations."
    },
    {
      "id": "nyc-dot",
      "name": "NYC DOT Events + Summer Streets",
      "category": "public-space",
      "scope": "citywide",
      "url": "https://www.nyc.gov/summerstreets",
      "access": "first-party-nyc-calendar-api",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "NYC public calendar API with exact Summer Streets name and canonical affiliation proof; runtime key comes only from public first-party config."
    },
    {
      "id": "nyc-parks",
      "name": "NYC Parks Events",
      "category": "parks",
      "scope": "citywide",
      "url": "https://www.nycgovparks.org/events",
      "access": "first-party-nyc-calendar-api",
      "cadence": "daily",
      "priority": 1,
      "status": "active",
      "notes": "NYC public calendar API with exact Parks category and mandatory canonical per-row proof; bounded pagination."
    },
    {
      "id": "nyc-parks-open-data",
      "name": "NYC Parks Events — Coming 14 Days",
      "category": "civic",
      "scope": "citywide",
      "url": "https://data.cityofnewyork.us/Recreation/NYC-Parks-Events-Upcoming-14-Days/w3wp-dpdi",
      "access": "socrata",
      "cadence": "daily",
      "priority": 1,
      "status": "active",
      "notes": "Best structured citywide starter feed; rolling window must be snapshotted."
    },
    {
      "id": "nyc-permits",
      "name": "NYC Permitted Event Information",
      "category": "civic",
      "scope": "citywide",
      "url": "https://data.cityofnewyork.us/City-Government/Permitted-Event-Information/tvpp-9vvx",
      "access": "socrata",
      "cadence": "daily",
      "priority": 1,
      "status": "active",
      "notes": "Parades, fairs, block parties and special events; dedupe multi-block permits."
    },
    {
      "id": "nyu",
      "name": "NYU Events",
      "category": "university",
      "scope": "Manhattan, Brooklyn",
      "url": "https://events.nyu.edu/",
      "access": "calendar-html",
      "cadence": "daily",
      "priority": 1,
      "status": "active",
      "notes": "Tag student-only and campus-access restrictions."
    },
    {
      "id": "ohny",
      "name": "Open House New York Calendar",
      "category": "design",
      "scope": "citywide",
      "url": "https://ohny.org/calendar/",
      "access": "html",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Tours and access to the built environment; tickets move quickly."
    },
    {
      "id": "prospect-park",
      "name": "Prospect Park Alliance Events",
      "category": "parks",
      "scope": "Brooklyn",
      "url": "https://www.prospectpark.org/events/",
      "access": "html",
      "cadence": "daily",
      "priority": 1,
      "status": "blocked",
      "notes": "Nature, volunteering, family and outdoor culture."
    },
    {
      "id": "queens-bp",
      "name": "Queens Borough President Events",
      "category": "civic",
      "scope": "Queens",
      "url": "https://www.queensbp.nyc.gov/",
      "access": "finite-first-party-homepage-html",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Finite official homepage reader; only exact public borough occurrences are retained."
    },
    {
      "id": "queens-museum",
      "name": "Queens Museum Events",
      "category": "culture",
      "scope": "Queens",
      "url": "https://queensmuseum.org/events/",
      "access": "html",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Community-centered public programs in Flushing Meadows."
    },
    {
      "id": "qpl",
      "name": "Queens Public Library Calendar",
      "category": "library",
      "scope": "Queens",
      "url": "https://www.queenslibrary.org/calendar",
      "access": "html",
      "cadence": "daily",
      "priority": 1,
      "status": "blocked",
      "notes": "Normalize branch names and multilingual programming."
    },
    {
      "id": "snug-harbor",
      "name": "Snug Harbor Cultural Center Events",
      "category": "culture",
      "scope": "Staten Island",
      "url": "https://snug-harbor.org/events/",
      "access": "wordpress-html",
      "cadence": "weekly",
      "priority": 1,
      "status": "blocked",
      "notes": "Critical Staten Island culture, gardens and community coverage."
    },
    {
      "id": "staten-island-bp",
      "name": "Staten Island Borough President / America250 Events",
      "category": "civic",
      "scope": "Staten Island",
      "url": "https://www.america250si.org/events-3",
      "access": "first-party-squarespace-html",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Bounded one-request reader for the public America250 Staten Island calendar co-launched with the borough president; exact visible occurrence dates/times and Staten Island locations only, with contacts, profiles and media excluded."
    },
    {
      "id": "the-skint",
      "name": "the skint",
      "category": "discovery",
      "scope": "citywide",
      "url": "https://www.theskint.com/",
      "access": "first-party-city-filtered-html",
      "cadence": "daily",
      "priority": 1,
      "status": "discovery",
      "notes": "Editorial event source; direct reader is held until an exact reviewed Apify Actor is registered. Public facts only; attendees, profiles, gated locations, and platform media remain excluded."
    },
    {
      "id": "wave-hill",
      "name": "Wave Hill Calendar",
      "category": "nature",
      "scope": "Bronx",
      "url": "https://www.wavehill.org/calendar",
      "access": "paginated-html-datetime",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Bounded first-party paginated calendar adapter using canonical links and machine-readable offset datetimes. Nature, art and family programming; public facts only."
    },
    {
      "id": "aicamp",
      "name": "AICamp New York",
      "category": "technology",
      "scope": "Manhattan",
      "url": "https://www.aicamp.ai/event",
      "access": "first-party-city-filtered-html",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Bounded one-request first-party New York result reader; only cards with exact encoded dates and EST/EDT times are retained, while attendees, profiles, contacts, gated venue details and media are excluded."
    },
    {
      "id": "artguide",
      "name": "Artforum Artguide",
      "category": "art",
      "scope": "citywide",
      "url": "https://www.artforum.com/artguide",
      "access": "apify-candidate",
      "cadence": "weekly",
      "priority": 2,
      "status": "discovery",
      "notes": "Editorial gallery aggregator; direct reader is held until an exact reviewed Apify Actor is registered. Public facts only; attendees, profiles, gated locations, and platform media remain excluded."
    },
    {
      "id": "bam",
      "name": "BAM Calendar",
      "category": "culture",
      "scope": "Brooklyn",
      "url": "https://www.bam.org/calendar",
      "access": "first-party-json",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Bounded first-party date-query JSON adapter with occurrence-level performance identity. Film, performance and talks; source media is discarded."
    },
    {
      "id": "center-architecture",
      "name": "Center for Architecture Events",
      "category": "design",
      "scope": "Manhattan",
      "url": "https://www.centerforarchitecture.org/events/",
      "access": "first-party-week-html",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Architecture, design and urban public programming through a bounded first-party weekly calendar adapter; at most 14 pages, 500 rows, 600 KB per page and 5 MB total across a 93-day window with the published 10-second crawl delay."
    },
    {
      "id": "central-park-conservancy",
      "name": "Central Park Conservancy Events",
      "category": "parks",
      "scope": "Central Park",
      "url": "https://www.centralparknyc.org/activities/events",
      "access": "first-party-json",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Bounded first-party finite Craft JSON catalog expanded with stable instance IDs and Eastern timestamps. Tours, stewardship and public programs; media and personal data are discarded."
    },
    {
      "id": "cornell-tech",
      "name": "Cornell Tech Events",
      "category": "technology",
      "scope": "Roosevelt Island",
      "url": "https://tech.cornell.edu/events/",
      "access": "first-party-wordpress-json-wrapper",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "First-party finite JSON/card endpoint; one request, at most 100 rows and 2 MB across a 92-day window. Public tech, startup, campus-tour and information-session facts only."
    },
    {
      "id": "little-island",
      "name": "Little Island Events",
      "category": "culture",
      "scope": "Chelsea",
      "url": "https://littleisland.org/events/list/",
      "access": "tribe-events-rest",
      "cadence": "weekly-in-season",
      "priority": 2,
      "status": "active",
      "notes": "Bounded first-party Tribe Events REST adapter. Low-cost and free outdoor performance; public event facts only, no attendee/profile/media ingestion."
    },
    {
      "id": "luma-nyc",
      "name": "Luma NYC",
      "category": "technology",
      "scope": "metro",
      "url": "https://lu.ma/nyc",
      "access": "apify-actor",
      "cadence": "daily",
      "priority": 2,
      "status": "approved-pilot",
      "actor_id": "solidcode/luma-scraper",
      "notes": "Approved for credential-bound bounded public-event hydration through solidcode/luma-scraper: 62 days, 200 rows and $5/run. Detail/featured-guest expansion is disabled; people, profiles, attendance, registration questions and media are projected out, transient datasets are deleted, and cross-listing provenance is preserved."
    },
    {
      "id": "manhattan-bp",
      "name": "Manhattan Borough President Events",
      "category": "civic",
      "scope": "Manhattan",
      "url": "https://www.manhattanbp.nyc.gov/events/",
      "access": "first-party-calendar-html",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Bounded first-party calendar HTML for public hearings and borough programs."
    },
    {
      "id": "meetup-nyc",
      "name": "Meetup NYC",
      "category": "community",
      "scope": "metro",
      "url": "https://www.meetup.com/find/us--ny--new-york/",
      "access": "apify-actor",
      "cadence": "daily",
      "priority": 2,
      "status": "approved-pilot",
      "actor_id": "filip_cicvarek/meetup-scraper",
      "notes": "Approved for credential-bound bounded public-event hydration through filip_cicvarek/meetup-scraper: events mode only, 62 days, 200 rows and $5/run. Attendees, capacity, member/profile/contact data, gated venue details and media are projected out and the transient dataset is deleted."
    },
    {
      "id": "moma",
      "name": "MoMA Calendar",
      "category": "culture",
      "scope": "Manhattan, Queens",
      "url": "https://www.moma.org/calendar/",
      "access": "html-json",
      "cadence": "weekly",
      "priority": 2,
      "status": "blocked",
      "notes": "Art, film, talks and design. Reviewed 2026-08-02: the public calendar returns HTTP 403 and no eligible stable occurrence feed was verified; fail closed and recheck for an official API or ICS feed."
    },
    {
      "id": "nyc-creative-ai",
      "name": "NYC Creative AI",
      "category": "technology",
      "scope": "citywide",
      "url": "https://luma.com/NYCCreativeAI",
      "access": "apify-actor",
      "cadence": "monthly",
      "priority": 2,
      "status": "approved-pilot",
      "actor_id": "solidcode/luma-scraper",
      "notes": "Creative AI demos and community through the credential-bound solidcode/luma-scraper adapter: exact calendar URL, 62 days, 200 rows and $5/run. Detail/guest expansion is disabled; people, attendance, registration questions and media are projected out and the transient dataset is deleted."
    },
    {
      "id": "nyc-service",
      "name": "NYC Service Opportunities",
      "category": "volunteer",
      "scope": "citywide",
      "url": "https://www.nycservice.org/search/",
      "access": "first-party-json-post",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Bounded first-party public opportunity JSON adapter; at most 8 pages x 50 parent rows, 750 KB per page and 4 MB total across a 93-day window. Only complete concrete public occurrences are emitted; private/member/profile fields are excluded."
    },
    {
      "id": "nyc-tourism",
      "name": "NYC Tourism Events",
      "category": "discovery",
      "scope": "citywide",
      "url": "https://www.nyctourism.com/events/",
      "access": "first-party-next-embedded-search-json",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Bounded one-request first-party events-page reader. Only exact August–September NYC event spans are retained; obvious sports/performance season summaries, contacts, profiles and media are excluded."
    },
    {
      "id": "nycruns",
      "name": "NYCRUNS Race Calendar",
      "category": "sports",
      "scope": "citywide",
      "url": "https://nycruns.com/races",
      "access": "first-party-next-embedded-editorial-json",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Single-request first-party race calendar adapter; at most 200 cards and 750 KB across a 93-day window. Excludes time-TBA cards and does not invent durations; published start-only races use end=start."
    },
    {
      "id": "nyrr",
      "name": "NYRR Race Calendar",
      "category": "sports",
      "scope": "citywide",
      "url": "https://www.nyrr.org/run/race-calendar",
      "access": "html",
      "cadence": "weekly",
      "priority": 2,
      "status": "blocked",
      "notes": "Races, community runs and youth events."
    },
    {
      "id": "oh-my-rockness",
      "name": "Oh My Rockness",
      "category": "music",
      "scope": "citywide",
      "url": "https://www.ohmyrockness.com/",
      "access": "html",
      "cadence": "daily",
      "priority": 2,
      "status": "blocked",
      "notes": "Independent music discovery. Reviewed 2026-08-02: Cloudflare challenges the bounded public listing fetch; do not bypass it or substitute cross-listed venue events under this source identity."
    },
    {
      "id": "pioneer-works",
      "name": "Pioneer Works Programs",
      "category": "culture",
      "scope": "Red Hook",
      "url": "https://pioneerworks.org/programs",
      "access": "first-party-sanity-groq-json",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Bounded first-party Sanity GROQ adapter with server-side date overlap, stable program/class IDs, and explicit session expansion. Hidden, masked-date, continuous-range, gated, attendee, profile and media fields are excluded. Art, science and technology crossover."
    },
    {
      "id": "resident-advisor",
      "name": "Resident Advisor NYC",
      "category": "nightlife",
      "scope": "citywide",
      "url": "https://ra.co/events/us/newyork",
      "access": "apify-actor-candidate",
      "cadence": "pilot-only",
      "priority": 3,
      "status": "actor-review",
      "candidate_actor_id": "crawlerbros/resident-advisor-scraper",
      "notes": "Eligible lower-priority Apify candidate; review exact bounds and schema before a capped pilot. Retain public event facts only. Cross-listing and nightlife overlap affect rank, not eligibility."
    },
    {
      "id": "partiful-nyc",
      "name": "Partiful NYC",
      "category": "community",
      "scope": "citywide",
      "url": "https://partiful.com/",
      "access": "apify-actor-candidate",
      "cadence": "pilot-only",
      "priority": 3,
      "status": "actor-review",
      "candidate_actor_id": "heliostech/partiful-event-scraper",
      "notes": "Eligible lower-priority Apify candidate. Public listings and cross-listings are allowed; private/invite-only events, guest data, profiles, hidden locations and registration answers are excluded."
    },
    {
      "id": "posh-nyc",
      "name": "Posh NYC",
      "category": "nightlife",
      "scope": "citywide",
      "url": "https://posh.vip/events",
      "access": "apify-actor-candidate",
      "cadence": "pilot-only",
      "priority": 3,
      "status": "actor-review",
      "candidate_actor_id": "trev0n/posh-vip-scraper",
      "notes": "Eligible lower-priority Apify candidate; review exact bounds and public-only schema before a capped pilot. Exclude guest, profile, contact, private-location and media fields."
    },
    {
      "id": "screen-slate",
      "name": "Screen Slate",
      "category": "film",
      "scope": "citywide",
      "url": "https://www.screenslate.com/",
      "access": "first-party-json-plus-venue-html",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Independent and repertory film through bounded first-party date/detail JSON plus public venue pages; 93-day maximum, 180 requests, 20 MB total and 5,000 rows. Only NYC-filtered screenings with a resolved public NYC venue are accepted."
    },
    {
      "id": "the-city-edit",
      "name": "The City Edit NYC",
      "category": "discovery",
      "scope": "citywide",
      "url": "https://www.thecityeditnyc.com/things-to-do/2026-08",
      "access": "html",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Bounded one-request first-party monthly editorial reader. Exact single-day occurrences are retained with canonical public links; ambiguous multi-day series ranges, people data and media are excluded."
    },
    {
      "id": "met-museum",
      "name": "The Met Events",
      "category": "culture",
      "scope": "Manhattan",
      "url": "https://www.metmuseum.org/events",
      "access": "html",
      "cadence": "weekly",
      "priority": 2,
      "status": "blocked",
      "notes": "Tours, talks, performances and education."
    },
    {
      "id": "audit-a856-cityrecord-nyc-gov-3f2b8f8c",
      "name": "a856-cityrecord.nyc.gov · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://a856-cityrecord.nyc.gov/",
      "access": "first-party-calendar-plus-details",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded City Record section and structured detail pages; public meeting occurrences only."
    },
    {
      "id": "audit-ai-columbia-edu-c5170914",
      "name": "ai.columbia.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://ai.columbia.edu/events",
      "access": "tribe-events-rest",
      "cadence": "weekly",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-api-portal-nyc-gov-8bf971d5",
      "name": "api-portal.nyc.gov · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://api-portal.nyc.gov/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "registry_role": "technical-reference",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-arch-columbia-edu-ae6342b5",
      "name": "arch.columbia.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.arch.columbia.edu/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-aws-amazon-com-5a77aeb0",
      "name": "aws.amazon.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://aws.amazon.com/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-baruch-cuny-edu-6325f039",
      "name": "baruch.cuny.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.baruch.cuny.edu/coned",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-bbg-org-ff6a78a7",
      "name": "bbg.org · audited endpoint",
      "category": "nature",
      "scope": "NYC / metro",
      "url": "https://www.bbg.org/calendar",
      "access": "first-party-month-html",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "First-party date-addressable month calendar; at most 4 pages, 2 MB each, 750 results and a 93-day window. Fixed Brooklyn Botanic Garden venue unless explicitly online."
    },
    {
      "id": "audit-beta-nyc-a936d168",
      "name": "beta.nyc · audited endpoint",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://www.beta.nyc/events",
      "access": "tribe-events-rest",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "First-party date-bounded Tribe Events REST adapter; at most 2 pages x 50 rows, 1 MB per page, 93-day window. Public event facts only."
    },
    {
      "id": "audit-betaworks-com-b0307134",
      "name": "betaworks.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.betaworks.com/events",
      "access": "first-party-paginated-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party event index and detail pages; exact public NYC occurrences only."
    },
    {
      "id": "battery-park-city",
      "name": "Battery Park City Authority Events",
      "category": "parks",
      "scope": "Battery Park City",
      "url": "https://bpca.ny.gov/events/list/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Promoted from the July 2026 endpoint audit to a bounded first-party Tribe Events REST adapter. Public waterfront programs only; no attendee/profile/media ingestion."
    },
    {
      "id": "audit-brainstation-io-95711b30",
      "name": "brainstation.io · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://brainstation.io/events/new-york",
      "access": "first-party-campus-event-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Official New York event page; exact public offline EducationEvent occurrences only."
    },
    {
      "id": "audit-bricartsmedia-org-29126cd3",
      "name": "bricartsmedia.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.bricartsmedia.org/events-performances",
      "access": "duplicate-alias",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Exact duplicate registry alias of bric; retained for audit provenance and never hydrated independently.",
      "registry_role": "duplicate-alias",
      "duplicate_of": "bric"
    },
    {
      "id": "audit-bronxriver-org-ae7acb49",
      "name": "Bronx River Alliance Calendar",
      "category": "parks",
      "scope": "Bronx River, Bronx",
      "url": "https://bronxriver.org/visit-the-river/calendar",
      "access": "first-party-html-plus-robots-allowed-ajax",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party calendar plus explicitly robots-allowed admin-ajax pagination: 93 days, 7 pages, 75 occurrences, 1.5 MB/response and 25 MB total, sequential. Rejects named Westchester locations and retains public event facts only."
    },
    {
      "id": "audit-brooklynarmyterminal-com-07a1b032",
      "name": "Brooklyn Army Terminal Events",
      "category": "public-space",
      "scope": "Sunset Park, Brooklyn",
      "url": "https://brooklynarmyterminal.com/events",
      "access": "blocked-cloudflare-challenge",
      "cadence": "weekly",
      "priority": 3,
      "status": "blocked",
      "notes": "Reviewed 2026-08-02: the public route returns a Cloudflare 403 challenge. Wait for an allowed first-party feed or explicit access; do not bypass the challenge."
    },
    {
      "id": "audit-brooklynchamber-com-38d7f342",
      "name": "brooklynchamber.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.brooklynchamber.com/events/",
      "access": "first-party-calendar-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Finite first-party chamber calendar; exact public NYC business events only."
    },
    {
      "id": "audit-brooklynmuseum-org-d9ea278f",
      "name": "brooklynmuseum.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.brooklynmuseum.org/programs",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-calendar-aiany-org-8cf56626",
      "name": "calendar.aiany.org · audited endpoint",
      "category": "design",
      "scope": "NYC / metro",
      "url": "https://calendar.aiany.org/",
      "access": "duplicate-alias",
      "cadence": "weekly",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "center-architecture",
      "notes": "Exact duplicate calendar alias of center-architecture. Do not hydrate separately; preserve this registry edge for audit and deduplication truth."
    },
    {
      "id": "audit-ccny-cuny-edu-a97684c6",
      "name": "ccny.cuny.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.ccny.cuny.edu/calendar/events.ics",
      "access": "first-party-ics",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Official CCNY public calendar ICS; bounded exact public occurrences only."
    },
    {
      "id": "audit-cds-nyu-edu-3dddd0ac",
      "name": "cds.nyu.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://cds.nyu.edu/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-cfany-org-d18d7f50",
      "name": "cfany.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.cfany.org/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-citylimits-org-cbc70edb",
      "name": "citylimits.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://citylimits.org/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party Tribe Events REST reader for public Empire Startups occurrences; 92 days, three pages, 150 rows, 1.5 MB and the declared ten-second crawl delay, with contacts, profiles, custom fields and media excluded."
    },
    {
      "id": "audit-civichall-org-187d53a4",
      "name": "civichall.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.civichall.org/events",
      "access": "first-party-calendar-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Seasonal first-party calendar reader; exact public NYC occurrences only and current-empty runs are valid."
    },
    {
      "id": "audit-clubfreetime-com-166dac24",
      "name": "clubfreetime.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.clubfreetime.com/new-york-city-nyc/free-events-things-to-do/today/activities",
      "access": "apify-candidate",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Editorial event aggregator; direct reader is held until an exact reviewed Apify Actor is registered. Public facts only; attendees, profiles, gated locations, and platform media remain excluded."
    },
    {
      "id": "audit-cncf-io-36033559",
      "name": "cncf.io · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.cncf.io/events/",
      "access": "first-party-cncf-html-jsonld",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Official CNCF discovery plus community2.cncf.io public details; bounded sequential requests with 2-second delay."
    },
    {
      "id": "audit-companyventures-co-3d099104",
      "name": "companyventures.co · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.companyventures.co/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-cooper-edu-1e5cd95e",
      "name": "cooper.edu · audited endpoint",
      "category": "university",
      "scope": "NYC / metro",
      "url": "https://cooper.edu/events-and-exhibitions/events",
      "access": "drupal-json-api",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "First-party Drupal JSON:API adapter; at most 4 pages x 50 rows, 500 KB per page and 1.5 MB total across a 93-day window. Public facts only."
    },
    {
      "id": "audit-coursehorse-com-aee86134",
      "name": "coursehorse.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://coursehorse.com/nyc/classes/tech/ai",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-cpe-newschool-edu-f5601133",
      "name": "cpe.newschool.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://cpe.newschool.edu/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-csi-cuny-edu-3c402de2",
      "name": "csi.cuny.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.csi.cuny.edu/event-listing",
      "access": "first-party-paginated-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Official CSI event listing with bounded pagination; exact public occurrences only."
    },
    {
      "id": "audit-culturelablic-org-145e0b64",
      "name": "culturelablic.org · audited endpoint",
      "category": "culture",
      "scope": "Long Island City, Queens",
      "url": "https://www.culturelablic.org/calendar",
      "access": "blocked-client-runtime-schema-gap",
      "cadence": "weekly",
      "priority": 3,
      "status": "blocked",
      "notes": "Reviewed 2026-08-02: the allowed Wix HTML exposes application configuration but no occurrence rows or stable unauthenticated request contract. Do not replay visitor sessions; recheck for official API, ICS, or server-rendered datetimes."
    },
    {
      "id": "audit-culturepass-nyc-e7ad6c2e",
      "name": "culturepass.nyc · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.culturepass.nyc/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-data-cityofnewyork-us-013a22d7",
      "name": "data.cityofnewyork.us · audited endpoint",
      "category": "parks",
      "scope": "citywide",
      "url": "https://data.cityofnewyork.us/City-Government/NYC-Parks-Public-Events-Upcoming-14-Days/w3wp-dpdi",
      "access": "duplicate-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "nyc-parks-open-data",
      "notes": "Exact dataset alias of nyc-parks-open-data. Preserve this registry edge for audit provenance and never hydrate it independently."
    },
    {
      "id": "audit-data-cityofnewyork-us-2921be70",
      "name": "data.cityofnewyork.us · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://data.cityofnewyork.us/Recreation/Public-Programs-Division-Special-Events/6v4b-5gp4",
      "access": "date-bounded-socrata",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Date-projected Socrata reader for General Public Parks special events; private/group/partner fields are discarded."
    },
    {
      "id": "audit-datadriven-nyc-71695323",
      "name": "datadriven.nyc · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.datadriven.nyc/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-datascience-columbia-edu-b833251f",
      "name": "datascience.columbia.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://datascience.columbia.edu/events",
      "access": "first-party-wordpress-json",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Seasonal bounded first-party calendar; current-empty runs are valid and public occurrence facts only."
    },
    {
      "id": "audit-developer-localist-com-165d5348",
      "name": "developer.localist.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://developer.localist.com/doc/api",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "registry_role": "technical-reference",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-developer-microsoft-com-bee82ca9",
      "name": "developer.microsoft.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://developer.microsoft.com/en-us/reactor/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-developer-ticketmaster-com-d536cac2",
      "name": "developer.ticketmaster.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://developer.ticketmaster.com/products-and-docs/apis/discovery-api/v2",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "registry_role": "technical-reference",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-dice-fm-e7f14448",
      "name": "dice.fm · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://dice.fm/browse/new-york",
      "access": "apify-actor",
      "cadence": "daily",
      "priority": 3,
      "status": "actor-review",
      "candidate_actor_id": "solidcode/dice-fm-scraper",
      "notes": "Eligible lower-priority Apify candidate; review exact bounds and schema before a capped pilot. Cross-listing and ticketing overlap affect rank, not eligibility; retain public event facts only."
    },
    {
      "id": "audit-discover-bklynlibrary-org-6e62b673",
      "name": "discover.bklynlibrary.org · audited endpoint",
      "category": "library",
      "scope": "Brooklyn",
      "url": "https://discover.bklynlibrary.org/?event=true",
      "access": "duplicate-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "bpl",
      "notes": "Exact discovery-page alias of the Brooklyn Public Library calendar. Preserve provenance and never hydrate separately from bpl."
    },
    {
      "id": "audit-donyc-com-5d23488f",
      "name": "donyc.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://donyc.com/events",
      "access": "apify-candidate",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Public event platform; direct reader is held until an exact reviewed Apify Actor is registered. Public facts only; attendees, profiles, gated locations, and platform media remain excluded."
    },
    {
      "id": "audit-ecornell-cornell-edu-7c4d6a0c",
      "name": "ecornell.cornell.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://ecornell.cornell.edu/live",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-edc-nyc-f6c1bab8",
      "name": "edc.nyc · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://edc.nyc/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-empirestartups-com-5e99ddd1",
      "name": "Empire Startups Events",
      "category": "technology",
      "scope": "NYC / online",
      "url": "https://empirestartups.com/events",
      "access": "tribe-events-rest",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party Tribe Events REST reader: 92-day window, at most three pages and 150 rows, declared ten-second crawl delay, exact occurrence dates, and NYC/online public facts only. Contacts, custom fields, profiles, attendees and media are excluded."
    },
    {
      "id": "audit-engineering-nyu-edu-cda5d393",
      "name": "engineering.nyu.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://engineering.nyu.edu/events",
      "access": "first-party-calendar-plus-details",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party calendar and detail pages; exact public NYC occurrences only."
    },
    {
      "id": "audit-engineering-nyu-edu-78e6ad8d",
      "name": "engineering.nyu.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://engineering.nyu.edu/research-innovation/centers/nyc-media-lab",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-eranyc-com-44aed5e5",
      "name": "eranyc.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.eranyc.com/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "eventbrite-free",
      "name": "Eventbrite NYC Free Events",
      "category": "discovery",
      "scope": "metro",
      "url": "https://www.eventbrite.com/d/ny--new-york/free--events/",
      "access": "apify-actor",
      "cadence": "daily",
      "priority": 3,
      "status": "approved-pilot",
      "actor_id": "solidcode/eventbrite-scraper",
      "notes": "Approved for bounded public-event hydration through Apify; the stable public Eventbrite listing URL is sufficient provenance, attendee/profile data is excluded, cross-listings are eligible, and the metro boundary is enforced."
    },
    {
      "id": "audit-eventbrite-com-fa2d43c3",
      "name": "Eventbrite NYC Classes",
      "category": "learning",
      "scope": "NYC / metro",
      "url": "https://www.eventbrite.com/d/ny--new-york/classes",
      "access": "apify-actor",
      "cadence": "daily",
      "priority": 3,
      "status": "approved-pilot",
      "actor_id": "solidcode/eventbrite-scraper",
      "notes": "Schema-reviewed class-search projection approved for the credential-bound public-facts Actor runtime: 62 days, 200 rows and $5/run. Every published occurrence is expanded, NYC geography is enforced, and attendees, profiles, contacts, registration answers and platform media are projected out before transient dataset deletion."
    },
    {
      "id": "audit-eventbrite-com-4194771f",
      "name": "Eventbrite NYC Technology",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://www.eventbrite.com/d/ny--new-york/tech",
      "access": "apify-actor",
      "cadence": "daily",
      "priority": 3,
      "status": "approved-pilot",
      "actor_id": "solidcode/eventbrite-scraper",
      "notes": "Schema-reviewed science-and-technology projection approved for the credential-bound public-facts Actor runtime: 62 days, 200 rows and $5/run. Every published occurrence is expanded, NYC geography is enforced, and attendees, profiles, contacts, registration answers and platform media are projected out before transient dataset deletion."
    },
    {
      "id": "audit-events-brooklynpaper-com-7b7b7734",
      "name": "events.brooklynpaper.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://events.brooklynpaper.com/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-events-newschool-edu-982185ac",
      "name": "The New School Public Events",
      "category": "university",
      "scope": "Manhattan",
      "url": "https://events.newschool.edu/",
      "access": "first-party-public-algolia-index",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "Date-bounded public search index used by the first-party calendar; requires the general-public tag and caps at 10 pages x 100 rows, 2 MB/page, 92 days. Search-only browser key; public event facts only."
    },
    {
      "id": "audit-execed-business-columbia-edu-2371ff20",
      "name": "execed.business.columbia.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://execed.business.columbia.edu/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-execed-engineering-columbia-edu-55775dee",
      "name": "execed.engineering.columbia.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://execed.engineering.columbia.edu/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-eyebeam-org-9a1b118b",
      "name": "eyebeam.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.eyebeam.org/programs",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-flushingtownhall-org-917d0b85",
      "name": "flushingtownhall.org · audited endpoint",
      "category": "culture",
      "scope": "NYC / metro",
      "url": "https://www.flushingtownhall.org/events",
      "access": "first-party-html",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "First-party calendar HTML with embedded event facts and bounded detail verification; at most 40 rows, 1.5 MB list/detail responses, 93-day window, and the published 10-second crawl delay."
    },
    {
      "id": "audit-fordham-edu-5e6ef421",
      "name": "Fordham University Events",
      "category": "university",
      "scope": "Bronx and Manhattan",
      "url": "https://now.fordham.edu/events/",
      "access": "blocked-cloudflare-challenge",
      "cadence": "weekly",
      "priority": 3,
      "status": "blocked",
      "notes": "Reviewed 2026-08-02: advertised Tribe JSON and ICS endpoints return Cloudflare 403 challenges; reachable RSS exposes publication dates, not occurrence times. Fail closed and never substitute RSS pubDate."
    },
    {
      "id": "audit-forfree-nyc-c6061a79",
      "name": "forfree.nyc · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://forfree.nyc/",
      "access": "apify-candidate",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Editorial event aggregator; direct reader is held until an exact reviewed Apify Actor is registered. Public facts only; attendees, profiles, gated locations, and platform media remain excluded."
    },
    {
      "id": "audit-gdg-community-dev-d60f9fc5",
      "name": "gdg.community.dev · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://gdg.community.dev/gdg-nyc/",
      "access": "apify-candidate",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Hosted community event platform; direct reader is held until an exact reviewed Apify Actor is registered for the official NYC, Brooklyn, and Queens chapters. Public facts only; attendees, profiles, gated locations, and platform media remain excluded."
    },
    {
      "id": "audit-generalassemb-ly-ea4cb29b",
      "name": "generalassemb.ly · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://generalassemb.ly/education?topic=artificial-intelligence",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-gothamist-com-2f151396",
      "name": "gothamist.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://gothamist.com/arts-entertainment",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-hackmanhattan-com-eaff2ca2",
      "name": "Hack Manhattan Public Calendar",
      "category": "technology",
      "scope": "Midtown Manhattan",
      "url": "https://hackmanhattan.com/calendar",
      "access": "organizer-declared-public-google-ics",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "One organizer-declared public Google Calendar ICS request over a maximum 93-day window; 2 MB, 5,000-row and 500-occurrence caps. Only CLASS:PUBLIC rows with explicit open-to-public language and the exact Hack Manhattan NYC venue are emitted. Member, reservation, private, ambiguous, contact, attendee and media data fail closed or are discarded."
    },
    {
      "id": "audit-harlemonestop-com-cb88dea1",
      "name": "harlemonestop.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.harlemonestop.com/search/?category=1",
      "access": "apify-candidate",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Editorial and cross-listing platform; direct reader is held until an exact reviewed Apify Actor is registered. Public facts only; attendees, profiles, gated locations, and platform media remain excluded."
    },
    {
      "id": "audit-home-mlops-community-71435014",
      "name": "home.mlops.community · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://home.mlops.community/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-huggingface-co-81548ba5",
      "name": "huggingface.co · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://huggingface.co/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-infohub-nyced-org-efff67a0",
      "name": "infohub.nyced.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://infohub.nyced.org/working-with-the-doe/professional-learning",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-isacany-org-d57062bf",
      "name": "isacany.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://engage.isaca.org/newyorkmetropolitanchapter/events/calendar",
      "access": "first-party-calendar-plus-details",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Official ISACA New York chapter calendar and bounded same-host public details only."
    },
    {
      "id": "audit-itp-nyu-edu-8a42fd36",
      "name": "itp.nyu.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://itp.nyu.edu/shows",
      "access": "first-party-seasonal-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Seasonal first-party ITP show reader; current-empty runs are valid and exact public occurrences only."
    },
    {
      "id": "audit-jcal-org-14e5ff0d",
      "name": "jcal.org · audited endpoint",
      "category": "culture",
      "scope": "Jamaica, Queens",
      "url": "https://www.jcal.org/calendar",
      "access": "blocked-third-party-widget",
      "cadence": "weekly",
      "priority": 3,
      "status": "blocked",
      "notes": "Reviewed 2026-08-02: the registered calendar is 404 and the replacement embeds a third-party Eventbrite widget; robots disallow Squarespace JSON/iCal views. Request an official feed or review the exact Eventbrite Actor before automation."
    },
    {
      "id": "audit-laguardia-ce-cuny-edu-e078b8e9",
      "name": "laguardia.ce.cuny.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://laguardia.ce.cuny.edu/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-langchain-com-c922b47e",
      "name": "langchain.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.langchain.com/events",
      "access": "first-party-webflow-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party event HTML; exact public NYC occurrences only."
    },
    {
      "id": "audit-lincolncenter-org-1b60a985",
      "name": "lincolncenter.org · audited endpoint",
      "category": "culture",
      "scope": "Lincoln Square",
      "url": "https://www.lincolncenter.org/series/lincoln-center-presents",
      "access": "duplicate-alias",
      "cadence": "weekly",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "lincoln-center",
      "notes": "Series-route alias of the integrated Lincoln Center calendar. Preserve the registry edge and hydrate only through lincoln-center."
    },
    {
      "id": "audit-luma-com-90875e93",
      "name": "Luma · AI Furnace NYC",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://luma.com/ai-furnace",
      "access": "apify-actor-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "luma-nyc",
      "notes": "Calendar subquery of luma-nyc. Use only the exact approved solidcode/luma-scraper target; never execute or count this alias as an independent feed."
    },
    {
      "id": "audit-luma-com-b56d7208",
      "name": "Luma · Artificial Intelligence NYC",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://luma.com/artificialintelligencenyc",
      "access": "apify-actor-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "luma-nyc",
      "notes": "Calendar subquery of luma-nyc. Use only the exact approved solidcode/luma-scraper target; public facts only and no independent alias execution."
    },
    {
      "id": "audit-luma-com-d7cc9e21",
      "name": "Luma · NYC AI Discovery",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://luma.com/discover/nyc/ai",
      "access": "apify-actor-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "luma-nyc",
      "notes": "Discovery subquery of luma-nyc. Use only the exact approved solidcode/luma-scraper target and preserve canonical event provenance after deduplication."
    },
    {
      "id": "audit-luma-com-27627210",
      "name": "Luma NYC route alias",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://luma.com/nyc",
      "access": "apify-actor-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "luma-nyc",
      "notes": "Exact route alias of luma-nyc. Never execute or count separately from the approved Actor-backed target."
    },
    {
      "id": "audit-madisonsquarepark-org-beb95a11",
      "name": "madisonsquarepark.org · audited endpoint",
      "category": "parks",
      "scope": "NYC / metro",
      "url": "https://madisonsquarepark.org/calendar",
      "access": "first-party-html",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "Single bounded first-party 60-day AddEvent calendar page; at most 100 rows and 1.5 MB, with the published 10-second crawl delay. Public event facts only."
    },
    {
      "id": "audit-makerspace-nyc-0edd17e2",
      "name": "makerspace.nyc · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.makerspace.nyc/classes",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-manhattancc-org-dd2fa0b6",
      "name": "manhattancc.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://business.manhattancc.org/calendar",
      "access": "bounded-first-party-growthzone-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Official branded first-party chamber calendar only; 10-second delay and member-tier rows excluded."
    },
    {
      "id": "audit-meetup-com-6e95bf02",
      "name": "Meetup · NYC AI search",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://www.meetup.com/find/us--ny--new-york/ai",
      "access": "apify-actor-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "meetup-nyc",
      "notes": "Search subquery of meetup-nyc. Use only the exact approved filip_cicvarek/meetup-scraper target; attendees, profiles and gated locations remain excluded."
    },
    {
      "id": "audit-meetup-com-4882e00d",
      "name": "Meetup · New York AI Engineers",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://www.meetup.com/new-york-ai-engineers",
      "access": "apify-actor-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "meetup-nyc",
      "notes": "Group subquery of meetup-nyc; never execute or count separately from the approved Actor-backed target."
    },
    {
      "id": "audit-meetup-com-caa71848",
      "name": "Meetup · NY Tech",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://www.meetup.com/ny-tech",
      "access": "apify-actor-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "meetup-nyc",
      "notes": "Group subquery of meetup-nyc; never execute independently or retain attendees, profiles, RSVP counts or gated locations."
    },
    {
      "id": "audit-meetup-com-0c19bc45",
      "name": "Meetup · NYC Python",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://www.meetup.com/nycpython",
      "access": "apify-actor-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "meetup-nyc",
      "notes": "Group subquery of meetup-nyc; canonical public event facts flow only through the approved Actor-backed target."
    },
    {
      "id": "audit-meetup-com-cf6d7599",
      "name": "Meetup · ODSC AI New York",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://www.meetup.com/odsc-ai-new-york",
      "access": "apify-actor-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "meetup-nyc",
      "notes": "Group subquery of meetup-nyc; never execute or count separately from the approved Actor-backed target."
    },
    {
      "id": "audit-meetup-com-bd17905d",
      "name": "Meetup · OWASP NYC",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://www.meetup.com/owaspnyc",
      "access": "apify-actor-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "meetup-nyc",
      "notes": "Group subquery of meetup-nyc; public occurrence facts only through the approved Actor target and no independent alias execution."
    },
    {
      "id": "audit-mobilize-us-b707802e",
      "name": "mobilize.us · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.mobilize.us/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-mongodb-com-9579edc3",
      "name": "mongodb.com · audited endpoint",
      "category": "technology",
      "scope": "New York City",
      "url": "https://www.mongodb.com/events",
      "access": "bounded-first-party-discovery-plus-jsonld-detail",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party discovery plus at most four same-host Event JSON-LD details; exact NYC, organizer, title, URL, time, and public offline-mode proof required. Maximum 93-day window, five requests, 250 discovery cards, 700 KB discovery and 400 KB/detail. Forms, contacts, speakers, profiles, attendees, tokens, and images are excluded."
    },
    {
      "id": "audit-neo4j-com-544ef113",
      "name": "neo4j.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://neo4j.com/events",
      "access": "first-party-wordpress-json",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party Tribe Events JSON; exact public NYC occurrences only."
    },
    {
      "id": "audit-newinc-org-c605d931",
      "name": "newinc.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.newinc.org/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-newlab-com-2bca7487",
      "name": "newlab.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://newlab.com/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-newyork-garysguide-org-1c350a3d",
      "name": "newyork.garysguide.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://newyork.garysguide.org/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-newyorkcares-org-d65bb46c",
      "name": "newyorkcares.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.newyorkcares.org/explore-projects",
      "access": "first-party-public-search-api",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Uses only public /explore-projects and /api/search routes; gated addresses, profiles, and volunteer details are discarded."
    },
    {
      "id": "audit-nobledesktop-com-979ee700",
      "name": "nobledesktop.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nobledesktop.com/topics/ai-classes",
      "access": "first-party-educationevent-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party offline EducationEvent HTML; exact public NYC campus occurrences only."
    },
    {
      "id": "audit-nonprofitnewyork-org-43b1de65",
      "name": "nonprofitnewyork.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nonprofitnewyork.org/trainings-events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-nvidia-com-0c7ab6c7",
      "name": "nvidia.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nvidia.com/en-us/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-nyartbeat-com-ca1a2f78",
      "name": "nyartbeat.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nyartbeat.com/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-nyas-org-10e4444a",
      "name": "nyas.org · audited endpoint",
      "category": "science",
      "scope": "NYC / metro",
      "url": "https://www.nyas.org/events",
      "access": "wordpress-rest",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "First-party WordPress custom event endpoint; at most 3 pages x 100 rows, 900 KB per page and 2.5 MB total across a 93-day window. Event times are parsed only from strict published schedule headings, never post dates."
    },
    {
      "id": "audit-nyc-aitinkerers-org-1f30150d",
      "name": "nyc.aitinkerers.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://nyc.aitinkerers.org/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-nyc-gov-001a91b1",
      "name": "nyc.gov · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nyc.gov/site/dycd/connected/events-calendar.page",
      "access": "first-party-published-ics",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Public DYCD page and its published Google Calendar ICS; public occurrence facts only."
    },
    {
      "id": "audit-nyc-gov-baae78d1",
      "name": "nyc.gov · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nyc.gov/site/mome/permits/calendar-of-citywide-events.page",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-nyc-gov-551644f7",
      "name": "nyc.gov · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nyc.gov/site/mospce/events/events.page",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-nyc-gov-dfccd1f6",
      "name": "nyc.gov · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nyc.gov/content/planning/pages/calendar",
      "access": "first-party-static-json",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Date-bounded NYC Planning public calendar JSON; public occurrence facts only."
    },
    {
      "id": "audit-nyc-gov-149d4ad8",
      "name": "nyc.gov · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nyc.gov/site/sbs/businesses/nyc-business-courses.page",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-nycbar-org-40c49f6b",
      "name": "nycbar.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nycbar.org/events/",
      "access": "first-party-calendar-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party calendar; exact-time public webinars and resolved public NYC venues only."
    },
    {
      "id": "audit-nycdatascience-com-25acc143",
      "name": "nycdatascience.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://nycdatascience.com/",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-nycforfree-co-454b73a8",
      "name": "nycforfree.co · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nycforfree.co/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-nycopendata-socrata-com-2f10dd27",
      "name": "nycopendata.socrata.com · audited endpoint",
      "category": "civic",
      "scope": "citywide",
      "url": "https://nycopendata.socrata.com/City-Government/NYC-Permitted-Event-Information/tvpp-9vvx",
      "access": "duplicate-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "nyc-permits",
      "notes": "Legacy Socrata-domain alias of the tvpp-9vvx dataset integrated as nyc-permits. Never hydrate independently."
    },
    {
      "id": "audit-nycresistor-com-0c4daab7",
      "name": "nycresistor.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.nycresistor.com/events",
      "access": "first-party-wordpress-json",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party WordPress posts; only rows with exact public occurrence facts are retained."
    },
    {
      "id": "audit-nycxdesign-org-cfc1fad0",
      "name": "nycxdesign.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://nycxdesign.org/festival-calendar",
      "access": "first-party-public-algolia",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded public first-party Algolia calendar projection; public NYC design occurrences only."
    },
    {
      "id": "audit-nyimtraining-com-f801e654",
      "name": "nyimtraining.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://training-nyc.com/campus",
      "access": "first-party-campus-educationevent-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Canonical first-party NYC campus page; exact public offline EducationEvent occurrences only."
    },
    {
      "id": "audit-nysbdc-org-8afd828b",
      "name": "nysbdc.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://nysbdc.org/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-nysci-org-27666d64",
      "name": "nysci.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://nysci.org/events",
      "access": "first-party-bounded-json",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Seasonal date-bounded first-party event JSON; current-empty runs are valid."
    },
    {
      "id": "audit-nytech-org-29f27b4e",
      "name": "nytech.org · audited endpoint",
      "category": "technology",
      "scope": "New York City",
      "url": "https://www.nytech.org/events",
      "access": "finite-first-party-webflow-html",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "One bounded first-party events page; at most 24 cards and 200 KB over a 93-day window. Only exact dated Civic Hall Union Square public announcements are emitted; date-only rows remain explicit all-day events. Private/member/invite-only cards, contacts, profiles, attendees, tokens, and images are excluded."
    },
    {
      "id": "audit-open-data-nyc-719327c4",
      "name": "NYC Open Data Week Events",
      "category": "technology",
      "scope": "citywide",
      "url": "https://opendataweek.nyc/events/",
      "access": "tribe-events-rest",
      "cadence": "seasonal",
      "priority": 3,
      "status": "active",
      "notes": "First-party date-bounded Tribe Events REST adapter; at most 10 pages x 100 rows, 2 MB/page, 92-day window. A valid empty August–September result is expected outside the annual Open Data Week season."
    },
    {
      "id": "audit-partnershipsforparks-org-d3d4be63",
      "name": "Partnerships for Parks Events",
      "category": "parks",
      "scope": "citywide",
      "url": "https://www.partnershipsforparks.org/events",
      "access": "blocked-invalid-tls-chain",
      "cadence": "weekly",
      "priority": 3,
      "status": "blocked",
      "notes": "Reviewed 2026-08-02: the HTTPS endpoint fails certificate-chain validation. Recheck after repair; never disable TLS verification for hydration."
    },
    {
      "id": "audit-philanthropynewyork-org-65dd1aa9",
      "name": "philanthropynewyork.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://philanthropynewyork.org/programs",
      "access": "first-party-calendar-plus-details",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party discovery and detail pages with the published 10-second crawl delay."
    },
    {
      "id": "audit-pratt-edu-534ebf5d",
      "name": "pratt.edu · audited endpoint",
      "category": "university",
      "scope": "NYC / metro",
      "url": "https://www.pratt.edu/continuing-and-professional-studies",
      "access": "first-party-html",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party Pratt event cards verified against detail pages; at most 21 requests, 20 rows, 500 KB each and 6 MB total across a 93-day window. Requires explicit public and NYC/online facts."
    },
    {
      "id": "queens-botanical-garden",
      "name": "Queens Botanical Garden Events",
      "category": "nature",
      "scope": "Flushing",
      "url": "https://queensbotanical.org/calendar/list/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Promoted from the July 2026 endpoint audit to a bounded first-party Tribe Events REST adapter. Public garden programs only; no attendee/profile/media ingestion."
    },
    {
      "id": "audit-rpa-org-5e11ca9b",
      "name": "rpa.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://rpa.org/events/archive",
      "access": "first-party-archive-plus-details",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Date-bounded first-party archive and detail pages; member-only and unresolved-time rows fail closed."
    },
    {
      "id": "audit-score-org-f3f29b76",
      "name": "score.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.score.org/ny",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-shaolinartparty-com-e4010126",
      "name": "shaolinartparty.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.shaolinartparty.com/event-calendar",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-songkick-com-cb1ac26a",
      "name": "songkick.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.songkick.com/metro-areas/7644-us-new-york-nyc",
      "access": "apify-candidate",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Ticketing and concert aggregation platform; direct reader is held until an exact reviewed Apify Actor is registered. Public facts only; attendees, profiles, gated locations, and platform media remain excluded."
    },
    {
      "id": "audit-stemteachersnyc-org-1802bb36",
      "name": "stemteachersnyc.org · audited endpoint",
      "category": "technology",
      "scope": "NYC / metro",
      "url": "https://stemteachersnyc.org/events",
      "access": "tribe-events-rest",
      "cadence": "weekly",
      "priority": 3,
      "status": "active",
      "notes": "First-party date-bounded Tribe Events REST adapter; at most 2 pages x 50 rows, 1 MB per page, 93-day window. Public event facts only; tags emphasize education, science, and technology."
    },
    {
      "id": "audit-stern-nyu-edu-3d0e29cd",
      "name": "NYU Stern Public Events",
      "category": "university",
      "scope": "New York City or online",
      "url": "https://www.stern.nyu.edu/experience-stern/events",
      "access": "finite-first-party-drupal-date-only-html",
      "cadence": "seasonal",
      "priority": 3,
      "status": "active",
      "notes": "One bounded first-party event-view request over a maximum 93-day window; 500 KB and 40-card caps. Exact published dates remain transparent all-day occurrences with unknown venue and delivery mode; no clock time or location is inferred. Explicitly restricted cards, registration forms, contacts, profiles, attendees, answers and media are excluded."
    },
    {
      "id": "audit-sva-edu-ede99192",
      "name": "sva.edu · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.artpractice.sva.edu/events",
      "access": "first-party-calendar-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "First-party SVA Art Practice HTML only; seasonal current-empty runs are valid and no Squarespace API is used."
    },
    {
      "id": "audit-tech-cornell-edu-e0b53c8c",
      "name": "tech.cornell.edu · audited endpoint",
      "category": "technology",
      "scope": "Roosevelt Island",
      "url": "https://tech.cornell.edu/admissions/events",
      "access": "duplicate-alias",
      "cadence": "weekly",
      "priority": 3,
      "status": "blocked",
      "registry_role": "duplicate-alias",
      "duplicate_of": "cornell-tech",
      "notes": "Admissions subset of the integrated Cornell Tech calendar. Preserve this source edge and hydrate only through cornell-tech."
    },
    {
      "id": "audit-technyc-org-9cb18a57",
      "name": "technyc.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.technyc.org/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-thehighline-org-c2a0b838",
      "name": "The High Line Events",
      "category": "parks",
      "scope": "Manhattan west side",
      "url": "https://www.thehighline.org/events",
      "access": "blocked-robots-ai-agent-policy",
      "cadence": "weekly",
      "priority": 3,
      "status": "blocked",
      "notes": "Reviewed 2026-08-02: robots.txt disallows named OpenAI agents. Do not identify as a generic crawler to evade the policy; request permission or await an explicitly reusable feed."
    },
    {
      "id": "audit-theshed-org-91b3c93f",
      "name": "theshed.org · audited endpoint",
      "category": "culture",
      "scope": "Hudson Yards, Manhattan",
      "url": "https://theshed.org/program",
      "access": "blocked-queue-it-softblock",
      "cadence": "weekly",
      "priority": 3,
      "status": "blocked",
      "notes": "Reviewed 2026-08-02: the program URL terminates at a Queue-it softblock. Do not retain queue tokens or bypass access controls; recheck for a directly published first-party structured feed."
    },
    {
      "id": "audit-timeout-com-e753369a",
      "name": "timeout.com · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://www.timeout.com/newyork/things-to-do/new-york-events-calendar",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "discovery",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-urbandesignforum-org-df73f44e",
      "name": "urbandesignforum.org · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://urbandesignforum.org/events/",
      "access": "first-party-calendar-html",
      "cadence": "unclassified",
      "priority": 3,
      "status": "active",
      "notes": "Bounded first-party calendar and details; exact public NYC occurrences only."
    },
    {
      "id": "audit-wandb-ai-b22d041c",
      "name": "wandb.ai · audited endpoint",
      "category": "untriaged-audit",
      "scope": "NYC / metro",
      "url": "https://wandb.ai/site/events",
      "access": "audit-pending",
      "cadence": "unclassified",
      "priority": 3,
      "status": "blocked",
      "notes": "Imported from the July 2026 /class master hydration audit; classify terms/access before automating."
    },
    {
      "id": "audit-webapi-legistar-com-73e47742",
      "name": "webapi.legistar.com · audited endpoint",
      "category": "civic",
      "scope": "citywide",
      "url": "https://webapi.legistar.com/Help",
      "access": "technical-reference-alias",
      "cadence": "daily",
      "priority": 3,
      "status": "blocked",
      "registry_role": "technical-reference",
      "duplicate_of": "nyc-council",
      "notes": "Legistar API documentation used by the integrated NYC Council calendar; it is a technical reference, not an independent calendar."
    },
    {
      "id": "community-board-bx-06",
      "name": "Bronx Community Board 6 Events",
      "category": "civic",
      "scope": "Bronx Community District 6",
      "url": "https://cbbronx.cityofnewyork.us/cb6/events/",
      "access": "tribe-events-rest",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Official public community-board calendar; bounded first-party REST with the published 10-second crawl delay."
    },
    {
      "id": "community-board-bk-17",
      "name": "Brooklyn Community Board 17 Events",
      "category": "civic",
      "scope": "Brooklyn Community District 17",
      "url": "https://cbbrooklyn.cityofnewyork.us/cb17/events/",
      "access": "tribe-events-rest",
      "cadence": "weekly",
      "priority": 1,
      "status": "active",
      "notes": "Official public community-board calendar; bounded first-party REST with the published 10-second crawl delay."
    },
    {
      "id": "community-board-bx-02",
      "name": "Bronx Community Board 2 Calendar",
      "category": "civic",
      "scope": "Bronx Community District 2",
      "url": "https://www.nyc.gov/site/bronxcb2/calendar/calendar.page",
      "access": "finite-first-party-nyc-gov-calendar-script",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Official NYC.gov child calendar. One bounded public script request; exact dated and timed civic occurrences only. Contact, attendee, private and media fields are not retained."
    },
    {
      "id": "community-board-bk-01",
      "name": "Brooklyn Community Board 1 Calendar",
      "category": "civic",
      "scope": "Brooklyn Community District 1",
      "url": "https://www.nyc.gov/site/brooklyncb1/calendar/calendar.page",
      "access": "finite-first-party-nyc-gov-calendar-script",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Official NYC.gov child calendar. One bounded public script request; exact dated and timed civic occurrences only. Contact, attendee, private and media fields are not retained."
    },
    {
      "id": "community-board-bk-03",
      "name": "Brooklyn Community Board 3 Calendar",
      "category": "civic",
      "scope": "Brooklyn Community District 3",
      "url": "https://www.nyc.gov/site/brooklyncb3/calendar/calendar.page",
      "access": "official-board-declared-public-google-ics",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Official board page declares the public Google calendars. Bounded feed discovery and recurrence expansion retain only exact public civic occurrences; contacts, attendees, private rows and media are discarded."
    },
    {
      "id": "community-board-bk-04",
      "name": "Brooklyn Community Board 4 Calendar",
      "category": "civic",
      "scope": "Brooklyn Community District 4",
      "url": "https://www.nyc.gov/site/brooklyncb4/calendar/calendar.page",
      "access": "finite-first-party-nyc-gov-calendar-script",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Official NYC.gov child calendar. One bounded public script request; exact dated and timed civic occurrences only. Contact, attendee, private and media fields are not retained."
    },
    {
      "id": "community-board-bk-09",
      "name": "Brooklyn Community Board 9 Calendar",
      "category": "civic",
      "scope": "Brooklyn Community District 9",
      "url": "https://www.nyc.gov/site/brooklyncb9/calendar/calendar.page",
      "access": "finite-first-party-nyc-gov-csv",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Official date-bounded NYC.gov CSV. Exact dated and timed civic occurrences only; contact, attendee, private and media fields are not retained."
    },
    {
      "id": "community-board-bk-10",
      "name": "Brooklyn Community Board 10 Calendar",
      "category": "civic",
      "scope": "Brooklyn Community District 10",
      "url": "https://cbbrooklyn.cityofnewyork.us/cb10/events/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Bounded first-party Tribe REST child calendar with the published 10-second crawl delay. Public occurrences only; contacts, attendees, gated details and media are discarded."
    },
    {
      "id": "community-board-bk-11",
      "name": "Brooklyn Community Board 11 Calendar",
      "category": "civic",
      "scope": "Brooklyn Community District 11",
      "url": "https://www.brooklyncb11.org/events/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Bounded first-party Tribe REST child calendar. Public occurrences only; contacts, attendees, gated details and media are discarded."
    },
    {
      "id": "community-board-bk-14",
      "name": "Brooklyn Community Board 14 Calendar",
      "category": "civic",
      "scope": "Brooklyn Community District 14",
      "url": "https://cb14brooklyn.com/events/",
      "access": "tribe-events-rest",
      "cadence": "daily",
      "priority": 2,
      "status": "active",
      "notes": "Bounded first-party Tribe REST child calendar. Public occurrences only; contacts, attendees, gated details and media are discarded."
    },
    {
      "id": "community-board-qn-01",
      "name": "Queens Community Board 1 Calendar",
      "category": "civic",
      "scope": "Queens Community District 1",
      "url": "https://www.nyc.gov/site/queenscb1/calendar/google-calendar.page",
      "access": "official-board-declared-public-google-ics",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Official board page declares the public Google calendars. Bounded feed discovery and recurrence expansion retain only exact public civic occurrences; contacts, attendees, private rows and media are discarded."
    },
    {
      "id": "community-board-qn-02",
      "name": "Queens Community Board 2 Calendar",
      "category": "civic",
      "scope": "Queens Community District 2",
      "url": "https://www.nyc.gov/site/queenscb2/calendar/calendar.page",
      "access": "official-board-declared-public-google-ics",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Official board page declares the public Google calendars. Bounded feed discovery and recurrence expansion retain only exact public civic occurrences; contacts, attendees, private rows and media are discarded."
    },
    {
      "id": "community-board-qn-04",
      "name": "Queens Community Board 4 Calendar",
      "category": "civic",
      "scope": "Queens Community District 4",
      "url": "https://www.nyc.gov/site/queenscb4/calendar/calendar.page",
      "access": "finite-first-party-nyc-gov-csv",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Official date-bounded NYC.gov CSV. Exact dated and timed civic occurrences only; contact, attendee, private and media fields are not retained."
    },
    {
      "id": "community-board-qn-05",
      "name": "Queens Community Board 5 Calendar",
      "category": "civic",
      "scope": "Queens Community District 5",
      "url": "https://www.nyc.gov/site/queenscb5/calendar/calendar.page",
      "access": "finite-first-party-nyc-gov-calendar-script",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Official NYC.gov child calendar. One bounded public script request; exact dated and timed civic occurrences only. Contact, attendee, private and media fields are not retained."
    },
    {
      "id": "community-board-qn-06",
      "name": "Queens Community Board 6 Calendar",
      "category": "civic",
      "scope": "Queens Community District 6",
      "url": "https://www.nyc.gov/site/queenscb6/calendar/calendar.page",
      "access": "official-board-declared-public-google-ics",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Official board page declares the public Google calendars. Bounded feed discovery and recurrence expansion retain only exact public civic occurrences; contacts, attendees, private rows and media are discarded."
    },
    {
      "id": "community-board-qn-09",
      "name": "Queens Community Board 9 Calendar",
      "category": "civic",
      "scope": "Queens Community District 9",
      "url": "https://www.nyc.gov/site/queenscb9/calendar/calendar.page",
      "access": "finite-first-party-nyc-gov-html-schedule",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "One bounded official NYC.gov schedule request. Only exact published full-board dates and the globally stated start time are retained; conditional dates and unresolved locations fail closed."
    },
    {
      "id": "community-board-qn-13",
      "name": "Queens Community Board 13 Calendar",
      "category": "civic",
      "scope": "Queens Community District 13",
      "url": "https://www.nyc.gov/site/queenscb13/calendar/calendar.page",
      "access": "official-board-declared-public-google-ics",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Official board page declares the public Google calendars. Bounded feed discovery and recurrence expansion retain only exact public civic occurrences; contacts, attendees, private rows and media are discarded."
    },
    {
      "id": "community-board-qn-14",
      "name": "Queens Community Board 14 Calendar",
      "category": "civic",
      "scope": "Queens Community District 14",
      "url": "https://www.nyc.gov/site/queenscb14/calendar/calendar.page",
      "access": "finite-first-party-nyc-gov-html-schedule",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "One bounded official NYC.gov schedule request. Only exact published full-board dates and the globally stated start time are retained; unresolved locations are never guessed."
    },
    {
      "id": "amnh",
      "name": "American Museum of Natural History Calendar",
      "category": "science",
      "scope": "Manhattan",
      "url": "https://www.amnh.org/calendar",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official museum calendar with dated public programs, ticket status, audience guidance, and venue details. Research a bounded first-party event interface before automating."
    },
    {
      "id": "whitney-museum",
      "name": "Whitney Museum Events",
      "category": "art",
      "scope": "Manhattan",
      "url": "https://whitney.org/events",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official museum events calendar with occurrence dates, program types, audience filters, and canonical detail pages. Research stable paging and occurrence identity before automating."
    },
    {
      "id": "guggenheim",
      "name": "Guggenheim New York Calendar",
      "category": "art",
      "scope": "Manhattan",
      "url": "https://www.guggenheim.org/calendar",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official museum calendar with dated New York programs and canonical event pages. Separate New York occurrences from other Guggenheim locations and research a bounded first-party interface."
    },
    {
      "id": "museum-city-ny",
      "name": "Museum of the City of New York Events",
      "category": "culture",
      "scope": "Manhattan",
      "url": "https://www.mcny.org/events",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official museum calendar for talks, screenings, family programs, and courses. Research date-bounded first-party discovery and retain only public occurrence facts."
    },
    {
      "id": "museum-moving-image",
      "name": "Museum of the Moving Image Calendar",
      "category": "film",
      "scope": "Queens",
      "url": "https://movingimage.org/events/",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official occurrence calendar with screenings, events, exhibitions, accessibility filters, and dated detail pages. Review its public calendar-plugin interface and exclude undated long-running installations unless occurrence semantics are explicit."
    },
    {
      "id": "new-york-botanical-garden",
      "name": "New York Botanical Garden Events",
      "category": "nature",
      "scope": "Bronx",
      "url": "https://www.nybg.org/event/",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official garden event calendar with public programs, exhibitions, lectures, and seasonal series. Research a bounded first-party interface and preserve concrete occurrence dates rather than inferring repeats."
    },
    {
      "id": "carnegie-hall",
      "name": "Carnegie Hall Calendar",
      "category": "music",
      "scope": "Manhattan",
      "url": "https://www.carnegiehall.org/Calendar",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official performance calendar with exact dates, halls, program details, and canonical event URLs. Research stable date bounds and paging before automation."
    },
    {
      "id": "juilliard",
      "name": "Juilliard Performance Calendar",
      "category": "university",
      "scope": "Manhattan",
      "url": "https://www.juilliard.edu/stage-beyond/performance/calendar",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official calendar for hundreds of public music, dance, drama, and opera performances, many free or low cost. Research its structured event payload and retain only public audience-facing programs."
    },
    {
      "id": "downtown-brooklyn",
      "name": "Downtown Brooklyn Events",
      "category": "community",
      "scope": "Brooklyn",
      "url": "https://www.downtownbrooklyn.com/events/",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official Downtown Brooklyn Partnership calendar with neighborhood performances, fitness, family, and cultural events. Research the public calendar-plugin surface with date and row bounds."
    },
    {
      "id": "downtown-alliance",
      "name": "Downtown Alliance Events",
      "category": "community",
      "scope": "Lower Manhattan",
      "url": "https://downtownny.com/events/",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official Lower Manhattan calendar with dated community, culture, and public-space events. Research its public calendar-plugin endpoint, pagination, and cross-listing behavior."
    },
    {
      "id": "times-square-alliance",
      "name": "Times Square Alliance Events",
      "category": "community",
      "scope": "Manhattan",
      "url": "https://www.timessquarenyc.org/events",
      "access": "first-party-webflow-paginated-html",
      "cadence": "weekly",
      "priority": 2,
      "status": "active",
      "notes": "Bounded first-party Webflow HTML reader: at most five same-origin pages, 200 rows, 2 MiB and 93 days. Exact visible starts are retained as distinct occurrences; unpublished end times are never inferred, and contacts, profiles, attendees and media are excluded."
    },
    {
      "id": "symphony-space",
      "name": "Symphony Space Calendar",
      "category": "culture",
      "scope": "Manhattan",
      "url": "https://www.symphonyspace.org/events/calendar",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official venue calendar spanning music, literature, film, theater, dance, and family events. Research bounded month selection and stable performance identifiers."
    },
    {
      "id": "roulette",
      "name": "Roulette Events",
      "category": "music",
      "scope": "Brooklyn",
      "url": "https://roulette.org/",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official experimental music, movement, and media venue with a substantial dated event program and canonical detail pages. Research its public event archive/listing interface and livestream flags."
    },
    {
      "id": "national-sawdust",
      "name": "National Sawdust Performances",
      "category": "music",
      "scope": "Brooklyn",
      "url": "https://www.nationalsawdust.org/performances-prev",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official Williamsburg performance calendar with dated upcoming concerts and conversations. Research the first-party collection payload, exact venue scope, and stable event identities."
    },
    {
      "id": "public-theater",
      "name": "The Public Theater Calendar",
      "category": "culture",
      "scope": "NYC",
      "url": "https://publictheater.org/productions/",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official production calendar including Astor Place, Delacorte, Joe's Pub, Public Works, and free Mobile Unit performances across the boroughs. Research concrete performance occurrences and do not infer dates from season ranges."
    },
    {
      "id": "park-avenue-armory",
      "name": "Park Avenue Armory Events",
      "category": "culture",
      "scope": "Manhattan",
      "url": "https://www.armoryonpark.org/season-events/",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official season and event pages with exact dates, ticket details, and venue spaces. Research occurrence expansion for multi-date programs before automation."
    },
    {
      "id": "green-wood",
      "name": "Green-Wood Calendar",
      "category": "culture",
      "scope": "Brooklyn",
      "url": "https://www.green-wood.com/calendar/",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official calendar for public history, nature, arts, tours, workshops, and performances at Green-Wood. Research the public calendar-plugin interface with exact occurrence and cancellation handling."
    },
    {
      "id": "jewish-museum",
      "name": "The Jewish Museum Programs",
      "category": "culture",
      "scope": "Manhattan",
      "url": "https://thejewishmuseum.org/calendar",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official program calendar for talks, performances, films, families, educators, and access programs. Research its client-loaded first-party data and stable paging before automation."
    },
    {
      "id": "museum-jewish-heritage",
      "name": "Museum of Jewish Heritage Events",
      "category": "culture",
      "scope": "Manhattan",
      "url": "https://mjhnyc.org/events/",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official event calendar for public programs at 36 Battery Place and online. Research a bounded first-party interface and preserve explicit format and security/access guidance without ingesting registrant data."
    },
    {
      "id": "japan-society",
      "name": "Japan Society Events",
      "category": "culture",
      "scope": "Manhattan",
      "url": "https://japansociety.org/events/",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official calendar with dated film, performance, gallery, language, business, and community programs. Research first-party listing pagination and multi-date occurrence handling."
    },
    {
      "id": "asia-society-new-york",
      "name": "Asia Society New York Events",
      "category": "culture",
      "scope": "Manhattan",
      "url": "https://asiasociety.org/new-york/events",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official New York event calendar spanning talks, films, performances, family programs, and policy events. Enforce the New York center filter and exclude invite-only or non-public occurrences."
    },
    {
      "id": "tenement-museum",
      "name": "Tenement Museum Public Programs",
      "category": "culture",
      "scope": "Manhattan",
      "url": "https://www.tenement.org/programs/",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official public-program listing for talks, book clubs, and special events. Keep separately scoped from high-frequency ticketed tour inventory and research stable public occurrence IDs."
    },
    {
      "id": "flatiron-nomad",
      "name": "Flatiron NoMad Events",
      "category": "community",
      "scope": "Manhattan",
      "url": "https://flatironnomad.nyc/events-page/",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official district calendar with community, culture, education, entertainment, family, plaza, and parade events. Research the first-party filtered listing payload and cross-listing deduplication."
    },
    {
      "id": "staten-island-arts",
      "name": "Staten Island Arts Culture Calendar",
      "category": "culture",
      "scope": "Staten Island",
      "url": "https://statenislandarts.org/events/",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official borough arts council page combining its programs with a community culture calendar. Research the public listing interface, moderation status, and stable occurrence fields before automation."
    },
    {
      "id": "bronx-tourism-calendar",
      "name": "Bronx Tourism Council Calendar",
      "category": "community",
      "scope": "Bronx",
      "url": "https://www.ilovethebronx.com/calendar",
      "access": "web",
      "cadence": "weekly",
      "priority": 1,
      "status": "research",
      "notes": "Official borough tourism calendar with community-submitted and council-produced Bronx events. Research bounded pagination, moderation signals, full occurrence dates, and exclusion of private listings."
    },
    {
      "id": "bronx-arts-ensemble",
      "name": "Bronx Arts Ensemble Events",
      "category": "music",
      "scope": "Bronx",
      "url": "https://www.bronxartsensemble.org/",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official presenter of more than 50 free or low-cost Bronx concerts per season with dated upcoming-event pages. Research its public event collection and exact venue fields."
    },
    {
      "id": "staten-island-museum",
      "name": "Staten Island Museum Calendar",
      "category": "culture",
      "scope": "Staten Island",
      "url": "https://www.statenislandmuseum.org/events/month/",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official occurrence calendar with public science, arts, history, nature, workshop, and family programs. Research its public calendar-plugin interface and avoid duplicating multi-day camps on every display day."
    },
    {
      "id": "jacques-marchais-museum",
      "name": "Jacques Marchais Museum of Tibetan Art Calendar",
      "category": "culture",
      "scope": "Staten Island",
      "url": "https://www.tibetanmuseum.org/calendar",
      "access": "web",
      "cadence": "monthly",
      "priority": 3,
      "status": "research",
      "notes": "Official Staten Island museum calendar with dated public cultural programs. Research stable occurrence data and bounded retrieval before automation."
    },
    {
      "id": "hunter-college",
      "name": "Hunter College Events",
      "category": "university",
      "scope": "Manhattan",
      "url": "https://www.hunter.cuny.edu/events",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official CUNY campus calendar with public talks, performances, workshops, and special events alongside student and administrative listings. Research category/audience filters and exclude non-public campus-only items."
    },
    {
      "id": "queens-theatre",
      "name": "Queens Theatre Events",
      "category": "culture",
      "scope": "Queens",
      "url": "https://www.queenstheatre.org/",
      "access": "web",
      "cadence": "weekly",
      "priority": 2,
      "status": "research",
      "notes": "Official venue listing for Queens Theatre presentations and visiting presenters with dated showtimes and accessibility information. Research its first-party collection payload and multi-performance occurrence expansion."
    }
  ],
  "audit": {
    "source_document": "Local /class community-calendar-hydration-audit.md",
    "unique_urls_in_document": 164,
    "registry_count": 189
  }
}
