How Do I Create a GTFS File?
A GTFS "file" is just a ZIP archive filled with simple CSV text files. You can create them using spreadsheets, text editors, or specialized tools.
What You'll Need
Before you start typing, make sure you have these details ready:
• Stop locations with GPS coordinates (latitude and longitude).
• Your route names and numbers.
• Full timetables (arrival times for every stop).
• Which days you operate (weekdays vs. weekends).
• Basic agency info like your website and timezone.
The Required Files
A minimal GTFS feed needs these six files:
1. agency.txt
agency_id,agency_name,agency_url,agency_timezone
mybus,My Bus Company,https://mybus.com,America/New_York
2. stops.txt
stop_id,stop_name,stop_lat,stop_lon
stop1,Main Street Station,40.7128,-74.0060
stop2,Central Park,40.7829,-73.9654
3. routes.txt
route_id,route_short_name,route_long_name,route_type
route1,42,Downtown Express,3
(route_type 3 = bus)
4. trips.txt
route_id,service_id,trip_id
route1,weekday,trip1
route1,weekday,trip2
5. stop_times.txt
trip_id,arrival_time,departure_time,stop_id,stop_sequence
trip1,08:00:00,08:00:00,stop1,1
trip1,08:30:00,08:30:00,stop2,2
6. calendar.txt
service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date
weekday,1,1,1,1,1,0,0,20240101,20241231
Tools to Create GTFS
Spreadsheets: Most people start with Excel or Google Sheets. Create a sheet for each file, and export them as "CSV UTF-8." It's the easiest way to manage columns.
Text Editors: If you're tech-savvy and your system is small, you can edit the CSV files directly in Notepad++ or VS Code.
Transit Software: If you use scheduling software, check if it has a "GTFS Export" button – many do!
Package Your Feed
Put all .txt files into a ZIP archive. The files must be at the root level (not inside a folder):
feed.zip
├── agency.txt
├── stops.txt
├── routes.txt
├── trips.txt
├── stop_times.txt
└── calendar.txt
Validate Before Publishing
Never publish without checking your work. Small typos can break your whole schedule. Look out for:
• Typos in ID names.
• Wonky GPS coordinates.
• Wrong time formats (always use HH:MM:SS).
Use GTFS Guru to catch these mistakes instantly before they reach your riders.
Next Steps
Once your feed validates without errors:
1. Host it at a public URL
2. Submit to Google Transit Partner Dashboard
3. Also submit to Apple Maps, Transit App, etc.
Related Questions
• How do I get my bus on Google Maps?
• Why was my GTFS feed rejected?
For a complete tutorial, see our step-by-step GTFS creation guide.
Created your feed? Validate it for free before publishing.