# Google Events Live Query Actor (`scrapeai/google-events`) Actor

Discover events through live Google Search and extract dated concerts and other events from publisher pages, including venues, addresses and ticket links.

- **URL**: https://apify.com/scrapeai/google-events.md
- **Developed by:** [ScrapeAI](https://apify.com/scrapeai) (community)
- **Stats:** 2 total users, 1 monthly users, 75.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does Google Events Live Query Actor do?

This **Google Events Actor** uses current Google Search results to discover event publishers, then extracts actual events from their live structured metadata. Each record contains a named event, a published date, venue or address, and its source or ticket link.

The legacy Google Events `ibp=htl;events` page now reports that the browser, device or location is unsupported. This Actor therefore identifies its output as `google-search-publisher-event-live`, rather than claiming it came from that retired event-card route. It does not create event records from autocomplete or generic search snippets.

### Why use this Actor?

Use it for concert discovery, event research, venue calendars and schedule aggregation. Apify adds API access, scheduling, integrations, monitoring and downloadable datasets. Each event retains the original query, discovery page, publisher URL and retrieval time so you can inspect its live source.

### How to use this Actor

1. Enter a query with the event type and location, such as `concerts in New York`.
2. Keep `maxItems` and `minItems` at 10 for a small verification run.
3. Keep GOOGLE_SERP discovery enabled, or explicitly disable it to try direct Google access.
4. Start the Actor and check the dataset. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Input

`query` drives Google discovery and event relevance checks. Include the city or other location terms you need. `maxItems` limits distinct events; `minItems` requires a minimum count. The effective minimum cannot exceed the maximum.

`hl` and `gl` set language and country. `requestTimeoutSecs` defaults to 45 and accepts 5–60 seconds; publisher requests have a 20-second ceiling. `proxyConfiguration` defaults to `{"useApifyProxy":true,"groups":["GOOGLE_SERP"]}`. Other service-specific fields inherited by the input form are ignored.

### Output and data fields

| Field | Meaning |
| --- | --- |
| title, description | Publisher event name and description |
| url, sourceUrl | Event or ticket URL and metadata source |
| details.startDate, endDate | Dates exactly as published |
| details.venueOrLocation, address | Venue and structured address |
| details.latitude, longitude | Coordinates when published |
| details.organizer, performers | Publisher-provided participants |
| details.price, currency | Ticket price only when published |
| details.availability, ticketUrl | Offer details when available |
| details.googleSearchUrl | Discovery query page |
| sourceType, scrapedAt | Extraction method and retrieval time |

Unknown prices, times and organizers remain absent. A date without a time stays a date; the Actor does not invent a timezone. Events are deduplicated by name, date and location. Separate dates for the same artist are separate events.

### Pricing and cost estimation

The configured Store fee is $0.00199 per result ($1.99 per 1,000), plus the $0.00005 Actor Start event. Users pay Apify platform usage and proxy costs. Ten requested events use at most three paid Google discovery pages; larger limits can use up to twelve. Each discovered publisher page is fetched directly. A publisher calendar can contain several distinct events. Check current Apify rates for platform and proxy charges.

### Tips and limitations

Use a specific event type and city. Live structured Event metadata is required, so some visible events cannot be extracted. Dates older than the current day are omitted unless the query explicitly requests a past year. Source errors, challenges and blocked publishers can reduce the count. The Actor fails below the minimum and does not add generated filler.

### FAQ and support

Run `apify validate-schema` and `apify run` locally. Local storage is separate from cloud datasets. Deploy and test in production to verify cloud output. The Actor accesses public pages and does not solve CAPTCHAs or access private accounts. Review applicable source terms and use the Issues tab with your input and run URL when reporting a problem.

# Actor input Schema

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

Query or text to send to the public Google Events source. The default is a working live-data query.

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

Maximum number of live records to return. Use 10 for a quick check or increase up to 100 when the source supports it.

## `minItems` (type: `integer`):

The Actor fails instead of adding static data when the live source returns fewer than this many records. Default is 10.

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

Two- or three-letter language code for the live request.

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

Two-letter country code used for regional live results.

## `requestTimeoutSecs` (type: `integer`):

Timeout for each live Google discovery or publisher request.

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

Uses the paid GOOGLE_SERP group for Google Search discovery by default. Each search page is a separate proxy request. Set useApifyProxy to false for direct discovery. Quote and publisher pages are fetched directly.

## `targetLanguages` (type: `array`):

Optional language codes used by Google Translate. Ignored by other Actors.

## `departureDate` (type: `string`):

Optional flight departure date in YYYY-MM-DD format. Used by Google Flights; ignored by other Actors.

## `returnDate` (type: `string`):

Optional flight return date in YYYY-MM-DD format. Used by Google Flights; ignored by other Actors.

## `checkInDate` (type: `string`):

Optional hotel check-in date in YYYY-MM-DD format. Used by Google Hotels; ignored by other Actors.

## `checkOutDate` (type: `string`):

Optional hotel check-out date in YYYY-MM-DD format. Used by Google Hotels; ignored by other Actors.

## Actor input object example

```json
{
  "query": "concerts in New York",
  "maxItems": 10,
  "minItems": 10,
  "hl": "en",
  "gl": "us",
  "requestTimeoutSecs": 45,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "groups": [
      "GOOGLE_SERP"
    ]
  },
  "targetLanguages": []
}
```

# Actor output Schema

## `dataset` (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": "concerts in New York",
    "hl": "en",
    "gl": "us",
    "targetLanguages": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapeai/google-events").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": "concerts in New York",
    "hl": "en",
    "gl": "us",
    "targetLanguages": [],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapeai/google-events").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": "concerts in New York",
  "hl": "en",
  "gl": "us",
  "targetLanguages": []
}' |
apify call scrapeai/google-events --silent --output-dataset

```

## MCP server setup

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

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/cef2YVJyFZIfD7n1L/builds/R1wW2VsjVGxFEtFM6/openapi.json
