Google Events Scraper — Event Listings as JSON avatar

Google Events Scraper — Event Listings as JSON

Pricing

from $5.00 / 1,000 google event records

Go to Apify Store
Google Events Scraper — Event Listings as JSON

Google Events Scraper — Event Listings as JSON

Find public Google Events listings by query and location with dates, venues, ticket links, and source URLs. $0.005 per event returned.

Pricing

from $5.00 / 1,000 google event records

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Share

Find public event listings from Google Events by topic, location, and date window. The actor returns one normalized dataset item per event with the title, displayed date, machine-readable dates when available, venue, address, organizer, description, image, ticket link, and the Google search URL used for provenance.

This is designed for event-discovery products, calendar assistants, local guides, venue research, travel planning, newsletter automation, and AI agents that need a short list of live events in a named location.

What it extracts

FieldDescription
titlePublic event name
startDate, endDateISO 8601 timestamps when the source exposes them; otherwise null
dateTextHuman-readable date/time copied from the result card
venue, addressPublic venue and locality/address when shown
organizerOrganizer or promoter when available
descriptionShort result context in detailed mode
imageUrlPublic event image when available
ticketUrlExternal ticket, registration, or event-detail link when found
sourceUrlGoogle Events search URL for provenance
eventIdStable hash used to deduplicate results across queries

Optional fields are always present with null when Google does not expose the value. The parser accepts both machine-readable Event JSON-LD and visible Google-style event cards, because Google can expose different fields across query types, locales, and result layouts.

When to use it

Use this actor when you need public event discovery from Google’s event-results surface:

  • Find concerts, festivals, conferences, workshops, sports, comedy, theater, or family events in a city.
  • Seed a local-events newsletter or a calendar-review workflow.
  • Let an AI agent answer “what is happening this weekend in London?” with structured source links.
  • Refresh an event shortlist on a schedule using a small maxResults cap.

Do not use it for private Google Calendar data, event-management dashboards, attendee lists, ticket inventory, price guarantees, venue availability, or a complete citywide event database. It reads public search results only; it does not sign in, buy tickets, or bypass CAPTCHA/access controls.

Input

The default input searches for concerts in New York, NY and stores up to 25 unique event records:

{
"searchQueries": ["concerts"],
"location": "New York, NY",
"dateFilter": "this_weekend",
"maxResults": 25,
"responseFormat": "detailed"
}

searchQueries accepts up to five topics. location should be a human-readable city, region, or country, such as Austin, TX, Toronto, Canada, or Paris, France. dateFilter is a Google search hint: any, today, tomorrow, this_weekend, this_week, next_week, or this_month. It does not replace source-level date validation; inspect startDate and dateText before making time-sensitive decisions.

responseFormat can be concise or detailed. Concise mode keeps the stable discovery fields but omits descriptions to reduce AI-agent output tokens. Detailed mode retains the short public description and any image URL found in the result. maxResults is a total cap across all supplied queries, not a cap per query. Duplicate events are emitted once.

Output example

{
"eventId": "evt_7a6f8b",
"title": "Summer Jazz Festival",
"startDate": null,
"endDate": null,
"dateText": "Sat, Aug 15 · 7–10 PM",
"venue": "Central Park SummerStage",
"address": "New York, NY",
"organizer": null,
"description": "Outdoor live music with local and touring artists.",
"imageUrl": null,
"ticketUrl": "https://tickets.example.com/festival",
"sourceUrl": "https://www.google.com/search?q=concerts+events+in+New+York%2C+NY",
"query": "concerts",
"locationQuery": "New York, NY",
"dateFilter": "this_weekend",
"scrapedAt": "2026-08-02T12:00:00.000Z",
"warnings": []
}

The run summary is also saved to the key-value store under OUTPUT. It includes the number of records, requested and failed source pages, charge totals, and non-fatal warnings such as an empty result page or Google access-control response.

Pricing

The primary PPE event is $0.005 per normalized event record stored, plus Apify’s actor-start event. With maxResults: 25, the maximum event-record charge is $0.125 before normal Apify compute, browser, proxy, or platform usage charges. The actor is designed to be used with both PPE and Apify Pay-Per-Usage; the latter is configured at the actor level in Apify Console rather than in the code manifest.

No event charge is created for an invalid parser candidate, duplicate record, empty result page, failed request, or access-control page. A result is charged only after it passes runtime validation and is stored in the default dataset.

Reliability and limits

Google’s public result markup is dynamic and can vary by location, language, query, and time. The actor uses Apify’s US residential proxy pool, a single Playwright session at low concurrency, waits for the rendered page, blocks nonessential image/font/media requests, and retries failed pages. It detects common CAPTCHA/unusual-traffic pages and returns a terminal warning instead of silently claiming that no events exist.

For repeat use, keep queries focused, use a modest maxResults, and respect the default request delay. A proxy does not guarantee access and should not be treated as a method to evade access controls.

Machine-readable startDate and endDate values are only returned when exposed by the source. For many visible event cards, dateText is the strongest available date signal. Always verify the ticket or organizer page before purchasing, publishing a schedule, or making a safety, travel, or financial decision.

API and MCP use

Through Apify’s standard actor API, pass the JSON input shown above and read the default dataset after the run completes. The schema is intentionally narrow for hosted MCP discovery: an agent should choose this actor for public event listings, not for calendars or ticketing operations. The tool surface returns one flat event record per item and gives the agent a source URL and cost cap it can reason about.

JavaScript example:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('YOUR_USERNAME/google-events').call({
searchQueries: ['technology conferences'],
location: 'Berlin, Germany',
dateFilter: 'next_week',
maxResults: 20,
responseFormat: 'concise'
});
console.log(run.defaultDatasetId);

Python example:

from apify_client import ApifyClient
client = ApifyClient(token="YOUR_APIFY_TOKEN")
run = client.actor("YOUR_USERNAME/google-events").call(run_input={
"searchQueries": ["technology conferences"],
"location": "Berlin, Germany",
"dateFilter": "next_week",
"maxResults": 20,
"responseFormat": "concise",
})
print(run["defaultDatasetId"])

This actor accesses public search-result pages. You are responsible for complying with Google’s terms, applicable law, source-site terms, rate limits, privacy requirements, and the rules governing any downstream event outreach or publication. This independent actor is not affiliated with or endorsed by Google. Treat event dates, ticket links, prices, availability, and organizer claims as source data that require verification.