# Redwoodcity Events Spider (`getdataforme/redwoodcity-events-spider`) Actor

This Apify Actor scrapes comprehensive event data from Redwood City's official calendar, delivering structured JSON outputs with names, descriptions, dates, times, locations, and more....

- **URL**: https://apify.com/getdataforme/redwoodcity-events-spider.md
- **Developed by:** [GetDataForMe](https://apify.com/getdataforme) (community)
- **Categories:** AI, Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $9.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

### Description

This Apify Actor scrapes comprehensive event data from Redwood City's official calendar, delivering structured JSON outputs with names, descriptions, dates, times, locations, and more....

---

## Redwoodcity Events Spider

The Redwoodcity Events Spider is an Apify Actor designed to scrape and extract detailed event information from the official Redwood City calendar website. It automates the collection of event data, providing structured JSON output that includes event names, descriptions, dates, times, locations, and more. This tool is invaluable for anyone needing reliable, up-to-date event data for analysis, planning, or integration into other systems.

### Features

- **Comprehensive Event Extraction**: Captures key details such as event names, full descriptions, dates, times, addresses, and URLs from Redwood City's calendar pages.
- **Multilingual Support**: Handles events with bilingual descriptions (English and Spanish), ensuring complete data capture.
- **Flexible URL Input**: Accepts multiple URLs for scraping, allowing targeted or broad event collection.
- **Structured JSON Output**: Delivers clean, consistent data in JSON format, ready for export to CSV, Excel, or databases.
- **Reliable and Efficient**: Built with robust error handling and optimized for performance, minimizing failed runs.
- **No Coding Required**: User-friendly interface on Apify Store for easy setup and execution.
- **Scalable**: Suitable for one-time scrapes or scheduled runs to monitor ongoing events.

### Input Parameters

| Parameter | Type | Required | Description | Example |
|-----------|------|----------|-------------|---------|
| Urls | array | No (but at least 1 URL required) | A list of URLs pointing to Redwood City calendar pages to scrape for events. Each URL must be a valid HTTP or HTTPS link. | ["https://www.redwoodcity.org/departments/parks-recreation-and-community-services/calendar"] |

### Example Usage

To run the Actor, provide the input parameters in JSON format. Here's an example input:

```json
{
  "Urls": [
    "https://www.redwoodcity.org/departments/parks-recreation-and-community-services/calendar"
  ]
}
````

The Actor will process the URLs and output a JSON array of event objects. Example output:

```json
[
  {
    "event_name": "Laundry and Shower Services | Servicios de lavandería y duchas",
    "full_description": "<span itemprop=\"description\"><p>Dignity on Wheels (DoW) is a mobile hygiene service that provides free showers and laundry services to those experiencing homelessness in 5 counties and 20 cities throughout the Bay Area and Los Angeles. Comprehensive case management support is provided to address a variety of individual challenges including job loss, illness, and food insecurity.</p>\n<p>Dignity on Wheels (DoW) es un servicio de higiene móvil que provee duchas y servicios de lavandería gratuitos para personas sin hogar en 5 condados y 20 ciudades en el Área de la Bahía y Los Ángeles. Se ofrese amplio apoyo del manejo de casos para abordar una variedad de asuntos individuales, incluida la pérdida del trabajo, la enfermedad y la inseguridad alimentaria. </p>\n<p><strong>For more information / Para más información<br>\n</strong>Anita Blount, Director of Operations for Dignity on Wheels<br>\n<a href=\"mailto:ablount@wehope.org?subject=DoW%20at%20the%20Downtown%20Redwood%20City%20Public%20Library\">ablount@wehope.org</a></p></span>",
    "date": "2026-04-04",
    "time": "16:00",
    "full_address": "1044 Middlefield Road, Redwood City, California",
    "city": "Redwood City",
    "zip": null,
    "event_url": "https://www.redwoodcity.org/Home/Components/Calendar/Event/92519/452",
    "indoor_outdoor": null,
    "free_paid": "Free",
    "actor_id": "tbYu6nf7LVHl8UKC9",
    "run_id": "cLO3423f4KciIlJlN"
  },
  {
    "event_name": "RMCC Drop-In Basketball",
    "full_description": "<span itemprop=\"description\"><p>Drop-In Basketball - Full Gym</p>\n<p> <strong>Fees:</strong><br>\nAdult (18 - 59)     $5.00<br>\nSenior (60+)         $1.00<br>\nYouth (Under 18)   $1.00</p>\n<p><a href=\"https://www.redwoodcity.org/?navid=536\">click for more details</a></p>\n<p>\n<strong><br>\n</strong></p>\n<br></span>",
    "date": "2026-04-06",
    "time": "21:30",
    "full_address": "1120 Roosevelt Ave, Redwood City, California",
    "city": "Redwood City",
    "zip": null,
    "event_url": "https://www.redwoodcity.org/Home/Components/Calendar/Event/94642/452",
    "indoor_outdoor": "Indoor",
    "free_paid": "Paid",
    "actor_id": "tbYu6nf7LVHl8UKC9",
    "run_id": "cLO3423f4KciIlJlN"
  },
  {
    "event_name": "RMCC Drop-In Basketball",
    "full_description": "<span itemprop=\"description\"><p>Drop-In Basketball - Full Gym</p>\n<p> <strong>Fees:</strong><br>\nAdult (18 - 59)     $5.00<br>\nSenior (60+)         $1.00<br>\nYouth (Under 18)   $1.00</p>\n<p><a href=\"https://www.redwoodcity.org/?navid=536\">click for more details</a></p>\n<p>\n<strong><br>\n</strong></p>\n<br></span>",
    "date": "2026-04-04",
    "time": "21:45",
    "full_address": "1120 Roosevelt Ave, Redwood City, California",
    "city": "Redwood City",
    "zip": null,
    "event_url": "https://www.redwoodcity.org/Home/Components/Calendar/Event/94657/452",
    "indoor_outdoor": "Indoor",
    "free_paid": "Paid",
    "actor_id": "tbYu6nf7LVHl8UKC9",
    "run_id": "cLO3423f4KciIlJlN"
  }
]
```

### Use Cases

- **Community Event Planning**: Organizers can aggregate upcoming events to coordinate schedules and avoid conflicts.
- **Market Research**: Businesses analyze local event trends to identify opportunities for sponsorships or promotions.
- **Academic Research**: Researchers study community activities, demographics, and participation patterns.
- **Content Aggregation**: Media outlets or blogs compile event listings for newsletters or websites.
- **Business Automation**: Integrate event data into CRM systems for targeted outreach to attendees.
- **Public Health Monitoring**: Track hygiene and wellness events to assess community needs.

### Installation and Usage

1. Search for "Redwoodcity Events Spider" in the Apify Store
2. Click "Try for free" or "Run"
3. Configure input parameters
4. Click "Start" to begin extraction
5. Monitor progress in the log
6. Export results in your preferred format (JSON, CSV, Excel)

### Output Format

The Actor outputs a JSON array of objects, each representing an event. Key fields include:

- `event_name`: The title of the event.
- `full_description`: Detailed HTML description, often bilingual.
- `date`: Event date in YYYY-MM-DD format.
- `time`: Event start time in HH:MM format.
- `full_address`: Complete location address.
- `city`: City name (e.g., "Redwood City").
- `zip`: ZIP code (may be null).
- `event_url`: Direct link to the event page.
- `indoor_outdoor`: Indicates if the event is indoor, outdoor, or null.
- `free_paid`: Whether the event is free or paid.
- `actor_id` and `run_id`: Metadata for tracking the scrape.

Data is extracted directly from the website, ensuring accuracy, but some fields like `zip` or `indoor_outdoor` may be null if not specified.

### Support

For custom/simplified outputs or bug reports, please contact:

- Email: support@getdataforme.com
- Subject line: "custom support"
- Contact form: https://getdataforme.com/contact/

We're here to help you get the most out of this Actor!

***

# Actor input Schema

## `Urls` (type: `array`):

The urls for the spider.

## Actor input object example

```json
{
  "Urls": [
    "https://www.redwoodcity.org/departments/parks-recreation-and-community-services/calendar"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

Scraped data items from dataset

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("getdataforme/redwoodcity-events-spider").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("getdataforme/redwoodcity-events-spider").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 '{}' |
apify call getdataforme/redwoodcity-events-spider --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getdataforme/redwoodcity-events-spider",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Redwoodcity Events Spider",
        "description": "This Apify Actor scrapes comprehensive event data from Redwood City's official calendar, delivering structured JSON outputs with names, descriptions, dates, times, locations, and more....",
        "version": "0.0",
        "x-build-id": "BvclQVLzOWwvxJWdG"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getdataforme~redwoodcity-events-spider/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getdataforme-redwoodcity-events-spider",
                "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/getdataforme~redwoodcity-events-spider/runs": {
            "post": {
                "operationId": "runs-sync-getdataforme-redwoodcity-events-spider",
                "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/getdataforme~redwoodcity-events-spider/run-sync": {
            "post": {
                "operationId": "run-sync-getdataforme-redwoodcity-events-spider",
                "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": {
                    "Urls": {
                        "title": "Urls",
                        "minItems": 1,
                        "type": "array",
                        "description": "The urls for the spider.",
                        "default": [
                            "https://www.redwoodcity.org/departments/parks-recreation-and-community-services/calendar"
                        ],
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
