What Does a GTFS Calendar Exception Change?
From the earlier reference collection. Read the current software blog.
A date-specific GTFS calendar exception adds or removes a service identifier on a particular date, modifying the regular weekday pattern.
A regular rule can have exceptions
A recurring weekday rule is a compact way to describe service over a date range. Real calendars also include holidays, special events, or other dates when the normal pattern does not apply. A GTFS calendar exception records a date-specific change to a service identifier.
The exception changes whether that identifier is active on a calendar date. It does not by itself rewrite every trip time, change a route’s stops, or say that all services operate differently on the same date.
Addition and removal have different effects
Suppose service S runs on weekdays. If a particular Saturday has an addition for S, trips tied to S can be active that day even though Saturday is not included in the weekday pattern. If a Tuesday has a removal for S, its trips are inactive that Tuesday even though the regular rule includes Tuesdays.
The result depends on both the service identifier and the exact date. An addition for service T does not activate service S, and an exception for one holiday does not imply the same treatment for another. GTFS documents these date-specific calendar changes in calendar_dates. [GTFS schedule reference](https://gtfs.org/documentation/schedule/reference/)
Evaluate the chosen date
A reader or program should first identify the trip’s service identifier, then evaluate the regular calendar rule for the requested service date. Next, check for a matching date-specific exception and apply its add-or-remove meaning. Only then should the program decide whether the trip belongs in the day’s results.
For example, if a service is ordinarily active Mondays through Fridays but is removed on Monday, October 12, the weekday match alone is insufficient. If another service identifier is added on that date, only trips assigned to that other identifier are affected.
Explain the exception in useful terms
A schedule interface can show a concise note such as “Weekday service modified on this date” and identify the relevant route or service when that information is available. Avoid translating every exception into a broad claim like “holiday schedule” unless the data supports that conclusion.
The exception is a precise instruction about one service and one date. Reading it together with the recurring calendar prevents both false departures and missing trips, particularly when service patterns differ across routes.