--- title: Troubleshooting description: Fixes and explanations for the most common problems, including late alarms, failed pairing, notes that won't move and rules that produce no dates. order: 4 --- # Troubleshooting Things that go wrong, and why. Every entry here is known behaviour of the app as it ships today, not a guess. --- ## Alarms and reminders ### An alarm fired late, or not at all Almost always the **exact alarm** permission. Without it Android is free to batch your alarm into a convenient wake-up window to save battery, which can mean minutes late. Calendite has to ask for this separately from notifications because Android treats it as a special access. The setup wizard requests it; if you skipped that, it's in system settings under *Alarms & reminders*. Also check: - **Notification permission.** Without it nothing appears at all. - **Battery optimisation.** Aggressive vendor battery managers (common on Xiaomi, Huawei, OnePlus and Samsung phones) kill background work regardless of what Android promises. Exempt Calendite if alarms are unreliable. ### A reminder didn't ring while I was in a meeting That's **Do Not Interrupt**, and it's deliberate. A reminder with it switched on defers itself until the event you're in has ended, rather than ringing over you. It gives up after three automatic deferrals, so it can't be postponed forever. All-day events don't count as "in progress"; otherwise a single all-day event would silence an entire day. ### A repeating reminder isn't where I expect Check its **recurrence anchor**: - **On schedule**: dates come from the rule. Completing late changes nothing. - **After completion**: the next one is computed from when you actually finished. "Water the plants every 3 days" behaves completely differently under the two. See [Reminders and alerts](/docs/everyday-use/reminders-and-alerts.html). ### Alarms stopped after a reboot They shouldn't; alarms are re-armed on boot. If they didn't, Calendite was most likely blocked from running at startup by battery optimisation. --- ## Sharing and pairing ### Pairing fails and nothing explains why **This is a known bug.** On Android 13 and later, Calendite is currently missing a permission Android requires for the local network discovery that pairing uses. Without it, discovery **fails silently**: the two phones never find each other, and the app looks broken rather than blocked. Meanwhile, check the ordinary causes too: - **Both phones must be on the same Wi-Fi.** Not one on mobile data. Not on a guest network that isolates clients from each other. - **Client isolation** on some routers and most public Wi-Fi blocks phone-to-phone traffic entirely. - **The invite screen must be open.** The inviting phone only advertises while that screen is showing. ### The six digits don't match **Stop** and tap *They Don't Match*. Nothing has been exchanged yet (the calendar key isn't sent until both sides confirm), so nothing is lost by starting over. Matching digits are the whole security of the ceremony. Never tap through them. ### Sharing doesn't work when we're apart This is expected behaviour: the default is **same network only**, with no server involved. To sync when apart, pick a sync server at More → Settings → *Sync Server*. Until you do, the phones have no way to reach each other. See [What leaves your device](/docs/privacy/what-leaves-your-device.html) for what a relay can and can't see. ### I scanned an invite link and it told me to ask for a code Invite links you accept later **aren't available yet**. Use a live pairing: both phones present, QR scanned, digits confirmed. ### I removed someone but their events are still there That shouldn't happen. Removal purges their events and tags, revokes their device and rotates the calendar key. If events remain, report it as a bug. Note what removal *can't* do: anything they already synced is on their device. Revocation protects the future. ### A partner's events look exactly like mine This is a known gap. Owner markers, hatched "Busy" blocks and the read-only protection on partner events **aren't drawn yet**, even though the underlying data syncs correctly. So a partner's event currently looks like your own and appears editable. --- ## Notes ### My notes aren't moving between Past / Today / Future If you've pointed Calendite at your own folder (for example an Obsidian vault), **the nightly sweep doesn't run there**. It only ever sweeps the app's private storage. So bucket re-filing and description propagation silently don't happen for vault users. It's a known gap, not something you've misconfigured. Notes are still saved and readable; they just stay in the bucket they were created in. ### Tables and checkboxes show as raw text The rendered view uses plain CommonMark, so GitHub extensions (pipe tables, `- [ ]` task lists, `~~strikethrough~~`) don't render. Checkboxes aren't tappable either. ### A table or code block turned into `[Table · 0]` and then broke **This one can lose content.** Blocks the rich editor can't represent (code fences, tables, dividers, quotes, task lines) are swapped for placeholder lines like `[Table · 0]` while you're in **Edit** mode, and restored when you leave. But the placeholder is shown as ordinary editable text with nothing guarding it, so **editing or deleting that line destroys the block**. Edit those in **Markdown** mode instead. ### Toolbar buttons do nothing Five of them aren't available yet: **Heading**, **Strikethrough**, **Inline code**, **Link** and **Clear formatting**. The heading button draws a caret implying a menu that never opens. Working: Bold, Italic, Bullet list, Numbered list, and the four that insert literal markdown (Divider, Quote, Task, Table). For anything else use **Markdown** mode. --- ## Rules and repeats ### My rule produces no dates at all Most likely a **data-backed rule with no data**. `Tag(Work)`, `Event(Work)`, `Feed(BankHolidays)` and bare categories like `BankHolidays` resolve to *nothing* unless the app has the matching data. An event whose only rule is `Tag(Work)` with no Work events will never fire. Also check `WORKDAY`: it's an alias for `Tag(Work)` and has the same requirement. ### An excluded day came back **Order matters.** Rules apply left to right; `!` rules remove, ordinary rules add. ``` WD, !Fri ✅ weekdays except Friday !Fri, WD ❌ removes Friday, then adds all weekdays back ``` Put inclusions first, exclusions last. ### `2Sat` and `2_Sat` give different days They're different rules. `2Sat` is the **2nd Saturday**. `2_Sat` is the Saturday in the **2nd week**. They diverge whenever a month starts mid-week. ### My variant didn't replace the base event It isn't supposed to. **A variant supersedes the base only on the days the variant itself fires.** Every other day, the base still fires. If you want variants to be the whole schedule, give the base a rule that produces nothing on those days, or no rule at all. ### I changed the base event and the variants didn't follow This is expected behaviour. Times, duration, title, tag, colour and location are stored on the variant when it's saved. Only alerts, tags-by-fallback and visibility resolve live. Edit the variants. ### The "Applies to…" checkboxes on an inner event do nothing The checkboxes save and display correctly, but **aren't applied when occurrences are generated yet**. Don't rely on them. --- ## Feeds ### My feed isn't updating There's **no refresh schedule**. Feeds sync when you save one and when you bring the app to the foreground. No background polling, no "refresh now" button. ### The form saved but the rule doesn't work Probably the category name. The form only rejects empty names and ones starting with a digit, but the rule parser is stricter: it requires at least one lowercase letter. `UEFA` and `Sports2024` pass the form and then fail to parse. Use names like `BankHolidays`, `TermDates`, `BinCollections`. ### I can't save a feed at all Feeds are **Android only for now.** On iOS and web the form appears but can't be saved yet. --- ## Platform Several features aren't available outside Android yet. If something is missing rather than broken, check here first: | Feature | Android | iOS | Web | |---|:---:|:---:|:---:| | Calendar, events, rules | yes | yes | yes | | Alarms and notifications | yes | no | no | | Natural-language input | yes | no | no | | Notes | yes | no | no | | Data source feeds | yes | no | no | | Location search and map | yes | no | no | | Calendar sharing | yes | no | no | | Device calendar import | yes | recurring only | no | On iOS, *Change folder…* under Notes & files does nothing: the folder picker isn't available on iOS yet. --- ## Next - [What leaves your device](/docs/privacy/what-leaves-your-device.html) - [Editing and deleting](/docs/everyday-use/editing-and-deleting.html) - [Sharing your calendar](/docs/privacy/sharing-your-calendar.html)