Plan your daily field visits in the best driving order

Every weekday at 7am, Geni reads your calendar, finds the fastest order to hit every stop, and sends a Slack DM with drive times and a route map.

Agentic Task
Google CalendarMapboxSlack BotPersonal ProductivityOperationsDaily DigestsMeeting Workflows

Every weekday at 7am in my local time zone, build me an optimized field-visit plan for the day and DM it to me on Slack.

Trigger: cron, Monday through Friday at 7:00am local time.

Steps:

1. Use Google Calendar List Events to pull today's events from my primary calendar (timeMin = start of today local, timeMax = end of today local, singleEvents = true, orderBy = startTime).

2. Keep only events whose location field looks like a real physical street address. Drop anything with an empty location, a video-meeting URL (Zoom, Google Meet, Microsoft Teams, Webex), a phone-only dial-in, or text that is clearly virtual. Also drop all-day events.

3. For each remaining event, call Mapbox Forward Geocode (v6) on the location string to get longitude/latitude coordinates. If geocoding fails or returns low confidence, skip that event and note it in the final message.

4. Call Mapbox Get Optimization (V1) with the driving (or driving-traffic) profile, starting from my fixed starting address (ask me for this once during setup: home or office) and including all the geocoded stops. Optimization is capped at 12 waypoints total. If I have more than 11 in-person events (12 minus the starting point), drop the lowest-priority ones (treat events marked optional, tentative, or declined as lowest priority) and surface in the Slack message which events were left off and why.

5. Call Mapbox Get Directions with the driving-traffic profile on the ordered waypoints from the optimization result to get total drive time and per-leg ETAs. Use this for the times shown in the message rather than the optimization estimate, because directions reflects live traffic.

6. Render a Mapbox Get Static Map Image with the route overlaid (encoded polyline from the directions response) and numbered markers for each stop in optimized order. PNG, reasonable size for Slack (e.g. 800x500).

7. Send one direct message to me on Slack using Slack Bot Send a Message. The DM should include: the events in optimized order with start time and address, suggested departure time (first event start minus drive time from start), per-leg drive time, total time on the road for the day, and the static map image embedded.

8. For every consecutive pair of stops, compare the calendar gap (next event start minus current event end) against the drive time between them. If the drive is longer than the gap, flag that pair in the message as a tight transfer so I can reshuffle, push a meeting, or call ahead before the day starts.

If there are no in-person events today after filtering, send a short DM confirming there are no field visits scheduled rather than going silent.

Additional information

What does this prompt do?
  • Pulls today's events from your Google Calendar and keeps only the ones with a real street address.
  • Figures out the shortest driving order to visit every stop, starting from your home or office.
  • Sends a Slack DM with suggested departure time, per-leg drive time, total time on the road, and a map of the route.
  • Flags any back-to-back stops where the calendar gap is tighter than the drive between them, so you can reshuffle before the day starts.
What do I need to use this?
  • A Google Calendar with your daily field visits scheduled (locations filled in).
  • A Mapbox account. The free tier covers typical daily field-rep volume.
  • A Slack workspace where Geni can send you a direct message.
  • A starting address (home or office) you want each day's route to begin from.
How can I customize it?
  • Change the send time, the days of the week it runs, or which calendars feed in.
  • Swap your starting address, or have the route end somewhere different from where it began.
  • Adjust which events count as in-person (skip Zoom and Teams links, internal blocks, or all-day events).
  • Send the morning plan to a private channel or to a teammate instead of your own DM.

Frequently asked questions

What if I have more than twelve field visits in one day?
The route optimizer maxes out at twelve stops in a single plan. If your calendar has more in-person events than that, Geni will drop the lowest-priority ones (optional or tentative events first) and call out what was left off so you can decide whether to reshuffle.
Will it skip Zoom, Teams, and internal meetings?
Yes. Geni only includes events whose location field looks like a real physical address. Events with video links, empty locations, or virtual-meeting strings are filtered out before the route is built.
Does the drive time account for traffic?
Yes. Geni asks Mapbox for driving directions with live traffic, so the per-leg times and the suggested departure time reflect real road conditions at the time you'd be driving.
Can I run this only on certain weekdays?
Yes. The schedule is fully customizable. Skip Fridays, run only on Tuesdays and Thursdays, or move the send time earlier if you leave the house at 6am.
What happens on days with no field visits?
If today has no events with real addresses, Geni either stays quiet or drops a short note confirming there's nothing to drive to today. You pick which behavior you want.

Stop sketching your driving route by hand each morning.

Connect Google Calendar, Mapbox, and Slack once. Geni plans the day's route before your first coffee.