1. A non-transitory computer-readable storage medium with an executable program stored thereon, wherein the executable program is configured to instruct a mobile device, having a user interface with a display, and location services that include cell tower triangulation and a Global Position System (GPS), to perform the following: store information pertaining to a geo-fence, the geo-fence defined by a size about a location; with the aid of the location services of the mobile device, detect a geofence crossing when the mobile device crosses the geo-fence, and if a geofence crossing is detected, transmit a geofence crossing event to a remote location via a transmitter of the mobile device; wherein the detection of the geofence crossing uses either a lower power algorithm or a higher power algorithm, wherein the lower power algorithm consumes less power from the mobile device than the higher power algorithm; wherein the lower power algorithm uses cell tower triangulation of the location services of the mobile device, and the higher power algorithm uses the GPS of the location services of the mobile device; allowing a user to specify via the user interface of the mobile device whether the lower power algorithm or the higher power algorithm is to be used when detecting for geofence crossings; using the user specified lower power or higher power algorithm when detecting geofence crossings.