# Tech Events & CFP Calendar Scraper (`taroyamada/tech-events-intelligence`) Actor

Extract upcoming developer conferences, local meetups, and open Call for Papers (CFP) deadlines to build a comprehensive speaking schedule for your DevRel team.

- **URL**: https://apify.com/taroyamada/tech-events-intelligence.md
- **Developed by:** [naoki anzai](https://apify.com/taroyamada) (community)
- **Categories:** Lead generation, Marketing, Developer tools
- **Stats:** 6 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.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

## Tech Events Calendar API | Conferences + CFP

Developer Relations teams and developer advocates can't afford to manually search the web for speaking opportunities. This scraper completely automates your tech events intelligence gathering by crawling multiple websites to extract structured data on global conferences, local meetups, and open Call for Papers (CFP) deadlines. Whether you are hunting for JavaScript summits, Python bootcamps, AI symposiums, or DevOps conventions, this tool builds a comprehensive, deduplicated schedule of exactly where your target developer audience is gathering. Stop missing out on critical submission windows and speaker slots. By scheduling this scraper to run weekly, you can automatically fetch the latest event announcements and speaking opportunities before CFP links expire. The scraped data provides everything you need to assess an event's exact value for your DevRel strategy: the official event name, start and end dates, city and country, specific topic tags, and the direct URL to submit your speaking proposals. Instead of relying on scattered email newsletters or manually copying contact details into spreadsheets, use this scraper to extract precise event details, organize your speaker pipeline, and dominate the tech conference circuit.

### Store Quickstart

- Start with `store-input.example.json` for a cheap single-topic first run.
- If that matches your workflow, switch to `store-input.templates.json` and pick one of:
- `Quickstart (Dataset)` for one-topic discovery
- `Multi-topic Scan` for a broader calendar build
- `Webhook Alert` for downstream event routing

### Key Features

- 📅 **Multi-topic search** — Search across JavaScript, Python, AI, DevOps, and 20+ topics
- 🔄 **Automatic deduplication** — Events appearing in multiple topics are merged
- 🌍 **Global coverage** — Conferences from all countries, including online events
- 📝 **CFP tracking** — Call-for-papers URLs and deadlines included
- 📊 **Sorted by date** — Clean chronological listing
- 🏷️ **Topic tagging** — Each event tagged with all relevant topics

### Use Cases

| Who | Why |
|-----|-----|
| Developer advocates | Find conferences to speak at or sponsor |
| DevRel teams | Plan conference attendance calendar |
| Recruiters | Discover events where target developers gather |
| Community managers | Track events in their technology ecosystem |

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| topics | array | prefilled | Topics to search for (e.g. ['javascript','ai','devops']). |
| year | integer | `2026` | Year to search for events. |
| delivery | string | `"dataset"` | How to deliver results. 'dataset' saves to Apify Dataset (recommended), 'webhook' sends to a URL. |
| webhookUrl | string | — | Webhook URL to send results to (only used when delivery is 'webhook'). Works with Slack, Discord, or any HTTP endpoint. |
| dryRun | boolean | `false` | If true, runs without saving results or sending webhooks. Useful for testing. |

#### Input Example

```json
{
  "topics": ["javascript", "python", "ai"],
  "year": 2026
}
````

### Input Examples

#### Example: Single platform

```json
{
  "sources": [
    "papercall.io"
  ],
  "topics": [
    "machine learning"
  ]
}
```

#### Example: Multi-platform monitor

```json
{
  "sources": [
    "papercall.io",
    "sessionize.com"
  ],
  "topics": [
    "security"
  ],
  "deadlineWithinDays": 60
}
```

#### Example: Specific conference URLs

```json
{
  "urls": [
    "https://example-conf.com/cfp"
  ],
  "emitDeadlineAlerts": true
}
```

### Output

| Field | Type | Description |
|-------|------|-------------|
| `meta` | object |  |
| `results` | array |  |
| `results[].name` | string |  |
| `results[].url` | string (url) |  |
| `results[].startDate` | string |  |
| `results[].endDate` | string |  |
| `results[].city` | string |  |
| `results[].country` | string |  |
| `results[].online` | boolean |  |
| `results[].cfpUrl` | string (url) |  |
| `results[].cfpEndDate` | string |  |
| `results[].twitter` | string |  |
| `results[].topics` | array |  |
| `results[].source` | string |  |

#### Output Example

```json
{
  "name": "PyCon US 2026",
  "url": "https://us.pycon.org/2026/",
  "startDate": "2026-05-15",
  "endDate": "2026-05-23",
  "city": "Long Beach",
  "country": "US",
  "online": false,
  "cfpUrl": "https://us.pycon.org/2026/speaking/",
  "cfpEndDate": "2025-12-18",
  "topics": ["python"],
  "source": "confs.tech"
}
```

### API Usage

Run this actor programmatically using the Apify API. Replace `YOUR_API_TOKEN` with your token from [Apify Console → Settings → Integrations](https://console.apify.com/account/integrations).

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/taroyamada~tech-events-intelligence/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "topics": ["javascript", "python", "ai"], "year": 2026 }'
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("taroyamada/tech-events-intelligence").call(run_input={
  "topics": ["javascript", "python", "ai"],
  "year": 2026
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### JavaScript / Node.js

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('taroyamada/tech-events-intelligence').call({
  "topics": ["javascript", "python", "ai"],
  "year": 2026
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Tips & Limitations

- Run nightly as part of your supply-chain monitoring to catch new vulnerabilities early.
- Pair with `oss-vulnerability-monitor` for CVE coverage layered on top of version tracking.
- For monorepos, run per-package rather than recursing — easier to triage alerts by team owner.
- Use `snapshotKey` to persist between runs and only alert on diffs.
- Webhook delivery supports JSON payloads — pipe into your existing on-call routing.

### FAQ

**Is my build slowed down?**

This actor runs on Apify infrastructure, not your CI runners. No impact on build times.

**What's the freshness of data?**

Depends on the source registry — typically 5–60 minutes behind upstream.

**Can I filter by package ecosystem?**

Yes — most DevOps actors accept an ecosystem or package-manager filter in their input schema.

**Does this work with private registries?**

No — this actor targets public registries (npm, PyPI, crates.io, etc.). Private registries require credential handling that's out of scope.

**Can I integrate with GitHub Actions?**

Yes — call this actor via Apify API inside a workflow job, parse the JSON output, and fail the build on threshold violations.

### Related Actors

DevOps & Tech Intel cluster — explore related Apify tools:

- [🌐 DNS Propagation Checker](https://apify.com/taroyamada/dns-propagation-checker) — Check DNS propagation across 8 global resolvers (Google, Cloudflare, Quad9, OpenDNS).
- [🔍 Subdomain Finder](https://apify.com/taroyamada/subdomain-finder) — Discover subdomains for any domain using Certificate Transparency logs (crt.
- [🧹 CSV Data Cleaner](https://apify.com/taroyamada/csv-data-cleaner) — Clean CSV data: trim whitespace, remove empty rows, deduplicate by columns, sort.
- [📦 NPM Package Analyzer](https://apify.com/taroyamada/npm-package-intelligence) — Analyze npm packages: download stats, dependencies, licenses, deprecation status.
- [💬 Reddit Scraper](https://apify.com/taroyamada/reddit-data-scraper) — Scrape Reddit posts and comments from any subreddit via official JSON API.
- [GitHub Release & Changelog Monitor API](https://apify.com/taroyamada/github-release-monitor) — Track GitHub releases, tags, release notes, and changelog drift over time with one summary-first repository row per repo.
- [Docs & Changelog Drift Monitor API](https://apify.com/taroyamada/docs-changelog-drift-monitor) — Monitor release notes, changelog pages, migration guides, and key docs pages with one summary-first target row per monitored repo, SDK, or product.
- [🔒 OSS Vulnerability Monitor](https://apify.com/taroyamada/oss-vulnerability-monitor) — Monitor open-source packages for known security vulnerabilities using OSV and GitHub Security Advisories.

### Cost

**Pay Per Event**:

- `actor-start`: $0.01 (flat fee per run)
- `dataset-item`: $0.003 per output item

**Example**: 1,000 items = $0.01 + (1,000 × $0.003) = **$3.01**

No subscription required — you only pay for what you use.

### ⭐ Was this helpful?

If this actor saved you time, please [**leave a ★ rating**](https://apify.com/taroyamada/tech-events-intelligence/reviews) on Apify Store. It takes 10 seconds, helps other developers discover it, and keeps updates free.

Bug report or feature request? Open an issue on the [Issues tab](https://apify.com/taroyamada/tech-events-intelligence/issues) of this actor.

# Actor input Schema

## `topics` (type: `array`):

Topics to search for (e.g. \['javascript','ai','devops']).

## `year` (type: `integer`):

Year to search for events.

## `delivery` (type: `string`):

How to deliver results. 'dataset' saves to Apify Dataset (recommended), 'webhook' sends to a URL.

## `webhookUrl` (type: `string`):

Webhook URL to send results to (only used when delivery is 'webhook'). Works with Slack, Discord, or any HTTP endpoint.

## `dryRun` (type: `boolean`):

If true, runs without saving results or sending webhooks. Useful for testing.

## Actor input object example

```json
{
  "topics": [
    "javascript",
    "python",
    "ai"
  ],
  "year": 2026,
  "delivery": "dataset",
  "dryRun": false
}
```

# 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 = {
    "topics": [
        "javascript",
        "python",
        "ai"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("taroyamada/tech-events-intelligence").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 = { "topics": [
        "javascript",
        "python",
        "ai",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("taroyamada/tech-events-intelligence").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 '{
  "topics": [
    "javascript",
    "python",
    "ai"
  ]
}' |
apify call taroyamada/tech-events-intelligence --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Tech Events & CFP Calendar Scraper",
        "description": "Extract upcoming developer conferences, local meetups, and open Call for Papers (CFP) deadlines to build a comprehensive speaking schedule for your DevRel team.",
        "version": "0.1",
        "x-build-id": "wn8ZkjMN2Hebanvbo"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/taroyamada~tech-events-intelligence/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-taroyamada-tech-events-intelligence",
                "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/taroyamada~tech-events-intelligence/runs": {
            "post": {
                "operationId": "runs-sync-taroyamada-tech-events-intelligence",
                "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/taroyamada~tech-events-intelligence/run-sync": {
            "post": {
                "operationId": "run-sync-taroyamada-tech-events-intelligence",
                "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",
                "required": [
                    "topics"
                ],
                "properties": {
                    "topics": {
                        "title": "Topics",
                        "type": "array",
                        "description": "Topics to search for (e.g. ['javascript','ai','devops']).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "year": {
                        "title": "Year",
                        "type": "integer",
                        "description": "Year to search for events.",
                        "default": 2026
                    },
                    "delivery": {
                        "title": "Delivery Mode",
                        "enum": [
                            "dataset",
                            "webhook"
                        ],
                        "type": "string",
                        "description": "How to deliver results. 'dataset' saves to Apify Dataset (recommended), 'webhook' sends to a URL.",
                        "default": "dataset"
                    },
                    "webhookUrl": {
                        "title": "Webhook URL",
                        "type": "string",
                        "description": "Webhook URL to send results to (only used when delivery is 'webhook'). Works with Slack, Discord, or any HTTP endpoint."
                    },
                    "dryRun": {
                        "title": "Dry Run",
                        "type": "boolean",
                        "description": "If true, runs without saving results or sending webhooks. Useful for testing.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
