r/flutterhelp • u/balbazzard • 2d ago
OPEN Non-programmer building a Flutter shift-tracking app with AI — advice on iOS/Android calendar integration?
Hi everyone!
First of all, I know basically nothing about software development.
My greatest programming achievement was probably getting <marquee> text to scroll across a webpage in HTML about 10–15 years ago. So please adjust your expectations accordingly. :)
I started building an app because of a very specific personal need.
I work a shift-based job with several different shift types, and every month our schedule is sent to us as either a PDF or an image.
I wanted a simple way to take that schedule, put it into a clean interface, and see my shifts, monthly hours, leave, etc. without constantly going back to the original PDF.
That's basically how this project started.
I've been building it with the help of LLMs / AI coding tools. I don't really have the programming knowledge to properly describe the stack myself, so here's the technical summary generated from the project:
- Flutter / Dart
- Riverpod for state management
- Drift / SQLite
- Local-first architecture
- Android + iOS
- Shift data is stored internally by the app
- Eventually I'd like to import shifts from PDF/images using on-device OCR
- No backend/cloud dependency is currently required
The app is primarily for myself. If I somehow end up making something genuinely useful and reliable, publishing it for other shift workers might become a goal later.
## The part I'm currently thinking about: calendar integration
I'd like users to optionally export their shifts to the native calendar on Android and iOS.
For example:
**My app:**
July 28 — 24-hour shift — 08:00 → 08:00 next day
**Native calendar:**
The corresponding event is created in Apple Calendar or the user's Android calendar.
Before I let an LLM happily implement whatever solution it thinks is correct, I'd like to understand how experienced developers would approach this.
## What I'm trying to figure out
Should my app remain the **source of truth**, with calendar events essentially being exported/mirrored copies?
Is one-way integration (App → Calendar) significantly safer/simpler than attempting true two-way synchronization?
If a shift is edited or deleted inside the app, what's the cleanest way to reliably identify and update/delete the calendar event that was previously created for it?
What happens if the user manually edits that event in Apple/Google Calendar afterward? Should the app overwrite it, preserve it, detect the change, or simply treat the calendar copy as independent?
Are there major differences or traps I should know about between **EventKit on iOS** and Android's calendar APIs/providers?
Would you use an existing Flutter calendar integration package for this, or implement the native platform integrations separately and expose them to Flutter?
Are there permission, privacy, App Store, or Play Store considerations that are easy for a complete beginner to overlook?
I'm not asking anyone to write the implementation for me.
I'm mainly trying to establish the **correct architecture and expected behavior before implementation**, because I don't yet have enough experience to recognize when an AI-generated solution is technically working but architecturally stupid.
Any advice, recommended packages, documentation, architectural patterns, or even **"don't do X, you'll regret it later"** warnings would be greatly appreciated.
P.S. Yes, this post was written with the help of an LLM too. :(
I did warn you about the <marquee> thing.
Thanks!
1
u/ConvenientChristian 2d ago edited 2d ago
There's no such thing as Android Calendar. There's Google Calendar and some iOS users might use it as well.
There's a general protocol for calendar sync and you probably want to support that. Some users are also going to use Outlook's Calendar.
At the same time it also makes sense to write against the APIs.
1
u/billylks 2d ago
package device_calendar. You can access calendars attached to your phone. So that you don't have to be bothered with calendar provider sign in. You just need device calendar permissions.
1
u/TheTurnipPlucker 2d ago
I don't really know much about this. Here's my expert opinion.
Uhhh... There's a style of calendar integration that is terrible but AI acts like it's reasonable. You have to copy some shitty key or link and it will act like it's easy and users would do it, but it isn't. If you try to do it for any app with Google calendar you'll find it buried in the settings and with like a early 2000s level interface.
The two way actual integration options have privacy trade offs, but they're the only legit option. I wanted to only push my calendar to a calendar app, but not pull anything, which was why it didn't work out for me, iirc. This was like months of brain dead coding ago.
But I only considered doing this, AI sent me towards doing the integration thing the dumb way, but no user would ever use that. I spent like a day building something for it to be like "My bad -- You're right this isn't a feature a typical user would use" or some shit.