> ## 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.