Case study Callvent
Turning phone calls into calendar events
A native iOS and Android app from our own development: the technical implementation, the decisions behind it, and what client projects can take away from it
Editorial responsibility: mittl medien · Contact: Robert Mittl
Updated:
Callvent is an app we built ourselves for logging phone calls as calendar events. Users can assign a contact, add a note or callback reminder if needed, and save the event. The app is available for iOS and Android, with companion apps for Apple Watch and Wear OS. Features and workflows are described on callvent.app. This case study explains the technical decisions behind it.
Why we built Callvent natively
Callvent is fully native: Swift and SwiftUI on iOS, Kotlin and Jetpack Compose on Android. Call detection, calendar access, and background work depend on each operating system's APIs. On iOS, call observation uses CallKit; on Android, Callvent uses the system call log and a foreground service. For this project, we implemented the workflows directly for each platform so we could adapt permissions and interactions to its capabilities.
The iOS limit that became a privacy feature
CallKit provides CXCallObserver for observing calls. Its CXCall objects contain the call direction and state flags, such as whether a call has connected or ended. They provide neither the phone number nor a ready-made call duration. On iPhone, Callvent can detect calls while the app is active; users can add missed entries manually.
This leads to a distinct workflow on iOS: after a call, users select the contact themselves through the system contact picker. Apple's contact picker shares only the user's selection with the app and does not require general access to the address book. This deliberate selection limits which contact data reaches Callvent at this step.
Call logs and background work on Android
Android's system call log can contain phone numbers, call times and durations, and contact information. Callvent uses available details to match contacts automatically. Access to the call log requires the restricted READ_CALL_LOG permission. Distribution must also comply with Google Play's permitted use cases. Even with permission, a phone number or matching contact is not available for every call.
Callvent uses a foreground service with a notification for background detection. This makes the ongoing task apparent to the user. The implementation must account for Android's startup restrictions and device settings. A foreground service does not guarantee uninterrupted detection: users can stop the app through the system interface.
Saving events in the user's calendar
Callvent saves selected calls as events through the systems' calendar APIs: EventKit on iOS and CalendarContract on Android. Direct access requires the appropriate calendar permissions. Events are saved to a writable calendar configured on the device. Whether and where it syncs depends on the calendar service and its account settings, for example with iCloud, Google Calendar, Outlook, or CalDAV.
Callvent therefore uses the existing calendar infrastructure for saved events. A separate cloud service for storing these entries is not required. The app's local call list is separate: deleting Callvent removes that list, while events already saved to the calendar remain there. The Callvent product page also explains this distinction.
Down to the wrist
Apple Watch and Wear OS connect through WatchConnectivity and the Wearable Data Layer respectively. These APIs transfer information between phone and watch. Delivery timing depends on connectivity and app state: WatchConnectivity requires a reachable counterpart for immediate messages and may delay background transfers. The Wearable Data Layer uses Bluetooth or Google infrastructure depending on the connection. These conditions inform the watch interface; the APIs do not guarantee immediate synchronization.
From the app to visibility
Building an app is half the work, getting found is the other half. For Callvent we built the website in eight languages, with guides such as How to record a phone call and free work templates such as the call log template, each with structured data and a clean hreflang setup. We apply the same combination of development and marketing to client projects.
What you can take away from this
Callvent shows why we examine platform capabilities first for features such as call detection and background work. Native interfaces and existing calendar infrastructure suit this project: they support each platform's workflows and reduce the work needed to build separate event storage. The right architecture for your app depends on its features, permissions, and data flows. Our second case study shows how we bring AI features into an app: Inkward, handwriting becomes a mirror. For bringing your website to the stores as an app, see our fixed-price offer: PWA to App Store.