Android application that monitors the phone's calendar and displays event reminders in full screen, even when the screen is locked.
- Calendar reading : Accesses system calendar events and reminders
- Automatic detection : Continuously monitors upcoming reminders (all configured reminders)
- Full screen display : Displays reminders even on locked screen
- Reminder management : Allows rescheduling a reminder in 5 minutes, 10 minutes, 30 minutes, or 1 hour
- Done button : Allows closing the reminder screen
- Background service : Runs as foreground service to ensure continuity
- Garmin sync : Notifications are optimized for synchronization with Garmin watches
- Android Studio (recent version recommended)
- JDK 21 or higher (automatically downloaded by Gradle if configured)
- Android SDK with API 35 (Android 15)
- Gradle 9.0 or higher
# Clone the repository
git clone https://github.com/epascal/wakeup.git
cd wakeup
# The project is configured to automatically download:
# - JDK (Java 21)
# - Gradle dependencies
# - Android SDK Platform 35
# Build the project
./gradlew build
# Install on a connected device
./gradlew installDebug- Open Android Studio
- File β Open β Select the project folder
- Android Studio will automatically:
- Download Gradle 9.0
- Download JDK 21 if needed
- Sync dependencies
- Download SDK Platform 35 if needed
- Wait for complete synchronization
- Run β Run 'app' or press Shift+F10
The project is configured to automatically install all dependencies:
- JDK : Automatically downloaded via
org.gradle.java.installations.auto-download=true - Android SDK : Automatically downloaded during compilation
- Dependencies : Downloaded from Maven Central and Google
If you prefer to use a local JDK, create a local.properties file at the project root:
sdk.dir=/path/to/your/android/sdkNote : The local.properties file is already in .gitignore and will not be committed.
The application automatically requests the following permissions:
READ_CALENDAR: To read calendar events and remindersSYSTEM_ALERT_WINDOW: To display interface above other applicationsDISABLE_KEYGUARD: To display on locked screenWAKE_LOCK: To wake the screen on reminderPOST_NOTIFICATIONS: For notifications (Android 13+)SCHEDULE_EXACT_ALARM: To schedule exact alarms (Android 12+)
- First launch : The application will request necessary permissions
- Automatic start : The monitoring service starts automatically
- Reminder detection : When an event reminder is detected (within 30 seconds), the reminder screen automatically displays
- Reminder management : Use buttons to reschedule the reminder or "Done" to close
- All reminders : The application triggers all configured reminders for each event (1 hour before, 1 minute before, etc.)
wakeup/
βββ app/
β βββ src/main/
β β βββ java/org/wakeup/
β β β βββ MainActivity.java # Main activity
β β β βββ ReminderActivity.java # Full screen activity for reminders
β β β βββ CalendarMonitorService.java # Monitoring service
β β β βββ ReminderReceiver.java # Receiver for reminders
β β β βββ BootReceiver.java # Restart after boot
β β β βββ ServiceNotificationDismissReceiver.java
β β βββ res/ # Resources (layouts, drawables, etc.)
β β βββ AndroidManifest.xml
β βββ build.gradle # App module configuration
βββ build.gradle # Project configuration
βββ settings.gradle # Modules configuration
βββ gradle.properties # Gradle properties
βββ README.md
./gradlew assembleDebugAPK will be generated in app/build/outputs/apk/debug/app-debug.apk
./gradlew assembleReleaseAPK will be generated in app/build/outputs/apk/release/app-release.apk
Note : To sign the release APK, configure a keystore (see Android documentation)
- Minimum SDK : 26 (Android 8.0)
- Target SDK : 35 (Android 15)
- Compile SDK : 35 (Android 15)
- Java : 21
- Gradle : 9.0
- Android Gradle Plugin : 8.10.0
androidx.appcompat:appcompat:1.7.0com.google.android.material:material:1.12.0androidx.constraintlayout:constraintlayout:2.2.0
- Check that permissions are granted
- Check that the service notification is visible
- Restart the application
- Check that calendar events have configured reminders
- Check that the application has
READ_CALENDARpermission - Check logs with
adb logcat | grep WakeUp
- Check that you have an Internet connection (to download dependencies)
- Clean the project:
./gradlew clean - Delete the
.gradlefolder and try again
Contributions are welcome! Please read CONTRIBUTING.md for more details.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) with additional non-commercial restrictions.
Key points:
- β Free for personal and non-commercial use
- β You can modify and distribute the code
- β You must share your modifications under the same license
- β Commercial use is prohibited without explicit written permission
- β Cannot be used in commercial products or services
See the LICENSE file for full details.
For any questions or suggestions, please open an issue on GitHub.
- AndroidX for support libraries
- Android community for resources and documentation