Getting Started with Schedule Service

Schedule Service is an open-source, modular service that automatically populates schedules for FAST Engine channels. It pulls content metadata and assembles program schedules stored in AWS DynamoDB, which FAST Engine then reads to drive linear channel playout. Available as a managed service in Eyevinn Open Source Cloud.

Prerequisites

  • An Eyevinn OSC account (free trial or paid plan)
  • An AWS account with DynamoDB access (you will need an IAM user with dynamodb:* permissions)
  • A running FAST Channel Engine instance that reads from the same DynamoDB table

Step 1: Create AWS DynamoDB credentials

In your AWS account:

  1. Create an IAM user with programmatic access
  2. Attach the AmazonDynamoDBFullAccess managed policy (or a least-privilege policy with dynamodb:GetItem, dynamodb:PutItem, dynamodb:Scan, dynamodb:Query, dynamodb:UpdateItem, dynamodb:DeleteItem)
  3. Note the Access Key ID and Secret Access Key
  4. Choose or create an AWS Region where your DynamoDB tables will live (e.g. eu-north-1)

Step 2: Create a Schedule Service instance

Navigate to the Schedule Service in the OSC web console. Click Create schedule-service and fill in:

Field Description
Name A unique name for this instance
TablePrefix Prefix applied to all DynamoDB table names (e.g. mychannels)
AwsAccessKeyId IAM Access Key ID
AwsSecretAccessKey IAM Secret Access Key
AwsRegion AWS Region (e.g. eu-north-1, us-east-1)

Click Create. Once the instance is running, the service exposes a REST API for managing channel schedules.

Step 3: Configure schedules via the API

The Schedule Service exposes a REST API at your instance URL. Use it to add VOD assets to the channel schedule:

SCHEDULE_URL=https://myschedule.eyevinn-schedule-service.auto.prod.osaas.io

# Add a VOD asset to a channel's schedule
curl -X POST "${SCHEDULE_URL}/api/v1/schedules/mychannel" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Big Buck Bunny",
    "start_time": "2026-04-19T10:00:00.000Z",
    "end_time": "2026-04-19T10:10:00.000Z",
    "duration": 596000,
    "asset_url": "https://example.com/vod/bbb.m3u8"
  }'

Step 4: Connect to FAST Channel Engine

Point your FAST Engine instance at the Schedule Service API so it reads the populated schedules:

SCHEDULE_URL=https://myschedule.eyevinn-schedule-service.auto.prod.osaas.io

osc create eyevinn-fast-engine myfastchannel \
  -o ChannelsConfigUrl="${SCHEDULE_URL}/api/v1/channels" \
  -o ScheduleServiceUrl="${SCHEDULE_URL}"

The FAST Engine polls the schedule on each playlist request and stitches VOD content into a continuous linear HLS stream.

CLI usage

osc create eyevinn-schedule-service myschedule \
  -o name="myschedule" \
  -o tablePrefix="mychannels" \
  -o awsAccessKeyId="AKIAIOSFODNN7EXAMPLE" \
  -o awsSecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
  -o awsRegion="eu-north-1"

Resources