All projects

Dienstplan

„Dienstplan“ is a schedule viewer and notifier for Android and iOS

AndroidiOSFirebaseKotlin
Dienstplan on Android

Dienstplan was one of my first projects which was Kotlin and Firebase from scratch. In 2026 it was extended to include an iOS version.

Du möchtest diese App in deiner Einsatzorganisation nutzen? Kontaktiere mich unter support@moop.at!

What it does

The app works as schedule (Dienstplan) viewer and reminder for members of the Red Cross in Styria. You provide it with a link to your schedule .ical file (every member has one) and the app displays your upcoming shifts, and more importantly, it notifies you of changes. To get notifications faster (within a few minutes after each change instead of a couple of times a day) users can purchase a subscription, which is billed through Play/App Store.

Fetching schedule updates

Regularly updating the schedule in the background on a user’s device to find changed events uses power and makes users unhappy. Besides, those checks are routinely blocked by the operating system, and almost impossible to do reliably on iOS. For paying users this was solved by sending the calendar link to Firebase where a Cloud Function is triggered regularly which checks the schedule, compares it with the previous version, and notifies the device if there’s a change. This allows for super-fast and reliable updates without draining the device battery.

Confirming paying users

Users can pay to use the app: with a yearly subscription they help cover development cost and keep the app free of adverts. As small thank you they get notifications quicker and they can see how an event changed over time.

To confirm that a user is indeed a paying user the purchase information is sent to Firebase where it is validated with Google/Apple. If it is valid the user is granted extra privileges and another subscription check is scheduled for just after the subscription is due to expire. All this is done using Firebase Cloud Functions and triggers for Firebase Cloud Firestore.

The app is available in the Austrian Play Store, and soon on the App Store as well (review pending). Users outside Austria may not be able to download the app.