Facebook Events Scraper avatar

Facebook Events Scraper

Pricing

$3.00 / 1,000 events

Go to Apify Store
Facebook Events Scraper

Facebook Events Scraper

Scrapes public Facebook events from event links or from Pages' upcoming and past events: name, description, start and end time with timezone, venue, address, coordinates, hosts, going and interested counts, ticket link and cover image. No login or cookies needed.

Pricing

$3.00 / 1,000 events

Rating

0.0

(0)

Developer

Mina

Mina

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does Facebook Events Scraper do?

Facebook Events Scraper collects public Facebook events, either from single event links or from a Page's upcoming and past events. For every event you get the name, description, start and end time with the event's own UTC offset, venue, address, city, latitude and longitude, online flag, hosts with their Page links, going, interested and "people responded" counts, ticket link, categories and cover image. No login, cookies or Facebook account needed.

Try it with the prefilled Page: open the Actor, click Start, and the next 5 events at the Royal Albert Hall arrive in about 20 seconds. Because it runs on the Apify platform, you also get API access, scheduled runs, integrations (Google Sheets, Make, Zapier, webhooks), run monitoring and automatic retries from fresh proxy addresses.

Why scrape Facebook events?

  • Event listings and city guides: fill a "what's on" calendar with the events venues, clubs and promoters publish on Facebook.
  • Venue and promoter monitoring: follow what competitors schedule, when, and how many people respond.
  • Lead generation: find the organisers behind events in your niche, with links to their Pages.
  • Ticketing and market research: collect ticket links, dates and interest levels across many venues.
  • Reporting: schedule a daily run and send new events to a spreadsheet or dashboard.

How to scrape Facebook events

  1. Open a Facebook Page that hosts events and copy its address, such as https://www.facebook.com/royalalberthall. You can also copy a single event link such as https://www.facebook.com/events/1482777493615743.
  2. Paste it into Facebook event or Page links, one link per line.
  3. Set Max events per Page or profile, and tick Include past events of Pages if you want past events too.
  4. Click Start, then download the results when the run finishes.

Input

Everything is set on the Input tab. In JSON, the input looks like this:

{
"startUrls": [
"https://www.facebook.com/royalalberthall",
"https://www.facebook.com/SXSW/past_hosted_events",
"https://www.facebook.com/events/1314538782908908"
],
"maxEventsPerPage": 20,
"includePastEvents": false
}
FieldWhat it doesDefault
startUrlsEvent links (facebook.com/events/…, also m. and web. links, share links facebook.com/events/s/<name>/<id>/, fb.me/e/… short links, and links to one date of a recurring event: facebook.com/events/<series>/<date>/ or ?event_time_id=…) and Page or profile links (facebook.com/royalalberthall, facebook.com/royalalberthall/events, facebook.com/profile.php?id=…, facebook.com/people/Name/ID/ or just royalalberthall). A link to a Page's past_hosted_events tab reads its past events only. Links without https:// and API objects such as {"url": "…"} are accepted.required
maxEventsPerPageStops after this many events for each Page or profile, in Facebook's order (soonest first for upcoming events, latest first for past ones).20
includePastEventsFor Page links, also reads past events after the upcoming ones. Both count towards the maximum.false

Output

One row per event. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. A real row (cover link shortened):

{
"id": "1804447570709306",
"url": "https://www.facebook.com/events/1804447570709306/",
"name": "Konstantinos Argiros - Meet & Greet Add-On",
"description": "Meet & Greet add on with Konstantinos Argiros (does not include event ticket) ...",
"startTime": "2026-10-22T22:30:00+01:00",
"endTime": null,
"timezone": "UTC+01",
"dateText": "Thursday, October 22, 2026 at 10:30 PM BST",
"isOnline": false,
"isCanceled": false,
"isPast": false,
"locationName": "Royal Albert Hall",
"address": "Kensington Gore, SW7 2AP London, UK",
"city": "London, United Kingdom",
"latitude": 51.50073,
"longitude": -0.17683,
"organizers": [
{ "name": "Senbla Live Events", "url": "https://www.facebook.com/SenblaLiveEvents" },
{ "name": "Royal Albert Hall", "url": "https://www.facebook.com/royalalberthall" }
],
"respondedCount": 26,
"goingCount": null,
"interestedCount": null,
"ticketUrl": "https://ticketmaster.evyy.net/c/253158/2038758/24023?u=https%3A%2F%2Fwww.ticketmaster.co.uk%2F...",
"categories": [],
"coverImageUrl": "https://scontent-lga3-1.xx.fbcdn.net/v/t39.99422-6/824871399_...n.png?...",
"inputUrl": "https://www.facebook.com/royalalberthall",
"scrapedAt": "2026-10-20T14:02:29.797386+00:00"
}

Data fields

The share of rows with a value comes from 109 test events across Pages in the UK and the US (going and interested counts: 45 Hollywood Bowl events).

FieldDescriptionFilled
id, urlThe event's Facebook id and link. For a recurring event, the id of the date shown (the next one).100%
name, descriptionEvent title and full description text.100%
startTime, endTimeISO 8601 times in the event's own UTC offset (2026-10-22T19:30:00+01:00). endTime is null when the organiser set no end time, which is most events. When the offset cannot be worked out, times are in UTC (+00:00).100% / 7%
timezoneThe zone Facebook shows, such as PDT, UTC+01 or UTC.100%
dateTextThe date and time as Facebook writes it.100%
isOnline, isCanceled, isPastOnline event, cancelled, already over.100%
locationNameVenue name (Online event for online events).100%
address, cityOne-line street address and the city Facebook links it to.83% / 100%
latitude, longitudeVenue coordinates.100%
organizersHosts, each with name and Page or profile url.100%
respondedCount"People responded", Facebook's total of going and interested. It can be slightly higher than the two counts added up.95%
goingCount, interestedCountRead from the summary Facebook writes for the event page. Facebook leaves zero and small going counts out of that summary, and writes big ones rounded ("1.1K"); both come back null (unknown). A missing count is set to 0 only when the other count already equals respondedCount. So the largest events usually have only respondedCount.about 40% / 55%
ticketUrlThe ticket link the organiser added.79%
categoriesFacebook's event categories, such as Music or Food.50%
coverImageUrlCover image link.100%
inputUrlThe link from your input that led to this event.100%
scrapedAtWhen the row was saved (UTC).100%

Image links are signed by Facebook and stop working after a few days, so download the images you want to keep.

How much does it cost to scrape Facebook events?

The Actor uses plain HTTP requests (no browser) through Apify's datacenter proxy, so the platform cost is tiny: about $0.06–0.08 per 1,000 events in our tests. You pay per event saved; see the Pricing tab for the exact price. Links that give nothing (private events, Pages without events, typos) are never charged. You can set a maximum cost per run, and the Actor stops cleanly when it is reached.

Tips

  • Pages with many events: Facebook lists 8 events per page; raise maxEventsPerPage to read further. A Page that lists no upcoming events is reported in FAILED_INPUTS with "no public upcoming events"; tick Include past events of Pages to read its history instead.
  • Old Page names work: when a Page has moved to a new address (for example facebook.com/SXSW → facebook.com/SXSWFestival), the Actor follows it.
  • The same event from several Pages is saved and charged once per run. When a listed event turns out to be one already saved (another date of the same recurring event, or an event another Page listed), the Actor reads further down the listing to make up the number you asked for.
  • Check FAILED_INPUTS in the run's key-value store: every link that gave nothing is listed there with the reason.
  • Schedule it: run it daily on your venues' Pages to catch new events.

FAQ, disclaimers and support

Can it search events by keyword or city? No. Facebook's events search does open logged out, but it answers each visit with a different, often empty, handful of events, and its later pages are rate-limited. Results like that would look complete while missing most events, so the Actor reads Pages and event links only. Event search links are listed in FAILED_INPUTS with this reason.

Why are going or interested counts sometimes empty? Logged-out Facebook gives the split only in a one-line page summary. That summary leaves out zero and small going counts, rounds big counts ("1.1K", which the Actor does not guess at), and is missing on some events. When a count is not there and cannot be proven to be 0, it is null. The guest list (who is going) is never shown logged out.

Which date does a recurring event give? A link to the series gives the date Facebook shows first (usually the next one). A link to one date (facebook.com/events/<series>/<date>/) gives that date.

Why is an event missing? Private events, events visible only to group members, and removed events show Facebook's login page to logged-out visitors. They are listed in FAILED_INPUTS as "Facebook shows this only to logged-in users". The Actor only settles on that answer after a residential address sees the login page too, so a datacenter address being turned away is never mistaken for a private event.

Is it legal to scrape Facebook events? The Actor reads only what Facebook shows to anyone without logging in. Event pages can name people (hosts, performers), which is personal data under laws such as the GDPR: only collect what you have a legitimate reason to process, and check your local rules and Facebook's terms for your use case. This is not legal advice.

Something is not working, or you need more? Open an issue on the Issues tab with the link that failed and we will look into it. For a custom solution, get in touch through the Issues tab as well.