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

# Spacecraft Schedule File (SSF)

> Read, validate, and exchange flat KVN-encoded spacecraft activity schedules covering ground passes, eclipses, apsides, node crossings, and SAA transits

> For the complete documentation index, see [llms.txt](/llms.txt).

The Spacecraft Schedule File (SSF) is a flat ASCII text format that lists every operationally relevant activity for a spacecraft over a chosen window — ground station passes, eclipse entries and exits, apsis crossings, node crossings, and South Atlantic Anomaly (SAA) transits — in a single chronologically sorted document. The format is derived from the CCSDS 902.1 Simple Schedule data model and uses Keyword-Value Notation (KVN) so the file is readable by humans and trivially parsed by downstream tooling.

VALAR emits SSF files from the **Export Schedule** dialog on the [Burn Plan Timeline](/features/burn-plan) and the passes timeline.

## Key Components

An SSF file is composed of three KVN blocks separated by blank lines:

* **Header Block**: format version, free-form comments, generation timestamp, originator
* **Schedule Metadata Block**: spacecraft identifier and the inclusive UTC window the schedule covers
* **Activity Blocks**: one block per activity, sorted ascending by start epoch, each containing the activity type, start and (when applicable) stop epochs, and any type-specific metadata keywords

## Header Block

The Header Block opens the file and identifies the document and its origin.

| Keyword              | Description                                                                                | Example                             |
| -------------------- | ------------------------------------------------------------------------------------------ | ----------------------------------- |
| **CCSDS\_SSF\_VERS** | The format version. Always `1.0` for VALAR-emitted files.                                  | `1.0`                               |
| **COMMENT**          | Optional free-form comment lines. Multiple `COMMENT` lines may appear.                     | `Generated for operations handover` |
| **CREATION\_DATE**   | UTC timestamp at which the file was generated, in ISO-8601 format.                         | `2026-04-13T08:00:00.000Z`          |
| **ORIGINATOR**       | The system or organization that produced the file. Always `VALAR` for VALAR-emitted files. | `VALAR`                             |

VALAR also writes operational `COMMENT` lines that record how a schedule was produced. When a spacecraft's orbital events were computed from a lower-accuracy public [TLE](/file-formats/tle) (see [Orbit age](/features/orbit-age#degraded-level)), the file carries `COMMENT Orbital events derived from public TLE - indicative timing`, so a downstream reader treats their exact timing as indicative. When no fresh orbit was available at all, the file instead carries `COMMENT Orbital events unavailable - no fresh state vector`.

## Schedule Metadata Block

The Schedule Metadata Block follows the Header and frames the activities that follow with the spacecraft and time window they belong to.

| Keyword             | Description                                             | Example                |
| ------------------- | ------------------------------------------------------- | ---------------------- |
| **SPACECRAFT\_ID**  | The spacecraft this schedule belongs to.                | `MATTIA`               |
| **SCHEDULE\_START** | Inclusive start of the schedule window in UTC ISO-8601. | `2026-04-13T00:00:00Z` |
| **SCHEDULE\_STOP**  | Inclusive end of the schedule window in UTC ISO-8601.   | `2026-04-15T00:00:00Z` |

## Activity Blocks

Each activity is its own block containing `ACTIVITY_TYPE`, `ACTIVITY_START`, an optional `ACTIVITY_STOP`, and any type-specific metadata.

| Keyword                | Description                                                                                   |
| ---------------------- | --------------------------------------------------------------------------------------------- |
| **ACTIVITY\_TYPE**     | The activity category (see [Activity Types](#activity-types) below).                          |
| **ACTIVITY\_START**    | UTC start epoch of the activity in ISO-8601.                                                  |
| **ACTIVITY\_STOP**     | UTC stop epoch of the activity in ISO-8601. **Optional** — see below.                         |
| Type-specific metadata | Additional keywords that depend on `ACTIVITY_TYPE` (for example `DURATION_S` on `SAA_ENTRY`). |

**Sorting invariant.** Activities appear in ascending order by their `ACTIVITY_START` epoch regardless of type. A ground pass and an eclipse entry that fall in the same minute are interleaved by start time, not grouped by category.

**Optional `ACTIVITY_STOP`.** The `ACTIVITY_STOP` keyword is present for activities that have a duration (ground passes, umbra and penumbra bands, SAA transits) and is omitted for instantaneous events (apsis crossings, node crossings, and `SAA_EXIT`). When `ACTIVITY_STOP` is omitted you can treat the activity as a single-epoch marker at `ACTIVITY_START`.

## Activity Types

The `ACTIVITY_TYPE` keyword takes one of exactly 11 case-sensitive values:

| Type                 | Description                                                                                                                                             | Has `ACTIVITY_STOP`? |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| **GROUND\_PASS**     | Ground station visibility pass (AOS to LOS).                                                                                                            | Yes                  |
| **PENUMBRA\_ENTRY**  | Spacecraft enters Earth's penumbra (partial shadow).                                                                                                    | Yes                  |
| **UMBRA\_ENTRY**     | Spacecraft enters Earth's umbra (full shadow).                                                                                                          | Yes                  |
| **UMBRA\_EXIT**      | Spacecraft exits Earth's umbra.                                                                                                                         | Yes                  |
| **PENUMBRA\_EXIT**   | Spacecraft exits Earth's penumbra.                                                                                                                      | Yes                  |
| **SAA\_ENTRY**       | Spacecraft enters the South Atlantic Anomaly. Carries the band transit duration as the `DURATION_S` metadata keyword and a synthesized `ACTIVITY_STOP`. | Yes                  |
| **SAA\_EXIT**        | Spacecraft exits the South Atlantic Anomaly. Point event; carries no metadata. The transit duration is recorded on the paired `SAA_ENTRY` activity.     | No                   |
| **PERIAPSIS**        | Spacecraft reaches closest approach to Earth.                                                                                                           | No                   |
| **APOAPSIS**         | Spacecraft reaches farthest point from Earth.                                                                                                           | No                   |
| **ASCENDING\_NODE**  | Spacecraft crosses the equatorial plane heading north.                                                                                                  | No                   |
| **DESCENDING\_NODE** | Spacecraft crosses the equatorial plane heading south.                                                                                                  | No                   |

## KVN Encoding

SSF uses a fixed Keyword-Value Notation:

* Each keyword occupies a 24-character left-justified column followed by `= ` and the value.
* Values are plain ASCII text encoded as UTF-8. There is no quoting or escaping.
* Blocks are separated by a single blank line.
* Within an activity block, type-specific metadata keywords appear in alphabetical order after `ACTIVITY_START` and `ACTIVITY_STOP`.

## Common Use Cases

* **Operations scheduling**: Hand a single file to flight controllers covering every contact, eclipse, and high-radiation transit for the upcoming window.
* **Automated handover**: Feed the schedule into ground-segment automation to pre-arm tracking, payload, and safe-mode logic at the right times.
* **Downstream tooling**: Consume the schedule from third-party planning tools or in-house scripts using any KVN parser without bespoke schema work.

<Info>
  Complete definition of the Simple Schedule data model is available in the [CCSDS 902.1-B-1 Simple Schedule](https://public.ccsds.org/Pubs/902x1b1.pdf) recommendation.
</Info>

## Worked Example

The example below shows a 2-day schedule for a single LEO spacecraft. It contains four representative activity blocks: a ground pass with an explicit stop, an umbra entry band, an instantaneous periapsis crossing, and an SAA entry carrying its `DURATION_S` metadata.

```
CCSDS_SSF_VERS          = 1.0
COMMENT Generated for operations handover
CREATION_DATE           = 2026-04-13T08:00:00.000Z
ORIGINATOR              = VALAR

SPACECRAFT_ID           = MATTIA
SCHEDULE_START          = 2026-04-13T00:00:00Z
SCHEDULE_STOP           = 2026-04-15T00:00:00Z

ACTIVITY_TYPE           = GROUND_PASS
ACTIVITY_START          = 2026-04-13T03:42:18Z
ACTIVITY_STOP           = 2026-04-13T03:51:04Z
GROUND_STATION_ID       = SVALBARD-01
MAX_ELEVATION_DEG       = 72.4

ACTIVITY_TYPE           = UMBRA_ENTRY
ACTIVITY_START          = 2026-04-13T04:18:32Z
ACTIVITY_STOP           = 2026-04-13T04:53:11Z

ACTIVITY_TYPE           = PERIAPSIS
ACTIVITY_START          = 2026-04-13T05:11:47Z

ACTIVITY_TYPE           = SAA_ENTRY
ACTIVITY_START          = 2026-04-13T06:24:09Z
ACTIVITY_STOP           = 2026-04-13T06:32:48Z
DURATION_S              = 519.0
```

## Related Pages

* [Burn Plan Timeline](/features/burn-plan): The page where the **Export Schedule** dialog produces `.ssf` files for a chosen spacecraft and window.
* [OEM (Orbit Ephemeris Message)](/file-formats/oem): Time-series state vectors for the same spacecraft, complementary to a schedule.
* [OPM (Orbit Parameter Message)](/file-formats/opm): Single-epoch state vector exchange.
* [TDM (Tracking Data Message)](/file-formats/tdm): Raw tracking observations from ground sensors.
