Skip to main content
This guide sends a schedule for one delivery day in Germany and follows it to the market’s confirmation. In the Netherlands, you do the same steps with the Dutch identifiers from the Core API. The Dutch market accepts only internal, external and foreign series. Engrate does not send production or consumption series to TenneT. You need an API key (see Authentication), and your organization must be connected to the market. Until it is, creating a schedule returns 404 Organization is not configured.
1

Build the series

One series per flow. Each series has one value in MW per quarter-hour of the delivery day, starting at local midnight: 96 values, or 92 and 100 on the days daylight saving time starts and ends.
schedule.json
This series sells energy from your party (11XDE-EXAMPLE--A) to a counterparty in the 50Hertz area. The Schedule model gives the values of tso. The Schedule series model gives the series types. The example shows two of the 96 values. This script writes the whole day to schedule.json, with the same 10.5 MW in each quarter-hour, and counts the quarter-hours from local midnight, so it also works on the days daylight saving time starts and ends:
make_schedule.py
2

Send it

The response gives the schedule_uid. A 400 or 422 response says what is wrong with the request, such as a missing quarter-hour or two series for the same flow.Engrate now sends revision 1 to the Scheduling Area Responsible.
3

Follow the revision

The status of the revision moves from created to submitted, then to the market’s answer, such as ack_positive. The Schedule version model lists all statuses.
4

Read the series state

For each series, match_status says whether it matches your counterparty’s series, and confirmation gives the values the Scheduling Area Responsible will use. A series stays not_checked until the Scheduling Area Responsible matches it. See Matching.
5

Change it

To change the schedule, post the whole day again with the new values. Engrate sends a new revision. If a series does not match, see Handle a mismatch.