GTFS Express Open GTFS Express

service_without_service_days: service that never runs Error

A calendar.txt service has every weekday set to 0 and no date added in calendar_dates.txt, so its trips never run. Common causes and how to fix it.

Updated on 21 October 2026

What this rule means

In calendar.txt, each service_id states the days of the week it runs (monday to sunday, 1 or 0) between start_date and end_date. Exceptions in calendar_dates.txt add a date (exception_type = 1) or remove one (exception_type = 2). The rule fires when a service has all seven days set to 0 and no exception adds a date to it: it runs on no day at all.

Severity: error.

Why it matters

Every trip in trips.txt carrying that service_id disappears from the published timetable. If those trips are meant to run (a public holiday service, a school holiday service), the real service is incomplete; if not, the feed holds dead data that gets in the way of reading and maintaining it.

Common causes

How to fix it

Decide whether the service should run. If it should, set the right days in calendar.txt or add its dates to calendar_dates.txt with exception_type = 1. If it is no longer used, delete it from calendar.txt together with the trips that use it (and their stop_times), or move those trips to a service that runs. A service defined only by dates can also live without a row in calendar.txt, in calendar_dates.txt alone.

In GTFS Express, the validation report names the service_id concerned. "Fix one by one" opens its row of calendar.txt in the editor; each change is a retouche in the draft, and "Re-validate" confirms that the service runs.

Example

service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date
HOLIDAY,0,0,0,0,0,0,0,20260901,20270831

There is no HOLIDAY row in calendar_dates.txt. Adding the public holidays of the period fixes the error:

service_id,date,exception_type
HOLIDAY,20261101,1
HOLIDAY,20261111,1
HOLIDAY,20261225,1

See also the guide School holidays and public holidays in GTFS.