# Google Maps Timezone & Local Time Lookup (`crawlerbros/google-maps-timezone`) Actor

Resolve the IANA timezone, current local time, UTC offset, and daylight-saving information for any coordinate. Accepts single or batch lat/lng inputs.

- **URL**: https://apify.com/crawlerbros/google-maps-timezone.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Developer tools, Automation, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Maps Timezone & Local Time Lookup

Resolve the **IANA timezone**, **current local time**, **UTC offset**, and **daylight-saving status** for any latitude/longitude on Earth. Designed to complement other Google Maps actors when you need to normalise business hours, schedule notifications across regions, or enrich geocoded data with timezone context.

### What you get

For each input coordinate, the actor returns one record with:

- `inputLocation` — the original `{lat, lng}` you provided
- `timezone` — IANA zone name (e.g. `America/New_York`, `Asia/Tokyo`, `Australia/Sydney`)
- `timezoneAbbreviation` — short code when DST is in effect (e.g. `EDT`, `BST`)
- `utcOffset` — current offset formatted as `+HH:MM` / `-HH:MM`
- `utcOffsetSeconds` — current offset in seconds (positive east of UTC)
- `currentLocalTime` — wall-clock time at the coordinate, ISO 8601 (second resolution)
- `currentUtcTime` — equivalent UTC time, ISO 8601 with `Z`
- `isDaylightSavingTime` — `true` when DST is currently active
- `daylightSavings` — `{ inEffect, observed, nextTransition, standardUtcOffset, ... }`
- `scrapedAt` — UTC timestamp of when the lookup was performed

Empty/null fields are omitted automatically.

### Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `location` | object `{lat, lng}` | Conditional | A single coordinate. Provide this OR `locations`. |
| `locations` | array of `{lat, lng}` | Conditional | Multiple coordinates resolved in one run. |
| `proxyConfiguration` | proxy | Optional | Usually not needed; the lookup works fine from datacenter IPs. |

At least one of `location` or `locations` must be provided. Latitude must be in `[-90, 90]` and longitude in `[-180, 180]`. Synonyms `latitude` / `longitude` / `lon` are also accepted.

#### Example input

```json
{
  "locations": [
    {"lat": 40.7128, "lng": -74.0060},
    {"lat": 51.5074, "lng": -0.1278},
    {"lat": 35.6762, "lng": 139.6503},
    {"lat": -33.8688, "lng": 151.2093}
  ]
}
````

### Example output

```json
{
  "inputLocation": {"lat": 40.7128, "lng": -74.006},
  "timezone": "America/New_York",
  "timezoneAbbreviation": "EDT",
  "utcOffset": "-04:00",
  "utcOffsetSeconds": -14400,
  "currentLocalTime": "2026-06-16T07:45:30",
  "currentUtcTime": "2026-06-16T11:45:30Z",
  "isDaylightSavingTime": true,
  "daylightSavings": {
    "inEffect": true,
    "observed": true,
    "nextTransition": "2026-11-01T06:00:00Z",
    "dstName": "EDT",
    "standardUtcOffset": "-05:00",
    "standardUtcOffsetSeconds": -18000
  },
  "scrapedAt": "2026-06-16T11:45:31.124+00:00"
}
```

### Use cases

- **Normalise business hours** — combine with a places scraper to convert "9 AM - 5 PM" into UTC ranges.
- **Schedule outreach** — only send notifications during local business hours per recipient.
- **Compliance & reporting** — stamp events with the correct local time and DST flag.
- **Travel apps** — show local time at a destination given lat/lng.

### FAQ

**Does this require a Google Maps API key?**
No. The actor uses the free public `timeapi.io` service to map coordinates to IANA zones — no API key, no quota, no login.

**Do I need a proxy?**
No. The lookup works directly from Apify datacenter IPs. A `proxyConfiguration` input exists for environments where outbound HTTP from datacenter IPs is restricted.

**How accurate is the timezone for borders / disputed regions?**
`timeapi.io` is backed by the IANA tz database, the same database used by every major operating system and programming language. It correctly handles fractional offsets (India `+05:30`, Nepal `+05:45`, Newfoundland `-03:30`) and current DST rules.

**What happens with invalid coordinates?**
Out-of-range or non-numeric inputs are rejected with a clear error before any network calls are made.

**Can I resolve thousands of coordinates?**
Yes. Each lookup is a single HTTP request. The actor paces requests politely and retries transient failures, so very large batches complete reliably.

### Limits & notes

- Country / countryCode fields are not included in the output because `timeapi.io` does not return them. Pair this actor with the `google-maps-geocoding` actor when you need country context for the same coordinate.
- `timezoneAbbreviation` is only populated when daylight-saving time is currently in effect (the underlying API only exposes the DST abbreviation).

### 🗺️ Complete Google Maps Scraper Suite

This actor is part of a comprehensive Google Maps data extraction toolkit by **crawlerbros**. All actors run on the free Apify plan, use no proxy by default, and return clean, structured data.

| Actor | What it does |
|---|---|
| 🏢 [Google Maps Business Scraper](https://apify.com/crawlerbros/google-maps-scraper) | Extract business data — name, address, phone, website, rating, reviews, hours, amenities |
| ⭐ [Google Maps Reviews Scraper](https://apify.com/crawlerbros/google-maps-reviews-scraper) | Scrape reviews with reviewer Local Guide level, photos, mentioned items, owner replies |
| 📸 [Google Maps Photos Scraper](https://apify.com/crawlerbros/google-maps-photos) | Extract all photos from any place — max-resolution URLs, contributor info, categories |
| 🕐 [Google Maps Business Hours Scraper](https://apify.com/crawlerbros/google-maps-business-hours) | Full 7-day hours, timezone, current local time, next open/close, holiday hours |
| 📊 [Google Maps Popular Times Scraper](https://apify.com/crawlerbros/google-maps-popular-times) | Busy hours histogram for all 7 days + current busyness + typical visit time |
| 📧 [Google Maps Email Extractor](https://apify.com/crawlerbros/google-maps-email-extractor) | Find business emails + social media links by crawling websites |
| 🗺️ [Google Maps Area Scanner](https://apify.com/crawlerbros/google-maps-area-scanner) | Geographic grid scanning — bypass the 120-place limit with bounding box / circle / polygon |
| 💼 [Google Maps Leads Scraper](https://apify.com/crawlerbros/google-maps-leads) | B2B lead generation with email + phone enrichment, US states + global countries |
| 🤖 [Google Maps MCP Server](https://apify.com/crawlerbros/google-maps-mcp) | Unified MCP server combining search + reviews for AI assistants |
| 🧭 [Google Maps Directions Scraper](https://apify.com/crawlerbros/google-maps-directions) | A→B routing — distance, duration, traffic, route alternatives for driving/walking/transit |
| 📍 [Google Maps Geocoding Scraper](https://apify.com/crawlerbros/google-maps-geocoding) | Bidirectional geocoding — address ↔ coordinates, with address components |
| 🔗 [Google Maps Similar Places Scraper](https://apify.com/crawlerbros/google-maps-similar-places) | "People also search for" / related place discovery — competitor & alternative finder |
| 🍽️ [Google Maps Menu Scraper](https://apify.com/crawlerbros/google-maps-menu) | Restaurant menu items, prices, descriptions, photos |
| 📌 [Google Maps Nearby Scraper](https://apify.com/crawlerbros/google-maps-nearby) | Find places near a coordinate point — lightweight POI search by category |
| 📋 [Google Maps Place List Scraper](https://apify.com/crawlerbros/google-maps-place-list) | Extract Google's curated "Top X in Y" lists — best hotels/restaurants/things to do |

# Actor input Schema

## `location` (type: `object`):

A single {lat, lng} coordinate to resolve. Use either this or 'locations'.

## `locations` (type: `array`):

Multiple {lat, lng} coordinates to resolve in one run.

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

Optional proxy. Not normally required; timeapi.io accepts direct datacenter requests.

## Actor input object example

```json
{
  "location": {
    "lat": 40.7128,
    "lng": -74.006
  },
  "locations": [
    {
      "lat": 40.7128,
      "lng": -74.006
    },
    {
      "lat": 51.5074,
      "lng": -0.1278
    },
    {
      "lat": 35.6762,
      "lng": 139.6503
    },
    {
      "lat": -33.8688,
      "lng": 151.2093
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `timezones` (type: `string`):

Dataset containing all resolved timezone records.

# 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 = {
    "location": {
        "lat": 40.7128,
        "lng": -74.006
    },
    "locations": [
        {
            "lat": 40.7128,
            "lng": -74.006
        },
        {
            "lat": 51.5074,
            "lng": -0.1278
        },
        {
            "lat": 35.6762,
            "lng": 139.6503
        },
        {
            "lat": -33.8688,
            "lng": 151.2093
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/google-maps-timezone").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 = {
    "location": {
        "lat": 40.7128,
        "lng": -74.006,
    },
    "locations": [
        {
            "lat": 40.7128,
            "lng": -74.006,
        },
        {
            "lat": 51.5074,
            "lng": -0.1278,
        },
        {
            "lat": 35.6762,
            "lng": 139.6503,
        },
        {
            "lat": -33.8688,
            "lng": 151.2093,
        },
    ],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/google-maps-timezone").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "location": {
    "lat": 40.7128,
    "lng": -74.006
  },
  "locations": [
    {
      "lat": 40.7128,
      "lng": -74.006
    },
    {
      "lat": 51.5074,
      "lng": -0.1278
    },
    {
      "lat": 35.6762,
      "lng": 139.6503
    },
    {
      "lat": -33.8688,
      "lng": 151.2093
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call crawlerbros/google-maps-timezone --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/google-maps-timezone",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Timezone & Local Time Lookup",
        "description": "Resolve the IANA timezone, current local time, UTC offset, and daylight-saving information for any coordinate. Accepts single or batch lat/lng inputs.",
        "version": "0.2",
        "x-build-id": "NHb7MnbfzuKonl6tb"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~google-maps-timezone/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-google-maps-timezone",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~google-maps-timezone/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-google-maps-timezone",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~google-maps-timezone/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-google-maps-timezone",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "location": {
                        "title": "Single Location",
                        "type": "object",
                        "description": "A single {lat, lng} coordinate to resolve. Use either this or 'locations'."
                    },
                    "locations": {
                        "title": "Batch Locations",
                        "type": "array",
                        "description": "Multiple {lat, lng} coordinates to resolve in one run.",
                        "items": {
                            "type": "object"
                        }
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Optional proxy. Not normally required; timeapi.io accepts direct datacenter requests."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
