A GitHub Actions-powered notification tool for Trusted Traveler Programs'
appointment scheduler.
The Trusted Traveler Programs, including Global
Entry, TSA PreCheck, SENTRI, NEXUS, and FAST, are a set of offerings from the
U.S. Customs and Border Protection service. Initial acceptance into these
programs often requires scheduling an in-person interview at a nearby airport
using an obtuse wait-listing system.
This tool, with a little setup, will notify you by e-mail whenever an
appointment slot opens for your location. It leverages free GitHub Actions to
automatically run a Python script at an interval, which then fails whenever an
appointment is found; GitHub will then notify you of the workflow failure by
email shortly after.
This tool was inspired by goes-notify,
which is a much more advanced project but requires manual hosting.
This tool can be set up entirely using the GitHub website:
- Gather the IDs for all the locations you are interested in using the
table below.
- Fork this repository: https://github.com/branw/ttp-notifier/fork
- In your fork, go to Settings > Security > Secrets and Variables
> Actions and click the Variables tab:
https://github.com/you/your-fork/settings/variables/actions
- Click the New repository variable button and enter:
- Name:
LOCATION_IDS
- Value: Enter the location IDs from step 1, separated by commas. For
example, enter
5140,6480
to check both JFK and the US Customs House in
NYC.
- Confirm that you have enabled GitHub Actions notifications, preferably for
failed workflow only (unless you don't mind the spam). The option can be
found in your GitHub account settings under Notifications > System
> Actions: https://github.com/settings/notifications
- In your fork, go to Actions > Check and Notify. Confirm that the
workflow has completed a run successfully. If the workflow hasn't already
ran, press the Run workflow button.
- Sit back and wait until you get a "Run failed" email from GitHub. When this
happens, you can click View workflow run and expand the
check-and-notify workflow. The appointment slots will be displayed in
the output of the failed step:
Run python src/run.py
Location Washington Dulles International Global Entry EC (ID 5142) has 1 slots
* 2023-02-01T08:15 - 2023-02-01T08:30 (15 minutes)
Error: Process completed with exit code 1.
- When you no longer need notifications, i.e. once you've booked an
appointment, you can either:
- Disable the workflow by going to Settings > Code and automation
> Actions > General and choosing Disable actions:
https://github.com/you/your-fork/settings/actions
- Delete your forked repository entirely
Use these tables to find the IDs of your nearest CBP locations by country and
state. Note that these centers all offer Global Entry appointments, but may
have limited availability for other programs.
(Last generated by src/print_locations_table.py
on 2023-01-27)
ID |
Name |
City |
Address |
5030 |
Calgary Enrollment Center |
Calgary |
2000 Airport Rd N.E. |
5032 |
Edmonton Enrollment Center |
Edmonton |
1000 Airport Road |
ID |
Name |
City |
Address |
5026 |
Vancouver Enrollment Center |
Richmond |
3211 Grant McConachie Way |
5041 |
Vancouver Urban Enrollment Center |
VANCOUVER |
1611 Main Street |
ID |
Name |
City |
Address |
5029 |
Winnipeg Enrollment Center |
Winnipeg |
1970 Winnipeg NEXUS Office |
ID |
Name |
City |
Address |
5031 |
Halifax Enrollment Center |
Goffs |
U.S. Customs and Border Protection |
ID |
Name |
City |
Address |
5025 |
Ottawa International Airport |
Ottawa |
140 Thad Johnson Private |
5027 |
Toronto Enrollment Center |
Mississauga |
6301 Silver Dart Drive |
5520 |
Lansdowne, ON |
Lansdowne |
860 Highway 137 |
ID |
Name |
City |
Address |
5028 |
Montreal Enrollment Center |
Montreal |
1 Pierre E Trudeau International Airport |
ID |
Name |
City |
Address |
6920 |
Doha International Airport |
Doha |
Hamad International Airport |
ID |
Name |
City |
Address |
9040 |
Singapore (Singapore, U.S. Embassy) |
Singapore |
U.S. Embassy |
ID |
Name |
City |
Address |
7540 |
Anchorage Enrollment Center |
Anchorage |
Ted Stevens International Airport |
14381 |
Fairbanks Enrollment Center |
Fairbanks |
6450 Airport Way - Suite 13 |
ID |
Name |
City |
Address |
16277 |
Huntsville Global Entry Enrollment Center |
Huntsville |
Huntsville International Airport |
16282 |
Mobile Regional Airport Enrollment Center |
Mobile |
8400 Airport Blvd |
ID |
Name |
City |
Address |
5007 |
Nogales, AZ |
NOGALES |
200 N. MARIPOSA RD STE. B700 |
5460 |
San Luis Enrollment Center |
San Luis |
SLU II Global Enrollment Center |
7160 |
Phoenix Sky Harbor Global Entry Enrollment Center |
Phoenix |
CBP-Global Enrollment Center |
8100 |
Douglas Enrollment Center |
Douglas |
1 Pan American Ave |
9240 |
Tucson Enrollment Center |
Tucson |
7081 S. Plumer Ave. |
ID |
Name |
City |
Address |
5002 |
Otay Mesa Enrollment Center |
San Diego |
9725 Via De La Amistad |
5006 |
Calexico Enrollment Center |
Calexico |
1699 East Carr Road |
5180 |
Los Angeles International Global Entry EC |
LOS ANGELES |
11099 S LA CIENEGA BLVD |
5446 |
San Francisco Global Entry Enrollment Center |
San Francisco |
International Arrival Level |
8920 |
Los Angeles -Long Beach Seaport |
Long Beach |
Permanently Closed |
16547 |
San Diego International Airport EC |
San Diego |
3835 North Harbor Dr |
ID |
Name |
City |
Address |
6940 |
Denver International Airport |
Denver |
8400 Denver International Airport |
ID |
Name |
City |
Address |
14681 |
Bradley International Airport Enrollment Center |
Windsor Locks |
International Arrivals Building/ Terminal B |
ID |
Name |
City |
Address |
8120 |
Washington, DC Enrollment Center |
Washington |
1300 Pennsylvania Avenue NW |
ID |
Name |
City |
Address |
5181 |
Miami International Airport |
Miami |
21 Miad Circle |
5380 |
Orlando International Airport |
Orlando |
1 Jeff Fuqua Blvd |
5443 |
Fort Lauderdale Global Entry Enrollment Center |
Ft Lauderdale |
1800 Eller Drive |
5447 |
Sanford Global Entry Enrollment Center |
Sanford |
1100 Red Cleveland Blvd |
8020 |
Tampa Enrollment Center |
Tampa |
Tampa International Airport |
9260 |
West Palm Beach Enrollment Center |
Riviera Beach |
West Palm Beach Enrollment Center |
16248 |
Treasure Coast International Airport |
Fort Pierce |
2990 Curtis King Blvd |
16515 |
Fort Lauderdale International Airport Terminal |
Fort Lauderdale |
50 Terminal Drive |
ID |
Name |
City |
Address |
5182 |
Atlanta International Global Entry EC |
Atlanta |
2600 Maynard H. Jackson Jr. Int'l Terminal |
ID |
Name |
City |
Address |
9140 |
Guam International Airport |
Tamuning |
355 Chalan PasaHeru |
ID |
Name |
City |
Address |
5340 |
Honolulu Enrollment Center |
Honolulu |
300 Rodgers Blvd |
ID |
Name |
City |
Address |
16461 |
Des Moines GE Enrollment Center |
Des Moines |
6100 Fleur Drive |
ID |
Name |
City |
Address |
12161 |
Boise Enrollment Center |
Boise |
4655 S Enterprise Street |
ID |
Name |
City |
Address |
5183 |
Chicago O'Hare International Global Entry EC |
CHICAGO |
10000 West O'Hare Drive |
11000 |
Moline Quad Cities International Airport |
Moline |
3300 69th Ave |
11001 |
Rockford-Chicago International Airport |
Rockford |
50 Airport Drive |
11002 |
Peoria international airport |
Peoria |
6100 W. Everett M. Dirksen Parkway |
11981 |
Chicago Field Office Enrollment Center |
CHICAGO |
610 S. CANAL STREET |
ID |
Name |
City |
Address |
16278 |
South Bend Enrollment Center |
South Bend |
South Bend International Airport |
ID |
Name |
City |
Address |
7680 |
Cincinnati Enrollment Center |
Erlanger |
4243 Olympic Blvd. Suite. 210 |
ID |
Name |
City |
Address |
9740 |
New Orleans Enrollment Center |
Kenner |
1 Terminal Drive |
ID |
Name |
City |
Address |
5441 |
Boston-Logan Global Entry Enrollment Center |
East Boston |
Logan International Airport, Terminal E |
ID |
Name |
City |
Address |
7940 |
Baltimore Washington Thurgood Marshall Airport |
Linthicum |
Baltimore Washington Thurgood Marshall I |
ID |
Name |
City |
Address |
5101 |
Houlton POE/Woodstock |
Houlton |
27 Customs Loop |
5500 |
Calais Enrollment Center |
Calais |
3 Customs Street |
ID |
Name |
City |
Address |
5023 |
Detroit Enrollment Center Global Entry |
Detroit |
2810 W. Fort Street Suite 124 |
5024 |
Port Huron Enrollment Center |
Port Huron |
2321 Pine Grove Avenue |
5080 |
Sault Ste Marie Enrollment Center |
Sault Ste. Marie |
900 International Bridge Plaza |
5320 |
Detroit Metro Airport |
Detroit |
Detroit Evans Terminal |
ID |
Name |
City |
Address |
5060 |
Warroad Enrollment Center |
Warroad |
41059 Warroad Enrollment Center |
6840 |
Minneapolis - St. Paul Global Entry EC |
St. Paul |
4300 Glumack Drive |
9101 |
Grand Portage |
Grand Portage |
9403 E Highway 61 |
14181 |
International Falls Global Entry Enrollment Center |
International Falls |
3214 2nd Ave E |
ID |
Name |
City |
Address |
12021 |
St. Louis Enrollment Center |
ST. LOUIS |
4349 WOODSON RD #201 |
12781 |
Kansas City Enrollment Center |
Kansas City |
90 Beirut Circle |
16463 |
Springfield – Branson National Airport, MO |
Springfield |
2300 N Airport Blvd |
ID |
Name |
City |
Address |
14481 |
Gulfport-Biloxi Global Entry Enrollment Center |
Gulfport |
Gulfport-Biloxi International Airport |
ID |
Name |
City |
Address |
5120 |
Sweetgrass NEXUS and FAST Enrollment Center |
Sweetgrass |
Nexus Enrollment Center |
16251 |
Sweetgrass Global Entry Enrollment Center |
Sweetgrass |
Nexus Enrollment Center |
16475 |
SEAFO - Bozeman Airport |
Belgrade |
550 Wings Way |
16485 |
SEAFO - Billings-Logan Airport GE Mobile Event |
Billings |
1901 Terminal Circle |
16488 |
SEAFO - Missoula International Airport |
Missoula |
5225 U.S. HIGWAY 10W |
ID |
Name |
City |
Address |
14321 |
Charlotte-Douglas International Airport |
Charlotte |
Charlotte-Douglas International Airport |
ID |
Name |
City |
Address |
15221 |
Pembina Global Entry Enrollment Center |
Pembina |
10980 Interstate 29 N |
16280 |
Grand Forks, ND enrollment Center |
Grand Forks |
2725 Airport Drive |
16476 |
SEAFO - FARGO Global Entry Workshop |
Fargo |
3803 20th Street N. |
16482 |
Grand Forks, ND Enrollment Event |
Grand Forks |
2725 Airport Drive |
ID |
Name |
City |
Address |
16467 |
Omaha, NE Enrollment Center |
Omaha |
3737A Orville Plaza |
ID |
Name |
City |
Address |
5444 |
Newark Liberty Intl Airport |
Newark |
Newark Liberty International Airport |
ID |
Name |
City |
Address |
8040 |
Albuquerque Enrollment Center |
Albuquerque |
Albuquerque International Sunport |
ID |
Name |
City |
Address |
5360 |
Las Vegas Enrollment Center |
Las Vegas |
5757 Wayne Newton Blvd Terminal 3 |
ID |
Name |
City |
Address |
5021 |
Champlain Enrollment Center |
Champlain |
237 West Service Road |
5140 |
JFK International Global Entry EC |
Jamaica |
JFK International Airport |
5161 |
Niagara Falls Enrollment Center |
Niagara Falls |
2250 Whirlpool St |
6480 |
U.s. Custom House - Bowling Green |
NEW YORK |
1 BOWLING GREEN |
16519 |
Champlain GE Only |
Champlain |
237 West Service Road |
16520 |
Niagara Falls GE Only |
Niagara Falls |
2250 Whirlpool St |
ID |
Name |
City |
Address |
9180 |
Cleveland U.S. Customs and border protection |
Middleburg Heights |
Customs & Border Protection |
11841 |
Port Clinton, Ohio Enrollment Center |
Port Clinton |
709 S.E. Catawba Road |
16242 |
Dayton Enrollment Center |
Vandalia |
3800 Wright Drive |
ID |
Name |
City |
Address |
7960 |
Portland, OR Enrollment Center |
Portland |
8337 NE Alderwood Rd |
ID |
Name |
City |
Address |
5445 |
Philadelphia International Airport |
PHILADELPHIA |
PHILADELPHIA INTL AIRPORT |
9200 |
Pittsburgh International Airport |
Pittsburgh |
1000 Airport Boulevard |
ID |
Name |
City |
Address |
5400 |
San Juan Global Entry Enrollment Center |
Carolina |
Luis Muñoz Marin International Airport (SJU) |
ID |
Name |
City |
Address |
9300 |
Warwick, RI Enrollment Center |
Warwick |
Warwick, RI Enrollment Center |
ID |
Name |
City |
Address |
10260 |
Nashville Enrollment Center |
Nashville |
612 Hangar Lane |
13621 |
Memphis Intl Airport Global Enrollment Center |
Memphis |
2491 Winchester Suite 230 |
16271 |
Tri-cities Enrollment Center |
Blountville |
Tri-Cities Airport |
ID |
Name |
City |
Address |
5001 |
Hidalgo Enrollment Center |
Mission |
Anzalduas International Bridge |
5003 |
Brownsville Enrollment Center |
Brownsville |
700 Amelia Earhart Dr, Brownsville, Texas |
5004 |
Laredo Enrollment Center |
Laredo |
400 San Edwardo |
5005 |
El Paso Enrollment Center |
El Paso |
797 S. Zaragoza Rd. Bldg. A |
5141 |
Houston Intercontinental Global Entry EC |
Houston |
3870 North Terminal Road |
5300 |
Dallas-Fort Worth International Airport Global Entry |
DFW Airport |
DFW International Airport - Terminal D |
7480 |
Houston Hobby Airport Enrollment Center |
Houston |
Sterile Corridor requires Boarding Pass |
7520 |
San Antonio International Airport |
San Antonio |
9800 Airport Boulevard, Suite 1101 |
7820 |
Austin-Bergstrom International Airport |
Austin |
3600 Presidential Blvd. |
16226 |
Eagle Pass |
Eagle Pass |
160 E. Garrison St. |
16460 |
Del Rio Enrollment Center |
Del Rio |
3140 Spur 239 |
ID |
Name |
City |
Address |
7600 |
Salt Lake City International Airport |
Salt Lake City |
3920 West Terminal Dr. #TCBP-1-060.2 |
ID |
Name |
City |
Address |
5142 |
Washington Dulles International Global Entry EC |
Sterling |
22685 International Arrivals- Main Terminal |
14981 |
Richmond, VA Enrollment Center |
Richmond |
5707 Huntsman Road, Suite 104 |
ID |
Name |
City |
Address |
5223 |
Derby Line Enrollment Center |
Derby Line |
107 I-91 South |
ID |
Name |
City |
Address |
5420 |
Seatac International Airport Global Entry EC |
SeaTac |
17801 International Blvd, SeaTac, WA 98158 |
13321 |
Blaine Global Entry Enrollment Center |
Blaine |
8115 Birch Bay Square St. |
ID |
Name |
City |
Address |
7740 |
Milwaukee Enrollment Center |
Milwaukee |
4915 S Howell Avenue, 2nd Floor |
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to https://unlicense.org