AutoCall is a robust Android application that empowers users to schedule phone calls to any contact or phone number at a specific date and time. It operates directly on the device, ensuring calls are placed automatically (or readied via the dialer) even if the application is closed.
Whether it's ensuring you don't miss an important daily standup, reminding an elderly family member to take their medication, or scheduling business outreach calls, AutoCall handles the heavy lifting by automating the initiation of the call.
-
Precise Scheduling & Recurring Calls:
- Schedule calls for an exact date and time.
- Set repeating schedules (Daily, Weekly, Monthly, or None).
-
Automated Call Initiation (Auto-Dial):
- Bypasses standard interaction lockscreens securely to perform direct auto-dial using Android's
TelecomManager. - Intelligently falls back to the native dialer intent (
ACTION_DIAL) or call intent (ACTION_CALL) if primary methods fail or permissions change.
- Bypasses standard interaction lockscreens securely to perform direct auto-dial using Android's
-
Unified Contact Integration:
- Pick a contact directly from your address book, or simply input the required phone number manually.
-
Local First & Privacy Respected:
- Completely offline-only operations using local Room Database persistence (No external servers are used to store your contact or scheduling data).
-
History Tracking & Redialing:
- Maintains a comprehensive history of the background job execution. Check if a call was
COMPLETED,CANCELLED, orFAILED. - Instantly re-schedule a failed or missed call with a single click from the history tab.
- Maintains a comprehensive history of the background job execution. Check if a call was
-
System Resource Friendly:
- Uses exact Android
AlarmManagerAPIs effectively, ensuring background tasks are awoken precisely at the scheduled moment without continuously draining your battery.
- Uses exact Android
This project is built using modern Android development practices, ensuring high maintainability and performance.
- Kotlin: Primary programming language.
- Jetpack Compose: Modern, declarative UI framework with Material Design 3 guidelines.
- Room Database: Local SQLite abstraction for persisting schedule settings and call logs.
- AlarmManager / BroadcastReceivers: System-level scheduling of future operations to ensure calls execute correctly.
- TelecomManager: Android API to seamlessly route calls directly.
app/src/main/java/com/example/
├── background/ # Alarm Receivers, Notification Helpers, and the Call Execution Activity
├── data/ # Room Database logic, Entities (CallSchedule, CallLogEntry), and Repository
├── ui/ # Jetpack Compose UI Screens (Home, History, Create) & ViewModels
├── ui/theme/ # Custom Typography (Josefin Sans) and Color Theme declarations
└── MainActivity # Main Entry Point with Navigation Graph and Permission Requests
Due to the nature of the application acting as an automated dialer, the following permissions are required to operate gracefully:
READ_CONTACTS: Optional but recommended. Allows users to select names and numbers directly from the device's address book.CALL_PHONE: Mandatory for enabling the direct "Auto-Call" feature. If omitted, the app will gracefully fallback to pre-filling the phone dialer instead of calling directly.POST_NOTIFICATIONS: Recommended (required on Android 13+) to alert the user regarding the background status of the scheduled auto-calls.SCHEDULE_EXACT_ALARM: Mandatory. Enables the app to trigger events efficiently at precise specified times. (The app will navigate users to system settings if this is disabled by the OS on Android 12+).
AutoCall is configured with Keyguard and Window dismissal flags. If the phone's screen is locked when a scheduled call triggers, Android will securely open standard intents allowing the outgoing call UI to present over the lock screen.
This applet is configured to build standalone and doesn't rely on remote APIs. You can run this project locally on Android Studio:
- Ensure your version of Android Studio is reasonably up to date (Koala / Ladybug or later).
- Sync the Gradle files to generate the local
Roompersistence dependencies (ksp). - Compile and launch onto either Emulator or Physical Device.
- If testing directly, grant "Call Phone" permissions for the complete automated dialer experience.
The application utilizes Material 3 Dynamic Color support for Android 12+, falling back to an elegant teal-driven theme for older configurations. The primary typeface utilized across the UI is Josefin Sans, giving the app a distinct, recognizable typographic identity.
No API Keys or Cloud databases are connected to this application. All information is securely retained on your Android device inside the Application Sandbox space.
Provided as an open Android repository structure. Use at your own discretion.




