---
title: "List Company Calendar Events"
method: GET
path: "/api/v1/companies/{identifier}/calendar_events"
tags: ["Companies"]
---

# List Company Calendar Events

`GET /api/v1/companies/{identifier}/calendar_events`

## Request

- Base URL: `https://nordicfinancialnews.com`
- URL: `https://nordicfinancialnews.com/api/v1/companies/{identifier}/calendar_events`
- Auth: HTTP bearer

Returns upcoming scheduled calendar events for a single company (earnings reports, AGMs/EGMs, dividends, and more), ordered by `scheduled_at` ascending. This is the same contract as `GET /api/v1/calendar_events`, scoped to a single company by the path.

## Default window
By default only upcoming events are returned; `scheduled_after`/`scheduled_before` or `updated_after` lift that floor, the same way they do on the flat resource.

## Plan availability
Not available on plans with a capped calendar. Use `GET /api/v1/calendar_events` for the upcoming-events preview instead.

## Caching
Requests with `updated_after` are not cached: they return `Cache-Control: no-cache, no-store` and no `ETag`.

## Query parameters

- `limit` integer
- `cursor` string
- `fields` string
- `updated_after` string
- `status` 'scheduled' | 'published' | 'cancelled'
- `event_type` 'earnings_report' | 'earnings_call' | 'agm' | 'egm' | 'dividend' | 'capital_markets_day' | 'trading_update' | 'conference_presentation' | 'ma_announcement' | 'ma_offer_deadline' | 'ma_completion' | 'listing' | 'delisting'
- `scheduled_after` string
- `scheduled_before` string

## Headers

- `If-None-Match` string
- `If-Modified-Since` string

## Response `200`

Company calendar events retrieved successfully

- object
  - `calendar_events` CalendarEventSummary[], required
    - `id` string, required: Unique calendar event identifier
    - `title` string, required: Event title as reported by the issuer or exchange
    - `description` string, nullable: Optional long-form description
    - `event_type` 'earnings_report' | 'earnings_call' | 'agm' | 'egm' | 'dividend' | 'capital_markets_day' | 'trading_update' | 'conference_presentation' | 'ma_announcement' | 'ma_offer_deadline' | 'ma_completion' | 'listing' | 'delisting', required: The kind of calendar event
    - `status` 'scheduled' | 'published' | 'cancelled', required: Event lifecycle status. `scheduled` is upcoming; `published` means the event has occurred (events flip ~2 days after their date); `cancelled` means the issuer withdrew it. List endpoints return `scheduled` + `published` and exclude `cancelled` by default. Pass the `status` query parameter to filter (e.g. `status=cancelled`).
    - `date_precision` 'exact' | 'day' | 'month': Granularity of `scheduled_at`. `exact` = timestamp known; `day` = date only; `month` = only the month is known. Consumers that need a date should still use `scheduled_at` (set to a representative point inside the window).
    - `fiscal_period` string, nullable: Fiscal period slug (required for report-type events, e.g. `q3_2026`, `fy_2025`). For a split fiscal year the year is the one in which the fiscal year ends (2025/26 → `fy_2026`).
    - `scheduled_at` string, date-time, required: Scheduled date/time in UTC (ISO 8601). For the local calendar date use `local_time` instead: a day-precision event is stored at local midnight, so its UTC instant falls on the previous day for ahead-of-UTC (Nordic) zones.
    - `timezone` string: The issuer's IANA timezone, used to interpret `scheduled_at`. Resolved from the source article, falling back to the company's country zone.
    - `local_time` string, date-time: `scheduled_at` rendered in the issuer's `timezone` (ISO 8601 with offset). Use this for the correct local date/time. Its date is right even for day-precision events.
    - `scheduled_at_changed_at` string, date-time, nullable: When `scheduled_at` last changed. Useful for change-feed consumers tracking date moves.
    - `source_article_id` string, nullable: ID of the article the event was extracted from. `null` when the article is not retrievable (not live, or removed), or when the event was first found on a company website. If a company website later supplied the date, this still names the original article, and `source` names the website. Best-effort: on the free plan it may reference an article your plan can't fetch (premium source or outside the age window).
    - `source` object, nullable: Who published the current date. `article` is a news article or company announcement. `company_website` is the issuer's own investor relations calendar. `null` when our editors set the date.
      - `type` 'article' | 'company_website'
      - `name` string, nullable: The publisher: the outlet that carried the article, or the issuer's investor relations site. `null` when the article is no longer available.
      - `url` string, nullable: The investor relations calendar page, for `company_website`. `null` for `article`.
      - `article_id` string, nullable: ID of the article, for `article`. Matches `source_article_id`. `null` when the article is no longer available, and for `company_website`.
    - `company_id` string, required: ID of the company this event relates to
    - `company` object, nullable: The issuer this event belongs to, inlined so a calendar can be rendered without a lookup per row. `id` is the same value as `company_id`. `null` only when the issuer is not published by this API.
      - `id` string: Unique company identifier
      - `name` string: Company name
      - `ticker` string, nullable: Primary stock ticker. `null` for an unlisted issuer.
    - `country` string, nullable: Country ISO 3166-1 alpha-2 code
    - `dividend` object, nullable: Dividend lifecycle dates. `null` for non-dividend events. `scheduled_at` follows the priority ex-date > record-date > payment-date, whichever is explicitly stated.
      - `ex_date` string, nullable: Ex-dividend date (YYYY-MM-DD). The market-event anchor: share price drops on this day.
      - `record_date` string, nullable: Record date (YYYY-MM-DD). Holders of record on this date receive the dividend.
      - `payment_date` string, nullable: Payment date (YYYY-MM-DD). When the cash is distributed to shareholders.
      - `declaration_date` string, nullable: Declaration / announcement date (YYYY-MM-DD). Metadata only, never used as the calendar anchor.
      - `kind` 'ordinary' | 'special': Tranche type. `ordinary` for the recurring/regular dividend; `special` for an extra/bonus/one-off dividend. When an issuer proposes both for the same date, they are returned as two separate events.
    - `coverage_event` object, nullable: The news event that covered this calendar event, once its issuer-local date has arrived. `null` when the date is in the future, no news event matches, or your plan can't access the matched event. `id` is the event's ID: fetch it with `GET /api/v1/events/{id}`. `url` is the Nordic Financial News web page (sign-in required), not the REST endpoint or the publisher's article. Computed when you read: it does not advance `updated_at`, so `updated_after` sync does not deliver coverage-only changes. Revalidate with `If-None-Match`.
      - `id` string: Unique event identifier
      - `title` string: Event title
      - `significance` 'notable' | 'routine': Editorial importance of the event. `notable` = front-page-worthy; `routine` = factual ledger record. Commentary is never matched.
      - `url` string: The event's page on Nordic Financial News
    - `updated_at` string, date-time: When the event was last updated (ISO 8601). Use with `updated_after` for polling
  - `pagination` object, required
    - `count` integer
    - `next_cursor` string, nullable

## Other responses

- `304`: Not Modified
- `403`: Company calendars are not available on this plan

---

[API](https://skmtc.dev/nordicfinancialnews/apis/nordic-financial-news-api.md) - [All operations](https://skmtc.dev/nordicfinancialnews/apis/nordic-financial-news-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nordicfinancialnews/apis/nordic-financial-news-api/revisions/aa48db8c82fc?raw)
