QVeris
Financial Events Guide

Free Earnings Calendar API
for Reliable Event Data

Choose an earnings calendar by confirmed event times, estimate coverage, revisions, history, and usage rights—not by symbol count alone.

Hand-drawn free earnings calendar API workflow showing date and symbol queries, normalization, estimates, market timing, revisions, and application uses

TL;DR

An earnings calendar API is a changing schedule of expected corporate events, not a permanent list of dates. A production record should show who is reporting, which fiscal period the event covers, whether the date and session are estimated or confirmed, when the schedule last changed, and what source supports it. The API is most useful for planning alerts, workload, and portfolio monitoring before results are released.

A date is not enough

Keep the exchange timezone, before-market or after-market flag, confirmation status, and last-updated timestamp with every event.

Estimates change

EPS and revenue consensus can change until release. Snapshot estimates when alerts, event studies, or backtests depend on earlier information.

Fields a useful earnings calendar API should return

At minimum, expect a stable company identifier, ticker, exchange, event date, event time or session, fiscal quarter, fiscal year, currency, confirmation status, and updated timestamp. A date without timezone semantics is unsafe: midnight UTC can become the prior local date, while “after market close” describes a session rather than an exact clock time.

For analysis, look for estimated and actual EPS, estimated and actual revenue, the number of contributing analysts, surprise values, and source provenance. Keep raw and normalized values separately. Providers may define adjusted EPS, diluted EPS, consensus, and surprise percentages differently, so field names alone do not guarantee comparable numbers.

Field groupWhat to retainWhy it matters
IdentityProvider ID, ticker, exchange, company nameTickers change and can be reused.
TimingDate, timezone, session, confirmation, updated timePrevents late or misdated alerts.
Event statusEstimated, confirmed, rescheduled, postponed, cancelled, reportedLets applications update or withdraw scheduled work safely.
Fiscal contextFiscal year, quarter, period end, report typePrevents a calendar event from being assigned to the wrong quarter.
ResultsEPS and revenue estimates, actuals, currency, unitsSupports consistent surprise calculations.
Change historyPrior dates, sessions, statuses, source, and observation timesSupports audit, schedule-quality analysis, and point-in-time research.

How to test coverage, timing, and revisions

Test more than large US companies. Query ADRs, newly listed issuers, firms with non-calendar fiscal years, multiple share classes, and symbols that changed. Compare upcoming events with company investor-relations pages or exchange notices, then compare reported values with filings. Record whether an event is estimated, confirmed, postponed, cancelled, or reported.

Measure freshness through changes, not a marketing label. Poll a representative week and log when dates, sessions, estimates, and actuals first appear and when they change. A provider can update quickly after release yet still publish an unreliable schedule days earlier. Historical endpoints should also preserve the estimate visible before the announcement rather than attaching today’s consensus to an old event.

Create a stable event key

Combine legal company identity, fiscal period, event type, and provider event ID. Do not key only by date: the date may change, and one issuer may schedule several events on the same day.

Store schedule observations instead of overwriting

Append each observed date, session, status, source, and observation time. A current view can show the latest confirmed schedule, while the history explains how often and how late the provider changed it.

Normalize sessions with exchange calendars

Interpret BMO, AMC, and during-market labels in the listing exchange timezone. Use the exchange trading calendar for holidays, half days, and daylight-saving transitions rather than applying one global clock rule.

Design idempotent alerts

Schedule, update, postpone, cancel, and complete alerts using the stable event key. Repeated polls should not create duplicate notifications, while material schedule changes should update the existing event visibly.

Separate calendar ingestion from results ingestion

The calendar service plans work before publication; a reported-results service confirms actual values afterward. Keep their polling frequencies, completion rules, latency metrics, and error states separate.

Measure schedule reliability as an SLA

Across several reporting cycles, measure company coverage, first-seen lead time, confirmation lead time, reschedule detection delay, cancellation accuracy, and duplicate-event rate. Segment results by market capitalization, exchange, and region. A calendar that looks complete on announcement day may still be unsuitable if it discovers smaller issuers too late for research preparation.

Build an earnings-event workflow that survives schedule changes

An earnings calendar becomes operationally useful only when the application reacts differently to discovery, confirmation, rescheduling, publication, and completion. Treat the calendar as a versioned event stream. Each observation should update the same stable event record, while every material change remains available for audit and point-in-time analysis.

1. Discover and prepare

When an estimated date first appears, create a provisional event and schedule low-frequency checks. Attach the issuer, fiscal period, expected session, source, and first-seen time. Research preparation can begin, but user-facing copy should still label the date as unconfirmed.

2. Confirm and tighten monitoring

When the issuer or provider confirms the date, preserve the prior estimate, mark the confirmation source and time, and increase polling as the release window approaches. If the session changes from before-market to after-market, update the existing alert instead of creating a second event.

3. Ingest the release once

After publication, acquire actual EPS and revenue through a separate results workflow. Use an idempotency key so repeated provider responses cannot send duplicate alerts. Partial releases should remain open until required fields arrive or a documented timeout policy closes the event.

4. Complete with evidence

Store the actual-value source, source timestamp, retrieval time, estimate snapshot used for comparison, units, currency, and any later corrections. Completion should mean the required evidence is present—not merely that the expected clock time has passed.

Worked surprise example. Assume the last pre-release snapshot contains EPS consensus of $1.10 and revenue consensus of $2.42 billion. The company reports EPS of $1.24 and revenue of $2.48 billion. EPS surprise is ($1.24 − $1.10) ÷ |$1.10| = 12.7%; revenue surprise is ($2.48bn − $2.42bn) ÷ $2.42bn = 2.5%. Store the raw differences as well as the percentages, together with the estimate timestamp, analyst count, currency, unit scale, and whether the figures are GAAP or adjusted. When the consensus is zero or negative, percentage surprise can be unstable or counterintuitive, so the raw difference and calculation method should remain visible.

Use QVeris to find earnings calendar capabilities

QVeris helps AI agents discover, inspect, and call earnings-calendar and corporate-event tools. An agent can compare date-range inputs, company identifiers, event states, timezone semantics, fields, and limits before routing a request. QVeris simplifies access; the application still owns event identity, schedule versioning, exchange-calendar logic, alert idempotency, and source verification.

FAQ

Is there a completely free earnings calendar API?

Some providers offer public endpoints or a free plan, but quotas, history, exchange coverage, delayed fields, and commercial rights vary. Verify the current terms before production use.

What does BMO or AMC mean?

BMO means before market open and AMC means after market close. They are session labels, not precise timestamps, and should be interpreted in the relevant exchange timezone.

Can I backtest earnings events with a free API?

Only if the data preserves the schedule and consensus known at each historical point. Latest-only records create look-ahead bias.

How often should an earnings calendar refresh?

Refresh distant events less often and increase frequency as the expected date approaches. Confirmed events and active earnings-season watchlists deserve tighter polling than unconfirmed dates months away.

What should happen when a company changes the date?

Append the new schedule observation, retain the prior value, update existing alerts, and explain the changed status. Do not delete and recreate the event under a new identity.

Can one company have several earnings events?

Yes. Results releases, conference calls, guidance calls, and investor events can share a date. Use event type and stable event ID rather than assuming one row per company per day.

Should estimates be part of the calendar record?

They can enrich the event, but store versioned estimates separately and reference the selected snapshot. A changing consensus should not silently mutate a scheduling record.

References and next steps