EventFahrplan is an open-source Android project that lets you create a branded schedule app for your event. Configure it with your schedule data, add your own branding, and publish to F-Droid or Google Play.
It works with event schedules published as XML or JSON. If your event uses Frab, Pretalx, Wafer or OpenKi to manage its schedule, the data is already in the right format.
Events using EventFahrplan include Chaos Communication Congress, Chaos Communication Camp, FOSDEM, FrOSCon, KotlinConf, and others.
To see a real life example, download an existing EventFahrplan app to see what your event's app could look like:
Chaos Communication Congress Schedule: F-Droid | Google Play
- Schedule grid: View the program by day and room, side by side
- Responsive layout: Custom grid for smartphones and tablets (try landscape mode)
- Session details: Speaker names, start time, room, links, and more
- Search: Find and filter sessions across the full schedule
- Favorites: Save sessions to a favorites list and export them
- Alarms: Set reminders for individual sessions
- Calendar: Add sessions to your personal calendar
- Sharing: Share a link to any session
- Feedback: Rate sessions and leave comments (via Frab or Pretalx)
- Change tracking: See what changed since the last schedule update
- Auto-updates: Schedule refreshes automatically (configurable in settings)
- Offline: The full schedule works without an internet connection
- Compatibility: Runs on Android 6.0 (Marshmallow) and newer
Session descriptions excluded
- Danish 🇩🇰
- Dutch 🇳🇱
- English 🇺🇸
- Finnish 🇫🇮
- French 🇫🇷
- German 🇩🇪
- German, Austria 🇦🇹
- Italian 🇮🇹
- Japanese 🇯🇵
- Lithuanian 🇱🇹
- Polish 🇵🇱
- Portuguese, Brazil 🇧🇷
- Portuguese, Portugal 🇵🇹
- Russian 🇷🇺
- Spanish 🇪🇸
- Swedish 🇸🇪
- Turkish 🇹🇷
- c3nav — Indoor navigation to session rooms
- Engelsystem — Volunteer shift coordination at large events
- Chaosflix — Share favorites with the media.ccc.de Android app
- In-app session feedback via Frab or Pretalx
- FOSDEM room status — Live room capacity at FOSDEM
- Android Studio (current stable release)
- JDK 21
- The latest Android SDK (installed via Android Studio's SDK Manager)
- Clone the repository:
git clone https://github.com/EventFahrplan/EventFahrplan.git - Open the project in Android Studio
- Wait for Gradle sync to complete
- Select a build variant (e.g.
ccc39c3Debug) from Build > Select Build Variant - Run on a connected device or emulator
The project uses Android product flavors to produce different apps from the same codebase. To create an app for your event:
- Fork the repository and create a branch for your event
- Add a new product flavor in
app/build.gradle.kts(use an existing flavor as a template) - Set your
SCHEDULE_URLto point to your event's XML or JSON schedule - Configure your
applicationId, event name, and other properties - Build and run to verify your schedule loads correctly
For the full step-by-step guide, including branding, icons, colors, and optional features, see the customization guide.
To create signed release builds for publishing, copy app/gradle.properties.example to
app/gradle.properties and update it with your own keystore details.
The supported XML and JSON schedule formats are
described in detail in the linked specifications. The older format produced by
Pentabarf is not supported by default. Other formats can be added by providing
custom ScheduleFileFormat and ScheduleSource implementations.
Please mind the known limitations. Bug reports and feature requests can be submitted as an issue. Read the contribution guide before contributing.
Text translations are managed on Crowdin. Your contributions are welcome!
English source strings and translations are synchronized via the Crowdin CLI tool.
German is excluded from being managed on Crowdin as long as the maintainer is a native German speaker.
New languages must be configured in the Crowdin configuration file crowdin.yaml before translations
can be downloaded. The file also contains usage examples.
- The project was started in 2011 as "CampFahrplan" and was developed by Daniel Dorau. He released the app for the Chaos Communication Camp and the Chaos Communication Congress in the following years. The app served as a digital schedule for thousands of users.
- In 2013, Tobias Preuss started contributing and soon began re-deploying the app for other events like FOSSGIS, FrOSCon, MRMCD and other conferences.
- In August 2017 the project moved to a new location and was renamed to "EventFahrplan" to acknowledge its broader use.
In 2025, this project was funded through the NGI0 Core Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program, under the aegis of DG Communications Networks, Content and Technology under grant agreement No. 101092990.
In 2023 & 2024, this project was funded by the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program, under the aegis of DG Communications Networks, Content and Technology under grant agreement No. 101069594.
Portions Copyright 2008-2011 The K-9 Dog Walkers and 2006-2011 the Android Open Source Project.
Copyright 2013-2026 johnjohndoe
Copyright 2011-2015 Daniel Dorau
Contributions from 0x5ubt13, Adriano Pereira Junior, Akarsh Seggemu,
Александр Рознятовский, aligoush, Andrea Marziali, Andreas Wirth, Andrulko, Andy Scherzinger,
Andreas Schildbach, Animesh Verma, bashtian, bjoernb, Björn Olsson Jarl,
burned42, ButterflyOfFire, cacarrara, Caio Volpato, Chase, cketti, codingcatgirl,
Dominik Stadler, e4ch, entropynil, erebion, ideadapt, isi_ko404, IsoLinearCHiP, Italo Vignoli,
Jasper van der Graaf, Joergi, Julius Vitkauskas, koelnkalkverbot, kpc21, Larissa Yasin,
lepawa, ligi, lucadelu, Luis Azcuaga, María Arias de Reyna, Mateus Baptista,
Matthias Geisler, Matthias Hunstock, Matthias Mair, MichaelRocks, Miguel Beltran,
mtpa, Muha Aliss, nautilusx, Nghiem Xuan Hien, NiciDieNase, Noemis, NWuensche, Oguz Yuksel,
Omicron, ozgurbaykal, Poschi, Qwertele, Róbert Papp, Robin Janssens, rotrot, Sebastian Zabel,
Sjors van Mierlo, Smarzaro, Stefan Medack, SubOptimal, Su Jade, taseret, tct123, Teeranai.P,
ThatWriterJon, Torsten Grote, Victor Herasme, Vladimir Alabov, Yanicka, zadintuvas
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.



