---
title: "Get past and upcoming company events"
method: GET
path: "/v1/events-calendar"
tags: ["Events Calendar"]
---

# Get past and upcoming company events

`GET /v1/events-calendar`

## Request

- Base URL: `https://api.fiscal.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.fiscal.ai/v1/events-calendar`
- Auth: one of:
  - API key in query parameter `apiKey`
  - API key in header `X-Api-Key`

Returns company earnings events. Omit company identifiers to retrieve the global calendar, or provide one or more comma-separated identifiers of a single type to filter the calendar by company. Results are sorted by eventDate in ascending order. Use page and pageSize to paginate large result sets. Keys without Events Calendar access, free-trial keys included, are served only the free-trial companies, under the free-trial rate limits.

## Query parameters

- `apiKey` string: API Key (alternatively send via X-Api-Key header)
- `fscl` string: One or more comma-separated Fiscal.ai company, listing, or security identifiers (FSCLC, FSCLL, or FSCLS); each resolves to its canonical company.
- `companyKey` string: One or more comma-separated company keys.
- `ticker` string: One or more comma-separated company tickers. Use alone for US tickers, or pair with exchange or micCode.
- `exchange` string: Exchange code used with ticker. Supply one value for all tickers or a comma-separated value for each ticker.
- `micCode` string: MIC used with ticker. Supply one value for all tickers or a comma-separated value for each ticker.
- `cusip` string: One or more comma-separated CUSIPs. Requires the CUSIP/ISIN license.
- `isin` string: One or more comma-separated ISINs. Requires the CUSIP/ISIN license.
- `figi` string: One or more comma-separated Financial Instrument Global Identifiers (FIGIs).
- `cik` string: One or more comma-separated SEC Central Index Keys (CIKs).
- `country` string: Filter by ISO country code of the company's headquarters (case-insensitive, e.g. US, GB).
- `sector` string: Filter by GICS sector (case-insensitive exact match).
- `startDate` string, date: Inclusive lower bound (YYYY-MM-DD). Non-projected events compare eventDate; projected events match when dateWindow overlaps the requested range.
- `endDate` string, date: Inclusive upper bound (YYYY-MM-DD). Non-projected events compare eventDate; projected events match when dateWindow overlaps the requested range.
- `status` 'confirmed' | 'estimated' | 'projected' | 'reported': Filter by event status: confirmed (company-stated date), estimated (source-derived specific date), projected (cadence-derived window), or reported (occurred).
- `page` integer: 1-based page number. Requires pageSize.
- `pageSize` integer: Page size (1-1000). Without it, a result over 1000 rows is rejected — paginate or narrow filters.

## Response `200`

Object containing a data array of company events plus pagination meta

- object
  - `data` object[], required
    - `companyFiscalIdentifier` string, nullable, required
    - `companyKey` string, required
    - `displayNameEnglish` string, nullable, required
    - `sector` string, nullable, required
    - `headquartersCountryCode` string, nullable, required
    - `marketCapUsd` number, nullable, required
    - `primaryListing` object, nullable, required
      - `ticker` string, nullable, required
      - `exchangeCode` string, nullable, required
      - `exchangeName` string, nullable, required
      - `operatingMic` string, nullable, required
    - `eventType` 'earnings', required
    - `eventRole` 'financial_results_release' | 'earnings_call_for_results' | 'periodic_financial_report' | 'scheduled_trading_or_revenue_update', required: Function of the event within its type, in the producer's vocabulary — e.g. financial_results_release, earnings_call_for_results, periodic_financial_report, scheduled_trading_or_revenue_update.
    - `title` string, nullable, required
    - `fiscalYear` integer, nullable, required
    - `fiscalQuarter` 1 | 2 | 3 | 4 | null, nullable, required
    - `periodLabel` string, nullable, required: Period label rendered from the period's fiscal year, quarter and span; a dual-year label stays dual-year.
    - `periodType` 'quarterly' | 'semi_annual' | 'ytd' | 'annual' | 'transition' | 'null', nullable, required
    - `periodDuration` object, nullable, required: Actual span reported by the company, rather than the canonical calculation duration used by Financials.
      - `amount` integer, required
      - `unit` 'day' | 'week' | 'month' | 'year', required
    - `reportDate` string, date, nullable, required: End date of the reported fiscal period, matching the Financials reportDate convention.
    - `eventStatus` 'confirmed' | 'estimated' | 'projected' | 'reported' | 'null', nullable, required: confirmed = company-stated date, estimated = source-derived specific date, projected = cadence-derived window, reported = occurred.
    - `eventDate` string, date, required
    - `dateWindow` object, nullable, required: Non-null iff eventStatus=projected.
      - `start` string, date, required
      - `end` string, date, required
    - `eventSession` 'before_open' | 'during_market' | 'after_close' | 'null', nullable, required: Market session of the event on the company's primary listing venue: stated by the source, or derived from the venue's trading hours when only an exact time is known. Null when neither is available.
    - `eventTime` string, time, nullable, required
    - `eventTimezone` string, nullable, required: Canonical IANA timezone name for eventTime.
    - `eventDatetimeUtc` string, date-time, nullable, required
    - `eventId` string, nullable, required
    - `eventGroupId` string, nullable, required
  - `meta` object, required
    - `page` integer, required
    - `pageSize` integer, required
    - `totalCount` integer, required
    - `returnedCount` integer, required
    - `hasMore` boolean, required
    - `nextPage` integer
    - `publicationVersion` string, required

## Other responses

- `400`: Bad Request
- `403`: Company not available on the free trial
- `404`: Not Found
- `429`: Rate limit exceeded
- `500`: Calendar data temporarily unavailable
- `503`: Company directory temporarily unavailable

## Changes

- **2026-07-26** `5e2c5deea9a5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fiscal/apis/fiscal-api/changes/v1/events-calendar/get.md)

---

[API](https://skmtc.dev/fiscal/apis/fiscal-api.md) - [All operations](https://skmtc.dev/fiscal/apis/fiscal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fiscal/apis/fiscal-api/revisions/85026fdfc8b8?raw)
