We develop a localization algorithm based on global environmental events observed by a sensor network. Examples of such events include the sound of thunder, the shades of moving clouds, or the vibrations in seismic data. Because our localization method does not generate signals for distance measurements, it saves energy. In fact, the algorithm may use existing sensor recordings to determine the locations of nodes at which the recordings were taken. Moreover, the method does not accumulate errors, making it also effective for large and sparse sensor networks. The localization uses time synchronization; we provide an algorithm to compensate for clock synchronization errors. Versions for both two dimensional and three dimensional localization of the algorithm are presented. Simulation results suggest that the algorithm can provide a high degree of accuracy when many events are recorded.