skip to main content
Parking Homepage  /  Parking  /  Electric Car Chargers

Electric Car Chargers

EV Charging Stations

In an effort to reduce carbon dioxide emissions and assist a campus wide shift to the use of renewable resources, a research group led by Steven Low, professor of computer science and electrical engineering in the engineering and applied science division, has installed electric vehicle (EV) charging stations for use by all Caltech and JPL personnel and visitors. The stations, some of which are ADA-accessible, were first installed in the California Parking Structure in February of 2018.

There are 141 Level 2 and 6 Level 3 (DC) chargers on campus (see locations below). A Caltech parking permit is required to use the EV charging stations. The charging stations are managed by an outside vendor, PowerFlex Systems, through a smartphone app.

EV Charging Rates Effective January 1, 2025

  • For Caltech/JPL Community (Staff, Faculty, Students):
    • Level 2 Chargers: $0.20 per kWh
    • Level 3 Chargers: $0.40 per kWh
  • For Public Users:
    • Level 2 Chargers: $0.40 per kWh
    • Level 3 Chargers: $0.80 per kWh

An overstay fee of $10/hour will be imposed on vehicles left in Level 3 charging spots after their charging session has completed.

Users that registered for the Powerflex app using their Caltech or JPL email will automatically qualify for the Caltech charging rate. Caltech/JPL Personnel that are registered for the app with their personal email can use the EV Charging Form to have their email added to the user's list for the Caltech/JPL rate.

For more on the cost increase, please see the memo from the AVP of Facilities.

For information about using the PowerFlex app, please visit the PowerFlex FAQ page


Level 2 Chargers:

Level II Chargers
Parking Lot Floor / Level # of Chargers
Structure 1 4 55
Structure 3 B2 Ramp 86
'); // This code changes the way the search field works. Instead of performing no more than one search per searchDelay // number of milliseconds, the system instead implement a debounce mechanism that prevents searches from being // performed until the user has stopped typing in the search field for more than searchDelay milliseconds. // This avoids letting the info panel update more than once per search, which is super annoying for screen reader // users who have to hear the entire info panel read out each time it changes. // Remove the default event handlers for the search field. $('div.dataTables_filter input', table_id).off('keyup.DT input.DT'); // Set up a debounce pattern, instead. let search_timeout = null; // Grab the searchDelay setting from data_table's settings object. let search_delay = data_table.settings()[0].searchDelay; // Set up a new event handler for when the user types a character into the search field. $('div.dataTables_filter input', table_id).on('keyup', function() { // Get the search string from the input field. let search = $('div.dataTables_filter input', table_id).val(); // As soon as the user types any character, prevent the previous timed function call from firing. clearTimeout(search_timeout); // Perform a search for the current search string, delayed by search_delay milliseconds. search_timeout = setTimeout(function() { // Only skip the search if we've somehow run this function before the 'search' var got initialized. We WANT to // trigger a search when the query is the empty string, because that means "show the whole table". if (search !== null) { data_table.search(search).draw(); } }, search_delay); }); });

Level 3 Chargers:

Parking Lot Floor / Level # of Chargers
Structure 1 1 4
Structure 3 B2 Ramp 2
'); // This code changes the way the search field works. Instead of performing no more than one search per searchDelay // number of milliseconds, the system instead implement a debounce mechanism that prevents searches from being // performed until the user has stopped typing in the search field for more than searchDelay milliseconds. // This avoids letting the info panel update more than once per search, which is super annoying for screen reader // users who have to hear the entire info panel read out each time it changes. // Remove the default event handlers for the search field. $('div.dataTables_filter input', table_id).off('keyup.DT input.DT'); // Set up a debounce pattern, instead. let search_timeout = null; // Grab the searchDelay setting from data_table's settings object. let search_delay = data_table.settings()[0].searchDelay; // Set up a new event handler for when the user types a character into the search field. $('div.dataTables_filter input', table_id).on('keyup', function() { // Get the search string from the input field. let search = $('div.dataTables_filter input', table_id).val(); // As soon as the user types any character, prevent the previous timed function call from firing. clearTimeout(search_timeout); // Perform a search for the current search string, delayed by search_delay milliseconds. search_timeout = setTimeout(function() { // Only skip the search if we've somehow run this function before the 'search' var got initialized. We WANT to // trigger a search when the query is the empty string, because that means "show the whole table". if (search !== null) { data_table.search(search).draw(); } }, search_delay); }); });
Are you looking for a cheaper, easier way to get to campus?

Additional information about EV charging at Caltech can be found at http://ev.caltech.edu/.