A geofence is a user defined virtual perimeter for a real world geographic area. MacroDroid can use the Geofence Trigger to trigger macros in the case that you either enter or exit the area defined in a particular geofence.

It is also possible to use the Geofence (Location) constraint to limit when functionality can run based on your current location.

Defining Geofences

You can access the list of current Geofences from the Geofence tile on the application home screen. From the list you can add a new Geofence or edit an existing one. This will take you to the Geofence configuration screen.

On this screen you can see a grey circular area around a point. This represents the area of the Geofence (the area that will trigger if you enter/exit). You can drag the map around or use the search functionality to move to a new location entirely. The radius value can also be changed by dragging the slider or tapping the textual value. A large radius is recommended to ensure the trigger fires more reliably when an accurate location is hard to determine.

Each Geofence area should be given an identifying name (e.g. home, work, school etc.). This is then used to easily identify which area is being referenced in any trigger/constraint that uses Geofences.

Location Trigger

The Geofence trigger functionality relies on Google Play services to operate. On devices without Google Play services or in rare cases where the Play services functionality doesn't work correctly an alternative Location Trigger is provided. This uses a custom MacroDroid implementation and has no dependency on Google Play.


As mentioned the Geofence functionality relies on Google Play services which can get into a broken state in rare cases. If you are experiencing problems with the Geofence functionality not working then please try clearing the application data for the Play Services app via your device's settings app. This will clear any problematic cached data and will have no negative consequences on other functionality.

If the trigger still fails to function please try the Location Trigger as an alternative.