> ## Documentation Index
> Fetch the complete documentation index at: https://docs.engrate.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Schedule Management API Overview

> Submit and track energy schedules across German and Dutch TSOs

The Schedule Management API provides a unified interface for submitting energy schedules to Transmission System Operators (TSOs) in Germany and the Netherlands.

You work with a single API regardless of the target market. The platform handles protocol differences, data format conversion, and validation rules for each TSO automatically.

## Core concepts

A [Schedule](/api-reference/schedule-management/models/schedule) represents one delivery date for one TSO. Each submission creates a [Schedule Version](/api-reference/schedule-management/models/schedule-version), and re-submitting for the same TSO + date increments the version. Each version contains one or more [Schedule Series](/api-reference/schedule-management/models/schedule-series) — the individual time series (internal trades, external trades, production, consumption) with quarter-hourly interval data.

```mermaid theme={null}
%%{init: {'theme': 'base'}}%%
flowchart LR
    subgraph submission["Schedule Submission"]
        direction TB
        create("POST /schedules")
        validate("Validate EIC codes,\nintervals, gate closure")
        build("Build ESS XML (DE)\nor CIM XML (NL)")
        send("Submit via AS4\nto TSO")
    end
    subgraph tracking["Status Tracking"]
        direction TB
        nrr("NRR delivery\nconfirmation")
        ack("ACK from TSO")
        cnf("CNF acceptance\nor rejection")
        ano("ANO anomaly\nreport")
    end
    create --> validate
    validate --> build
    build --> send
    send --> nrr
    nrr --> ack
    ack --> cnf
    cnf --> ano
```

## Supported markets

| Market           | TSOs                                    | Protocol                | Gate closure                   |
| ---------------- | --------------------------------------- | ----------------------- | ------------------------------ |
| Germany (DE)     | 50Hertz, Amprion, TenneT DE, TransnetBW | ESS XML via Mako365 AS4 | DA: D-1 14:30 CET              |
| Netherlands (NL) | TenneT NL                               | CIM XML via MMC Hub     | DA: D-2 10:00 to D-1 15:00 CET |

## Versioning

Re-submitting for the same TSO + delivery date automatically creates a new version. The TSO message ID is reused with an incremented `_v{N}` suffix. Previous versions remain accessible and are annotated with `is_active=false` when a newer version is accepted.

## Anomaly reconciliation

After submission, the TSO may send ANO (anomaly) messages indicating mismatches between your values and the counterparty's values. Use the reconciliation endpoint to get a side-by-side comparison with per-interval deltas.

For German schedules, counterparties with exchange priority (Börsenvorrang) are flagged — their values may be imposed by the TSO per Bilanzkreisvertrag clause 12.b.

<Tip>
  Read the [Schedule Lifecycle](/api-reference/schedule-management/schedule-lifecycle) concept guide for a deep dive into how schedules move from creation through TSO acceptance to anomaly reconciliation.
</Tip>
