# Google Events Scraper (`codingfrontend/google-events-scraper`) Actor

Scrape Google Events search results - concerts, conferences, festivals, meetups, and more from Google's event listings.

- **URL**: https://apify.com/codingfrontend/google-events-scraper.md
- **Developed by:** [Coding Frontned](https://apify.com/codingfrontend) (community)
- **Categories:** Developer tools, Automation, Agents
- **Stats:** 38 total users, 13 monthly users, 99.9% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Google Events Scraper

### Features

- **Event Listings**: Extracts comprehensive event data from Google Search event results including concerts, conferences, festivals, and meetups
- **Date & Time**: Captures event dates, times, and schedules
- **Location & Venue**: Extracts specific venue names, addresses, and city/area information
- **Event Descriptions**: Retrieves descriptive text for each event listing
- **Source Links**: Collects the source URL where tickets or event details can be found
- **Location-Based Search**: Search events by location to find events in any city worldwide
- **Localization Support**: Supports all Google country codes for region-specific event listings
- **Proxy Support**: Built-in Apify Proxy with residential proxies for reliable data extraction
- **Fail-closed results**: explicit empty searches succeed, while challenges, exhausted requests, and unknown markup fail instead of returning a misleading empty dataset
- **Clean output**: rows are compacted, deduplicated, and stripped of Google redirect/tracking parameters

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `query` | String | Yes | `"tech conferences"` | Event search term (e.g., music festivals, yoga classes, marathons) |
| `location` | String | No | `"New York"` | Location to search events in (city, state, country) |
| `maxItems` | Integer | No | `50` | Maximum number of event results to retrieve (1–500) |
| `gl` | String | No | `"us"` | Google country code for localized results |
| `hl` | String | No | `"en"` | Language code for the interface |
| `proxyConfiguration` | Object | No | Google SERP | Proxy settings for the scraper. Disable it for a free direct-request attempt. |

#### Input Schema Example

```json
{
  "query": "music festivals",
  "location": "London",
  "maxItems": 20,
  "gl": "gb",
  "hl": "en",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["GOOGLE_SERP"]
  }
}
```

### Output Schema

The scraper outputs structured JSON data for each event listing found on Google Search.

#### Main Fields

| Field | Type | Description |
|-------|------|-------------|
| `position` | Integer | Result position in the events list |
| `eventName` | String | Name or title of the event |
| `date` | String | Event date (e.g., "Sat, May 10") |
| `time` | String | Event time (e.g., "7:00 PM") |
| `dateTime` | String | Combined date/time text when Google exposes it |
| `eventType` | String | Event category when exposed |
| `location` | String | City or area of the event |
| `venue` | String | Specific venue name and address |
| `link` | String | URL to the event details or ticketing page |
| `eventDescription` | String | Short description of the event |
| `source` | String | Source website for the event listing |

Rows also include `query`, `searchLocation`, `page`, `image`, and `scrapedAt` when available. Empty strings, nulls, empty arrays, and empty objects are omitted. The `OUTPUT` key-value record reports whether the run found events, the unique count, page counts, elapsed time, and a sanitized error on failure.

#### Event Listing Example

```json
{
  "position": 1,
  "eventName": "London Tech Summit 2025",
  "date": "Sat, Jun 14",
  "time": "9:00 AM",
  "location": "London, UK",
  "venue": "ExCeL London, Royal Victoria Dock, London E16 1XL",
  "link": "https://www.londontechsummit.com/",
  "eventDescription": "The UK's largest tech conference featuring 200+ speakers, workshops, and networking sessions.",
  "source": "londontechsummit.com"
}
```

# Actor input Schema

## `query` (type: `string`):

The event search term to use (e.g. 'tech conferences', 'music festivals', 'yoga classes')

## `location` (type: `string`):

Location to search events in (e.g. 'New York', 'London', 'San Francisco')

## `maxItems` (type: `integer`):

Maximum number of event results to retrieve

## `gl` (type: `string`):

The Google country to use for the query

## `hl` (type: `string`):

The Google UI language to return results

## `proxyConfiguration` (type: `object`):

Google SERP proxy is the reliable default. Disable the proxy for a free direct-request attempt when appropriate.

## Actor input object example

```json
{
  "query": "tech conferences",
  "location": "New York",
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `output` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "tech conferences",
    "location": "New York",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("codingfrontend/google-events-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "tech conferences",
    "location": "New York",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("codingfrontend/google-events-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "tech conferences",
  "location": "New York",
  "maxItems": 50
}' |
apify call codingfrontend/google-events-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codingfrontend/google-events-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BNlcI6WXZGtGdQ9ce/builds/39jgg4K7VV0VvTgQP/openapi.json
