Cairn is an independent app maintained by one person. I aim to reply within 2 business days; issues that need reproducing may take longer. English or Chinese are both fine.
When reporting a problem, please include these — it saves a round trip:
App version and OS version — the version is under Settings › About › Version;
Which device (iPhone / iPad / Mac / Apple Watch);
What you did, what you expected, and what actually happened;
If it involves syncing or storage, include the text on the Settings › About › Storage row (for example "Syncing with iCloud" or "This device only (App Group)").
1. Does it cost anything?
No. Cairn is currently free: no subscription, no in-app purchases, no ads, no cap on how many events you can create, and no features behind a paywall. That also means there is nothing to "restore" or "cancel" — if anyone is charging you for Cairn, it isn't me.
2. Where is my data stored? Can I lose it?
Your events live on your own device, in an App Group container shared with the widgets. If your device is signed in to an Apple Account with iCloud available, the same data is also stored in the iCloud private database of your own Apple Account so it can sync between your devices. The developer runs no servers and cannot see your events — see the Privacy Policy.
You can check the current state under Settings › About › Storage:
Syncing with iCloud — this device plus your iCloud private database;
This device only (App Group) — local, not syncing;
Not persisted — an error state; nothing from this session will be saved, so please get in touch.
It also means that if a device is lost, broken, or erased while iCloud sync is off, I cannot recover anything for you. Please export a backup from time to time (next question).
3. How do I back up?
Settings › Data › Export Backup. It produces a file named Cairn-YYYY-MM-DD.json containing all your events and their reminder settings (title, symbol, colour, direction, date and time, time zone, repeat rule, lunar flag, category, note, pinned and archived state, creation date), then hands it to the system share sheet so you can put it wherever you like — Files, iCloud Drive, another cloud service, or emailed to yourself.
The file is plain, unencrypted JSON. You can open it in any text editor, and that's deliberate — your data should stay readable even without Cairn. The flip side is that anyone who gets the file can read everything in it, so store it somewhere sensible rather than a shared folder.
4. How do I move my data to a new device?
Either way works:
iCloud sync: sign both devices in to the same Apple Account and install Cairn; the data comes across on its own. The first sync can take a few minutes and needs a network connection.
A backup file: on the old device use Settings › Data › Export Backup, move the .json across, then restore with Settings › Data › Import from Backup.
Importing appends rather than replaces, and does not de-duplicate. If you import your own backup onto a device that already has the same events, you will end up with two of each. For a clean result, import into an empty state.
5. iCloud sync isn't doing anything
Start with the Settings › About › Storage row:
If it says "Syncing with iCloud", the channel is up and the problem is usually the network or timing — send the app to the background, come back, and give it a moment.
If it says "This device only (App Group)", iCloud wasn't available at launch. Work through the list below.
Confirm the device is signed in to an Apple Account with iCloud available;
Confirm iCloud is enabled for Cairn in System Settings;
Confirm your iCloud storage isn't full — writes are rejected when it is;
Confirm you have a network connection, then quit the app completely and reopen it (the storage channel is chosen at launch and doesn't switch mid-session);
Both devices must be on the same Apple Account; a different account will not contain the other account's data.
If it still won't sync, send me the "Storage" text from both devices along with the app version.
6. Notifications don't arrive, or "Scheduled notifications" is 0
Check the "Notification permission" row under Settings › Reminders:
Not decided — tap Allow Notifications and accept the system prompt;
Denied — the app can no longer prompt you, so tap Open in System Settings and enable notifications for Cairn there;
Allowed but "Scheduled notifications" is 0 — there is nothing to schedule: the events are in the past, reminders are switched off, or the events simply have no reminders. Add a reminder in the event editor, then use Settings › Reminders › Reschedule Now.
One system limit worth knowing: iOS caps pending notifications at 64. Cairn schedules within that budget, so it queues the nearest ones and tops the rest up each time you come back to the app. With many events, distant ones only enter the queue as they approach — they haven't been dropped.
7. My watch doesn't show my events
Watch data is pushed straight from your iPhone; iCloud is not involved. The copy on the watch is a read-only mirror of the last push.
On the iPhone open Settings › Apple Watch and read the "Watch" row: Connected / Watch app not installed / No watch paired / Not available;
If the watch app isn't installed, install Cairn on the watch from the iPhone's Watch app;
Make sure both devices are awake and in range of each other (Bluetooth or the same Wi-Fi);
Tap Sync to Watch to push manually, then check whether "Last pushed" updates.
Because the push is one-way, edit your events on the iPhone; the watch only displays them.
8. Widgets aren't updating
Widgets read the same data as the app and normally refresh within seconds of a change. If yours doesn't:
Open the app once — that explicitly asks the system to refresh the widgets;
Widget refreshes are scheduled by the system and slow down noticeably in Low Power Mode; that isn't under the app's control;
Remove the widget and add it again;
If Settings › About › Storage shows something other than App Group or iCloud (for example "Not persisted"), the widgets cannot read the data — please send me that row.
9. Importing from Calendar or Contacts finds nothing
Both importers need system permission, and both are read-only:
"No access to Calendar" — enable it under System Settings › Privacy & Security › Calendars;
"No access to Contacts" — enable it under System Settings › Privacy & Security › Contacts;
Permission granted but "Nothing to import" — calendar import only looks at roughly the next two years, so anything further out or already past won't be listed; birthday import only sees contacts that actually have the birthday field filled in.
Cairn never creates, edits, or deletes a calendar event or a contact, and nothing it reads leaves your device.
10. Imported events have no reminders
That's deliberate. Events imported from Calendar or Contacts never carry reminders — importing several dozen birthdays at once would otherwise bury you in notifications. Add reminders yourself, in the editor, to the ones you actually want.
11. Is the countdown bar drawn backwards?
No. Cairn's countdown bar reads like a battery: the filled part is the time you haven't spent yet, running from full to empty. The closer the day gets, the shorter the bar.
Many similar apps draw "how much has elapsed" instead, which runs the other way. Count-ups behave the opposite way here too — they accumulate, growing as you pass each milestone.
12. I travelled abroad — why didn't the number change?
Because the time zone is pinned to the event, not to your device. Whatever you picked in the editor decides when that event lands.
This is on purpose: a wedding that starts on a particular day back home shouldn't shift because you flew somewhere else. If an event genuinely should follow you, change its time zone to the one you're in.
13. How do lunar events work?
The event editor has a Repeat by lunar date switch. With it on, the repeat rule advances by the lunar calendar rather than the Gregorian one — so the corresponding Gregorian date drifts from year to year, which is the correct behaviour.
Settings › Display › Show lunar date is a separate switch: it only controls whether an extra lunar date line appears in the interface, and affects no calculation.
14. Archiving, deleting, and wiping everything
Archiving puts an event that has passed out of the way without deleting it: choose Archive on the event, and you'll still find it under Settings › Archive.
Deleting an event really deletes it. With iCloud sync on, the deletion propagates to your other devices.
To wipe everything: delete all events (including the archive), then delete the app — local data goes with it. The copy in the iCloud private database belongs to your Apple Account, and you can manage Cairn's storage and data under System Settings › your Apple Account › iCloud. There is no copy on my side to delete, because there never was one.