Timetables provide most of the TripPattern functionality. Each TripPattern may possess more than one Timetable when stop time updates are being applied: one for the scheduled stop times, one for each snapshot of updated stop times, another for a working buffer of updated stop times, etc. TODO OTP2 - Move this to package: org.opentripplanner.model - after as Entur NeTEx PRs are merged. - Also consider moving its dependencies in: org.opentripplanner.routing - The NEW Timetable should not have any dependencies to
| name | data type | description | 
|---|---|---|
| pattern | TripPattern | A circular reference between TripPatterns and their scheduled (non-updated) timetables. | 
| tripTimes | array of TripTimes | Contains one TripTimes object for each scheduled trip (even cancelled ones) and possibly additional TripTimes objects for unscheduled trips. Frequency entries are stored separately. | 
| frequencyEntries | array of FrequencyEntry | Contains one FrequencyEntry object for each block of frequency-based trips. | 
| serviceDate | ServiceDate | The ServiceDate for which this (updated) timetable is valid. If null, then it is valid for all dates. | 
| direction | Direction | The direction for all the trips in this pattern. | 
Example
{
  "pattern" : {
    "name" : "...",
    "route" : {
      "branding" : { },
      "agency" : { },
      "operator" : { },
      "shortName" : "...",
      "longName" : "...",
      "desc" : "...",
      "gtfsType" : 12345,
      "mode" : "TRAM",
      "url" : "...",
      "color" : "...",
      "textColor" : "...",
      "bikesAllowed" : "ALLOWED",
      "sortOrderSet" : true,
      "sortOrder" : 12345,
      "flexibleLineType" : "...",
      "name" : "...",
      "netexSubmode" : "...",
      "id" : { }
    },
    "mode" : "TRAM",
    "netexSubmode" : "...",
    "geometry" : {
      "closed" : true,
      "endPoint" : { },
      "dimension" : 12345,
      "empty" : true,
      "numPoints" : 12345,
      "geometryType" : "...",
      "coordinateSequence" : { },
      "length" : 12345.0,
      "boundaryDimension" : 12345,
      "startPoint" : { },
      "coordinates" : [ { }, { } ],
      "coordinate" : { },
      "boundary" : { },
      "ring" : true,
      "numGeometries" : 12345,
      "precisionModel" : { },
      "interiorPoint" : { },
      "rectangle" : true,
      "area" : 12345.0,
      "envelopeInternal" : { },
      "centroid" : { },
      "factory" : { },
      "SRID" : 12345,
      "simple" : true,
      "userData" : { },
      "envelope" : { },
      "valid" : true
    },
    "stops" : [ {
      "geometry" : { },
      "parentStation" : { },
      "platformCode" : "...",
      "name" : "...",
      "partOfStation" : true,
      "lon" : 12345.0,
      "firstZoneAsString" : "...",
      "description" : "...",
      "vehicleSubmode" : "...",
      "fareZones" : [ { }, { } ],
      "priority" : "PREFERRED",
      "timeZone" : { },
      "url" : "...",
      "code" : "...",
      "wheelchairBoarding" : "POSSIBLE",
      "lat" : 12345.0,
      "id" : { },
      "coordinate" : { },
      "vehicleType" : "GONDOLA"
    }, {
      "geometry" : { },
      "parentStation" : { },
      "platformCode" : "...",
      "name" : "...",
      "partOfStation" : true,
      "lon" : 12345.0,
      "firstZoneAsString" : "...",
      "description" : "...",
      "vehicleSubmode" : "...",
      "fareZones" : [ { }, { } ],
      "priority" : "PREFERRED",
      "timeZone" : { },
      "url" : "...",
      "code" : "...",
      "wheelchairBoarding" : "NOT_POSSIBLE",
      "lat" : 12345.0,
      "id" : { },
      "coordinate" : { },
      "vehicleType" : "COACH"
    } ],
    "direction" : "ANTICLOCKWISE",
    "scheduledTimetable" : {
      "pattern" : { },
      "tripTimes" : [ { }, { } ],
      "frequencyEntries" : [ { }, { } ],
      "serviceDate" : { },
      "direction" : "OUTBOUND"
    },
    "createdByRealtimeUpdater" : true,
    "services" : {
      "empty" : true
    },
    "tripHeadsign" : "...",
    "feedId" : "...",
    "id" : {
      "feedId" : "...",
      "id" : "..."
    }
  },
  "tripTimes" : [ {
    "scheduled" : true,
    "canceled" : true,
    "realTimeState" : "UPDATED",
    "numStops" : 12345,
    "serviceCode" : 12345,
    "trip" : {
      "operator" : { },
      "tripOperator" : { },
      "route" : { },
      "serviceId" : { },
      "mode" : "BUS",
      "netexSubmode" : "...",
      "tripShortName" : "...",
      "internalPlanningCode" : "...",
      "tripHeadsign" : "...",
      "routeShortName" : "...",
      "direction" : "UNKNOWN",
      "blockId" : "...",
      "shapeId" : { },
      "wheelchairAccessible" : 12345,
      "bikesAllowed" : "UNKNOWN",
      "fareId" : "...",
      "tripAlteration" : "CANCELLATION",
      "id" : { }
    }
  }, {
    "scheduled" : true,
    "canceled" : true,
    "realTimeState" : "MODIFIED",
    "numStops" : 12345,
    "serviceCode" : 12345,
    "trip" : {
      "operator" : { },
      "tripOperator" : { },
      "route" : { },
      "serviceId" : { },
      "mode" : "GONDOLA",
      "netexSubmode" : "...",
      "tripShortName" : "...",
      "internalPlanningCode" : "...",
      "tripHeadsign" : "...",
      "routeShortName" : "...",
      "direction" : "OUTBOUND",
      "blockId" : "...",
      "shapeId" : { },
      "wheelchairAccessible" : 12345,
      "bikesAllowed" : "NOT_ALLOWED",
      "fareId" : "...",
      "tripAlteration" : "CANCELLATION",
      "id" : { }
    }
  } ],
  "frequencyEntries" : [ {
    "startTime" : 12345,
    "endTime" : 12345,
    "headway" : 12345,
    "exactTimes" : true,
    "tripTimes" : {
      "scheduled" : true,
      "canceled" : true,
      "realTimeState" : "UPDATED",
      "numStops" : 12345,
      "serviceCode" : 12345,
      "trip" : { }
    },
    "minDeparture" : 12345,
    "maxArrival" : 12345
  }, {
    "startTime" : 12345,
    "endTime" : 12345,
    "headway" : 12345,
    "exactTimes" : true,
    "tripTimes" : {
      "scheduled" : true,
      "canceled" : true,
      "realTimeState" : "CANCELED",
      "numStops" : 12345,
      "serviceCode" : 12345,
      "trip" : { }
    },
    "minDeparture" : 12345,
    "maxArrival" : 12345
  } ],
  "serviceDate" : {
    "year" : 12345,
    "month" : 12345,
    "day" : 12345,
    "minMax" : true
  },
  "direction" : "UNKNOWN"
}