All posts

Facebook Event Scrapers: Collect Public Events by City or Page

November 8, 2026

Public Facebook events are still where many venues, clubs, markets and meetups announce what they do. If you run an events listing site, track competitor venues, or sell to event organizers, you want those events in a structured form. This post covers the official limits, the routes that work, and how to keep a clean event calendar.

What the official API allows

Meta's Event reference is short on this point: "Access to Events on Users and Pages is only available to Facebook Marketing Partners." Apps can read events they created themselves, and group events need an admin's token plus the Groups API feature Event reference, which Meta removed in April 2024 v19.0 changelog. For most developers, that means no official route to public events on Pages they don't run.

Three ways to find events

Starting pointUse it for
A city's events pageLocal calendars: "what's on in Austin this week"
A keyword searchNiche discovery: "pottery workshop", "salsa night"
A Page's events tabTracking specific venues or organizers

Checklist: fields worth keeping

  • Event id and URL (your key; the same event shows up from many searches)
  • Name and description
  • Start and end time, with time zone
  • Venue name and address, or "online"
  • Organizer Page
  • Ticket link, if any
  • Interested and going counts, with the date you collected them

Method: a clean weekly calendar

  1. Collect wide. Pull the city's events for this week and next week, plus a few keyword searches, plus the events tabs of the 20 venues you care about.
  2. Deduplicate on event id. A big festival will appear in all three sources.
  3. Normalize time. Store start times in UTC and convert for display. Events that cross midnight and multi-day events are where calendars break.
  4. Drop past events and events with no venue and no online link.
  5. Re-check before publishing. Events get cancelled. Fetch event details again the day before you list or promote one.
  6. Link back. Send people to the organizer's event page or ticket link rather than copying the full description.
import json, os, requests

KEY = os.environ["SCRAPEIO_API_KEY"]
H = {"x-api-key": KEY}
seen = {}

def grab(path, **params):
    r = requests.get("https://scrapeio.com" + path, params=params, headers=H, timeout=60)
    return r.json().get("data") or {}

city = grab("/v1/facebook/events", url="https://www.facebook.com/events/explore/austin-texas/",
            time="this_week")
search = grab("/v1/facebook/events/search", query="pottery workshop austin")

for source in (city, search):
    for ev in (source.get("events") or source.get("items") or []):
        key = ev.get("id") or ev.get("url")
        seen.setdefault(key, ev)

print(len(seen), "unique events")
json.dump(list(seen.values()), open("events.json", "w"), indent=2)

Event results are returned in the source's own shape. Print one result to confirm the key names before you build on them; the city page URL above is an example, so copy the real one from your browser.

How often to refresh

Events change more than posts do. A sensible schedule:

  • Discovery (city pages and searches): twice a week. New events are usually announced one to four weeks ahead.
  • Venue tabs for the organizers you care most about: daily, because they are a small list.
  • Event details for events you list: once when found, again the day before, to catch cancellations, time changes and venue moves.

Keep a status column (found, confirmed, cancelled, past) rather than deleting rows. The history tells you which organizers cancel often, which is worth knowing before you promote them.

Uses that work well

  • Local listings and newsletters. A weekly "best of" with links back to organizers.
  • Venue benchmarking. How often do competing venues run events, and which ones get the most "interested" counts?
  • Sales prospecting for B2B. Organizers who run frequent paid events are prospects for ticketing, venues and sponsors. Contact them through their public business channels, not by scraping attendees.

Leave attendee lists alone. Who is going to an event is personal information, and you don't need it for any of the uses above.

How to do it with ScrapeIO

Use the Facebook events API with a city's events page URL and today, this_week or next_week, the Facebook events search API for keywords, the Facebook Page events API for a venue's events tab, and the Facebook event details API to re-check one event. Each call is 1 credit.

Sources

Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.

100 free credits, no card. Credits never expire.

Get API key