You can also download APK files from GitHub Releases.
- Create a separate schedule for every date.
- Add tasks with exact start and end times.
- Prevent overlapping tasks before they are saved.
- Keep tasks without a fixed time in a dedicated inbox.
- Convert an unscheduled task into a scheduled one when the time is known.
- Move, edit, complete, and reorganize tasks throughout the day.
- Create templates for frequently repeated activities.
- Repeat by weekday, N-th weekday of a month, day of month, or annual date.
- Generate upcoming schedules automatically.
- Update or stop repeating templates.
- Keep generated tasks linked to their source template until they are manually detached.
- Skip generated occurrences that conflict with an existing task.
- Notify before a task starts.
- Notify at the start of a task.
- Notify shortly before a task ends.
- Show an ongoing notification while the current task is running.
- Restore scheduled notifications after reboot, application update, time change, date change, timezone change, or exact-alarm permission changes.
- Workload by week, month, half-year, or year.
- Time distribution by category and subcategory.
- Hourly workload.
- Total task count and planned time.
- Average daily load and average task duration.
- Optional exclusion of individual tasks from statistics.
- Material 3 interface built with Jetpack Compose.
- Light, dark, and system theme modes.
- Dynamic Color on supported devices.
- Multiple built-in color schemes.
- Compact and expanded task presentation.
- Configurable duration presets.
- Secure mode for sensitive content.
- Home-screen widget powered by Jetpack Glance.
- Export schedules, templates, categories, and unscheduled tasks.
- Restore data from a backup file.
- Clear application data or reset only settings.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- English ๐ฌ๐ง
- Russian ๐ท๐บ
- German ๐ฉ๐ช
- Spanish ๐ช๐ธ
- Persian ๐ฎ๐ท
- French ๐ซ๐ท
- Brazilian Portuguese ๐ง๐ท
- Turkish ๐น๐ท
- Vietnamese ๐ป๐ณ
- Polish ๐ต๐ฑ
- Italian ๐ฎ๐น
- Chinese ๐จ๐ณ
TimePlanner follows a multi-module Clean Architecture approach with feature-level isolation.
:app
โโโ root navigation
โโโ dependency graph
โโโ Android receivers
โโโ notification runtime
โโโ Glance widgets
:core
โโโ :utils architecture primitives, MVI contracts, date/time and notification helpers
โโโ :domain shared entities, repositories, managers and validation
โโโ :data Room databases, DAO, migrations and repository implementations
โโโ :presentation shared presentation models and mappers
โโโ :ui Material 3 theme, design tokens and reusable Compose components
:features
โโโ :home
โโโ :overview
โโโ :templates
โโโ :editor
โโโ :analytics
โโโ :settings
Each feature is split into two modules:
feature:api public contracts, configuration and navigation API
feature:impl UI, presentation, interactors, DI and internal navigation
The application uses a single MainActivity, Decompose for navigation, Dagger for dependency injection, and an MVI-based presentation layer built around state, events, actions, effects, inputs, and outputs.
| Area | Technology |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose, Material 3 |
| Architecture | Clean Architecture, MVI, multi-module feature isolation |
| Navigation | Decompose, Essenty |
| Dependency injection | Dagger 2 with KSP |
| Asynchronous work | Kotlin Coroutines and Flow |
| Persistence | Room with KSP |
| Serialization | Kotlin Serialization |
| Widgets | Jetpack Glance |
| Charts | Charty, Compose Charts |
| Debugging | LeakCanary |
Current project baseline:
- Minimum Android version: API 24.
- Compile and target SDK: 36.
- JVM target: 17.
- Gradle: 8.13.
- Android Gradle Plugin: 8.12.1.
| Flavor | Purpose |
|---|---|
fdroid |
Clean open-source build without store analytics |
rustore |
RuStore distribution build |
huawei |
AppGallery distribution build |
The release build enables code shrinking, resource shrinking, ProGuard/R8 rules, and signing configuration.
- Android Studio with support for the project's Android Gradle Plugin.
- JDK 17.
- Android SDK 36.
The application module uses an explicit signing configuration for both debug and release builds. Add the following values to your local local.properties file:
storeFile=/absolute/path/to/your.keystore
storePassword=your_store_password
keyAlias=your_key_alias
keyPassword=your_key_passwordThe rustore and huawei variants additionally expect exceptions tracing credentials. The fdroid variant does not include those store integrations.
git clone https://github.com/v1tzor/TimePlanner.git
cd TimePlanner
./gradlew assembleFdroidDebugAlternatively, open the project in Android Studio, select the desired flavor and build type, then run the app configuration.
TimePlanner is an independent open-source project. You can support its continued development through the donation page below.
Direct cryptocurrency addresses
USDT(ERC20): 0xbA08E4905B3d52f480419A8444C4de3E91BC98df
BTC: bc1qu0a5ujldf8rpc8yz8atlgphrj9wutgfxw82dql
ETH: 0x4cAfa6De0D1968cA8C2a7aB06CE28d0A1aD2C7b9
TRX: TKC3NsKSS9hJRvofeJKceT5wC2bqTkPRUE
LTC: ltc1qj9fsz4pxrvr3eqyel4q8jnsnfpcfwdsj3mvpec
XEC: ecash:qqc0k95nfhkseel9p4avz5jwk6s4vum7rceegten5x
BNB/BTCB: 0xbA08E4905B3d52f480419A8444C4de3E91BC98df
Thank you to everyone who supports the project.
Copyright 2026 Stanislav Aleshin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.










