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
Callvent is an app we built ourselves: it turns phone calls into calendar events. After hanging up, one tap saves the call to your calendar with contact, time, a note, and a callback reminder. The app is available for iOS, Android, and the smartwatch; all details are on callvent.app. This case study shows what the technical implementation looks like.
Why native instead of cross-platform
Callvent is fully native: Swift and SwiftUI on iOS, Kotlin and Jetpack Compose on Android. That was not a matter of taste. The core feature, detecting calls, sits deep in the operating system, and the two platforms solve it in fundamentally different ways. iOS reports calls through the CallKit framework, Android delivers them through the system call log and a long-running service. A shared cross-platform layer would not have hidden these differences; it would only have added another source of errors on top.
The iOS limit that became a privacy feature
On Android, an app may read the phone number from the call log after a call and match the contact automatically. On iOS, Apple never hands out the number: CallKit only tells an app that a call happened, how long it lasted, and in which direction. At first this looked like a dealbreaker. In the end it became a strength: on iOS, the user picks the contact after the call through the system contact picker. The app receives exactly one contact and never has access to the address book. A stronger privacy promise is hard to make for a call app on iOS.
Reliable background work on Android
Nobody keeps a call app open in the foreground. The value of the app is created in the background, and that is exactly where modern Android cleans up aggressively. The only approach that works consistently across Samsung, Xiaomi, and Pixel is a foreground service with a visible notification. That is honest towards the user, and it is now officially intended: Android 16 introduced the dedicated callMonitoring service type for exactly this use case, and Callvent builds on it.
The calendar is the database
Callvent does not store the call history in its own cloud. It writes events through the calendar APIs of the systems (EventKit on iOS, CalendarContract on Android). The entry ends up in the calendar the user already works with, whether iCloud, Google Calendar, Outlook, or CalDAV, and syncs from there. The consequence: no backend, no accounts, no analytics SDKs. If you delete the app, you keep your data, because it lives in your own calendar. For an app that handles sensitive communication metadata, this is simply the safest architecture.
Down to the wrist
Apple Watch and Wear OS are connected through the respective sync layers (WatchConnectivity and the Wearable Data Layer). The watch shows detected calls immediately and rolls the entry back if saving on the phone fails. This keeps the watch responsive even when the Bluetooth connection is flaky.
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
If your app idea reaches deep into the operating system, for example calls, sensors, or background services, native development is almost always worth it. And if user data can live in system infrastructure such as the calendar, you save yourself a backend, privacy risks, and running costs. How we bring AI features into an app is shown in our second case study: Inkward, handwriting becomes a mirror. And for the simpler case of bringing your existing website to the stores, there is our fixed-price offer: PWA to App Store.