GapWalk
Schedule-aware micro-walking app that finds free gaps and nudges users to take short walks, with local-first tracking and optional calendar sync.

Tech Stack
Tags
Key Outcomes
- Built a gap detection engine that generates walking plans from busy-time schedules and user preferences
- Implemented local notification scheduling with quiet hours, buffers, and configurable nudge timing
- Shipped an on-device walk tracker with GPS route, step counting, distance, time, pause/resume, and idle detection
- Delivered a local-first data layer using SQLite with streaks, weekly stats, and upcoming opportunities
- Integrated Google Calendar with read-only OAuth access and on-device gap calculation
Overview
GapWalk is a health and productivity app for people who want to walk more without overhauling their schedule. It connects to your Google Calendar, finds short free windows between your existing events, and sends a timely reminder before each gap begins. The walking plan builds itself from your real schedule — no manual input, no fixed workout blocks.
The core insight is simple: 10-minute gaps already exist in most people's days. GapWalk makes those gaps visible and sends you a nudge before each one disappears.
What It Does
- Connects to Google Calendar with read-only access to detect free windows automatically
- Surfaces walking opportunities of 5 minutes or more that fit within your real schedule
- Sends a notification before each gap begins, with configurable lead time
- Provides a built-in walk timer for tracking each session with GPS and step count
- Supports manual schedule entry and ICS import as alternatives to calendar sync
- Stores all preferences and walk history locally on device — no account required for the core experience
How It Works
- Sign in with Google. GapWalk connects to your Google Calendar with read-only access. Your events are never modified.
- The gap engine runs. The app reads today's events, computes the free windows between them, and filters by your preferences: minimum gap length, buffer time, quiet hours, and preferred walking periods.
- You get a reminder. A configurable number of minutes before a gap begins, GapWalk sends a notification so you can step out without checking the app.
- Walk, then come back. Start a timed session from the app. GPS route and step count are tracked locally on your device.
Google Calendar Integration
GapWalk uses the calendar.readonly OAuth scope to read your Google Calendar. This scope is read-only — the app cannot create, modify, or delete any events.
What GapWalk reads:
- Event start and end times
- Event status (confirmed, tentative, or cancelled)
- Calendar list, so you can choose which calendars to monitor
What GapWalk does not read:
- Event titles or descriptions
- Attendee lists or meeting links
- Email content, attachments, or any content beyond timing and status
Calendar data is fetched at runtime, used to calculate free windows, and discarded immediately. It is not written to device storage and is not transmitted to any server.
You can disconnect GapWalk from your Google Calendar at any time from the Settings screen or from your Google Account permissions page at myaccount.google.com/permissions.
Technical Architecture
GapWalk is built with Expo and React Native.
The scheduling logic is implemented as a dedicated gap engine that converts busy blocks into free windows and filters them through user preferences — buffer minutes, minimum walk length, quiet hours, preferred windows, and step goals all shape what gets scheduled and when. Notifications are scheduled locally using expo-notifications and are rebuilt automatically when preferences or schedule data change.
The app is local-first by default, using expo-sqlite for on-device persistence. State is managed with Zustand and time logic uses date-fns utilities for consistency and edge-case handling.
There is an optional backend folder (NestJS) for future sync or multi-device support, but the app works fully offline without it.
Key Challenges
Reliable notifications without being annoying
GapWalk schedules nudges only within valid gaps and enforces user-defined limits including quiet hours and a max notifications-per-day cap. Plans rebuild automatically when the schedule changes, so reminders stay accurate throughout the day.
Accurate tracking across different devices
Step counting uses the hardware pedometer when available and falls back to GPS-based estimation if the device does not support steps. Map rendering degrades gracefully if a Google Maps key is not configured.
Calendar data handled responsibly
The gap calculation happens entirely on device. Raw calendar event data is held in application memory only for the duration of the calculation and discarded immediately after. No calendar data is written to disk or transmitted anywhere.
Results
GapWalk delivers a full micro-walking flow from schedule import to plan generation, smart notifications, walk tracking, and progress analytics — with a local-first architecture, full offline support, and a calendar integration that respects user privacy by design.
Legal and privacy information for GapWalk: Privacy Policy · Terms of Service
GapWalk is not affiliated with or endorsed by Google LLC. Google Calendar is a trademark of Google LLC.