List Calendar Events
Returns a paginated list of scheduled Nordic financial calendar events — earnings reports (Q1 / H1 / FY etc.), earnings calls, trading updates, AGMs/EGMs, capital markets days, conference presentations, dividends, and M&A milestones (announcements, offer deadlines, completions).
Each event is tied to a single company and is sorted by scheduled_at ascending (soonest first). scheduled_at is always in UTC; for local-time display use the local_time field (scheduled_at rendered in the issuer’s timezone, ISO 8601 with offset). Prefer local_time for the calendar date — a day-precision event is stored at local midnight, so its UTC scheduled_at falls on the previous day for ahead-of-UTC (Nordic) zones. title and description are always English regardless of the source-article language.
Dividends
Each dividend row carries a nested dividend object with ex_date, record_date, payment_date, declaration_date, and kind. scheduled_at follows the priority ex-date > record-date > payment-date — whichever is explicitly stated, in that order. dividend is null for non-dividend events.
Default window
By default only upcoming events are returned, from today onward by the issuer’s local date (so events scheduled for today stay listed throughout the day). Pass scheduled_after or scheduled_before to query a specific window — this also surfaces past events, which carry status: published (events flip from scheduled to published ~2 days after their date). An updated_after sync walk also lifts this floor, since sync must cover past events too.
Status
List endpoints return scheduled + published events and exclude cancelled by default. Pass the status parameter to filter (status=cancelled to retrieve cancellations, or scheduled/published to narrow). Discarded events are never returned. Note: a scheduled → cancelled transition is not surfaced by default updated_after polling — to track cancellations, poll with status=cancelled or subscribe to cancellation alerts.
Filtering
Compose ticker, country, exchange, index, sector, and event_type to narrow the result set. All filters are intersected.
Polling for updates
Use updated_after with the timestamp of your last completed sync to fetch only events that have changed since. Results are then ordered by updated_at ascending and cursor-paginated: follow pagination.next_cursor, resending the same updated_after, until it is null. Advance your stored timestamp only once every page is drained. The walk covers the full served dataset, including past events — a first sync from an old watermark returns history, not just upcoming events. Updates to past events that occurred before your currently stored watermark are not replayed; reset the watermark (or start a fresh sync) to backfill them.
Pagination
List responses include pagination.next_cursor when more pages are available. Pass it back as the cursor parameter on the next request. Cursors are opaque — do not parse them.
Authorizations
API Key authentication using Bearer token
Query Parameters
Number of events to return per page (default 25, max 100).
Opaque pagination cursor returned as pagination.next_cursor from a previous response. When continuing an updated_after sync, resend the same updated_after value alongside it.
Comma-separated list of fields to include in the response. Reduces payload size. id is always included. Available fields: title, description, event_type, status, date_precision, fiscal_period, scheduled_at, timezone, local_time, scheduled_at_changed_at, source_article_id, company_id, country, dividend, updated_at.
ISO 8601 datetime. Returns only events updated after this timestamp. Use for incremental sync: store the timestamp of your last completed sync and pass it on the next request. Results are ordered by updated_at ascending and cursor-paginated — drain pagination.next_cursor before advancing your stored timestamp. Passing this parameter also disables the default upcoming-only floor, so past events with newer updates are included.
Filter by company stock ticker (e.g. VOLV-B). Also accepts exchange-suffixed form (e.g. VOLV-B.ST).
Filter to a single company by its id (as returned by the companies endpoints). Complements ticker; use this to reach companies without a stock listing.
Filter by country using ISO 3166-1 alpha-2 code (e.g. SE, DK, NO, FI, IS). Comma-separated for multiple (e.g. SE,NO). Case-insensitive.
Filter by exchange using ISO 10383 Market Identifier Code (e.g. XSTO for Nasdaq Stockholm, XCSE for Nasdaq Copenhagen, XHEL for Nasdaq Helsinki, XOSL for Oslo Børs). Case-insensitive.
Filter by stock index id or symbol (e.g. OMXS30, OMXC25, OMXH25, OBX). Returns events only for companies in that index. Case-insensitive for symbols.
Filter by company sector. Must exactly match one of the standard sector names: Communication Services, Consumer Discretionary, Consumer Staples, Energy, Financials, Health Care, Industrials, Information Technology, Materials, Real Estate, Utilities.
Filter by event type. Accepts a single value or a comma-separated list for multiple types.
earnings_report, earnings_call, agm, egm, dividend, capital_markets_day, trading_update, conference_presentation, ma_announcement, ma_offer_deadline, ma_completion, listing, delisting Filter by lifecycle status. Omitted: returns scheduled + past published events and excludes cancelled. Pass cancelled to retrieve cancellations, or scheduled/published to narrow.
scheduled, published, cancelled ISO 8601 datetime. Only events at or after this time. Passing this parameter disables the default upcoming-only floor, allowing past events to be returned.
ISO 8601 datetime. Only events before this time. Passing this parameter disables the default upcoming-only floor, allowing past events to be returned.
Restricts to events for companies in a single watchlist, identified by its id (from the List Watchlists endpoint). An unknown id returns no events. Requires read:watchlist scope.
Response
Calendar events retrieved successfully
Present and true when your plan restricted the result to its upcoming-events window, so the result may be incomplete. Filters narrow within that window rather than searching the full calendar, so on a limited plan an issuer filter often returns an empty list. Absent when your plan applies no restriction.
true