PearCal is a private, peer-to-peer calendar app. Share events directly with people you trust, with no server, no account, and no third party in the middle. Features: - Create and manage personal calendar events - Share events with peer groups over a direct P2P connection - Import public holidays for US, Canada, and UK - Invite members via QR code or share link - Fully offline-capable — your data stays on your device
First release: Mar 10, 2026, 35 total releases.
Most recent release: Sep 5, 2026.
Appears in 10 app stacks.
4,200 sats / 2 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Sep 5, 2026 1.0.47## What's Changed ### ✨ Improvements - Mexican holidays: Turn on Mexico in Settings > Holidays and your calendar fills in the seven national rest days, plus election day and the presidential handover in the years they fall. The three holidays that move to a Monday move on their own. ### 🐛 Bug Fixes - The home-screen widget shows today again: Overnight it kept yesterday's events under today's date, and opening the app once did not always fix it. It
More…
now turns the page at midnight on its own, and keeps a week of days ready so it is never showing the wrong one. - Blind peers on Start9 start up again: After the StartOS 0.4 update, a blind peer would fail to start and keep restarting because the update moved its data folder. It now repairs itself and carries on. - Installing a blind peer on Start9 0.4 works: Install and update were failing with a not-found error. The right package is now published for 0.4 boxes. - Aug 24, 2026 1.0.46## What's Changed New Features - Import and export calendars on the computer app. You can bring a .ics file into PearCal Desktop, and save your own events back out as one. - Choose where imported events go. When you import a calendar file, PearCal now asks once whether those events should stay private to you or join one of your shared calendars, instead of deciding for you. It tells you who will be able to see them before you confirm.
More…
- See what is using your disk space. Settings on the computer app has a new Storage section showing what PearCal is keeping and how much of it is old history you no longer need. Improvements - The always-on helper on a Mac keeps running after you log out, so your calendar carries on syncing when nobody is signed in. Bug Fixes - Installing the always-on helper on a server with no desktop no longer ends with an error message. The install had actually worked; only the report was wrong. - Fixed a Mac problem where two copies of the helper could end up fighting each other, and another that could leave it switched off without saying so. - Aug 16, 2026 1.0.45## What's Changed ### 🐛 Bug Fixes - Opening the app after a while away is fast again. If you'd left PearCal closed for more than a few minutes, it could sit for two to four minutes before showing events other people had added. It now catches up within seconds. This was most noticeable on iPhone. - The desktop app updates itself when your computer wakes up. Previously it
More…
could stay out of date after your machine had been asleep, until you quit and reopened it. - Aug 9, 2026 1.0.44## What's Changed New - Desktop now warns you when a shared calendar is in trouble: when it can't sync on this device, when nothing has arrived from the others for a while, or when you're waiting to be approved. Calendars needing attention are marked in the sidebar. Previously the desktop said nothing. Fixed
More…
- Desktop: you could change other people's events even when only their creator was allowed to. Your change was saved and sent out, leaving a version only your computer believed in. Now it opens read-only. - Invite links could be created without everything needed to join an encrypted calendar, so whoever accepted one could never sync. Links are now built correctly, and a device that can't make a working one says so instead. - Removed a "Rekey Group" button from group settings that could never finish. - Aug 7, 2026 1.0.43## What's Changed Fixed - Fixed the desktop app freezing shortly after you opened it. It would show your calendar and then stop responding, or open a shared calendar and never show any of its dates. The desktop version had been missing several sync repairs the phone apps already had. - Fixed the app slowly using more and more memory the longer it ran,
More…
until syncing stopped altogether. This usually looked like a calendar that had been working fine suddenly going quiet. - iPhone: tapping an older-style invite link while PearCal was closed opened the app and then did nothing. Normal invite links, and links tapped while the app was already open, were not affected. - Aug 6, 2026 1.0.42## What's Changed New - Your calendar now tells you when it has stopped syncing with the other members, instead of just going quiet. It waits a couple of days before saying anything, so it will not nag you when someone is simply away for the weekend. Fixed
More…
- Fixed the app failing to open, sometimes showing "Failed to start PearCal" and sometimes just a blank screen. This could happen after closing and reopening quickly. - Fixed a device getting stuck when it had fallen behind, where it would sit on the loading screen, never catch up, and drain the battery. It now fetches what it is missing and stays usable while it does. - Warnings about a calendar having a problem could disappear moments after showing, so you would never see them. They now stay put. - Linux: the app would install but never open on Ubuntu 24.04 and similar. Fixed. Improved - Catching up after being away is much faster and uses far less battery. - Fewer pointless background writes when nothing has actually changed. - Jul 31, 2026 1.0.38## What's Changed ### Bug Fixes - **Canadian and UK holidays landed on the wrong dates.** When a holiday fell on a weekend, it was being moved to the *Friday before* instead of forward to the next free weekday. The most visible symptom: Boxing Day showing on Christmas Day. Canadian and UK holidays now follow their own rules rather than the US one, so each weekend holiday moves forward to the next weekday nobody else has taken.
More…
- **Two related date problems came out of the same fix.** New Year's Day could render as an invalid date in some years, and two holidays could occasionally claim the same day. Both are fixed, and the dates were checked against the official published lists across 2021 to 2032. - **Calendars that already had the wrong dates now fix themselves.** Previously you had to switch a holiday calendar off and back on to pick up the corrections. PearCal now tidies these up on its own when you open the app. Reminders you set on a holiday move with it, and any holiday you deleted on purpose stays deleted. - Jul 28, 2026 1.0.37## New Features **Reset app data.** You can now clear PearCal from inside the app, under Profile then Settings. There are two options: clear your calendar and groups but stay signed in as yourself, or start over completely as a brand new user. Previously the only way to do this was to delete the app and reinstall it, which on iPhone meant losing everything with no way back. **Turn the relay off on desktop.** Mac, Windows and Linux now have the same privacy switch the phone app already had, so you can stop PearCal routing through the shared relay if you would rather it did not. **See more in the widget.** The home screen widget now shows more of your upcoming events instead of stopping at five, and fits as many as the widget size allows. **Know why a join failed.** If joining a group does not work, the app now tells you what went wrong instead of quietly doing nothing.
More…
## Privacy **Your recovery phrase is no longer stored in iCloud or Google.** Older versions quietly saved it to Apple's or Google's cloud, with no way to see or switch that off. It now stays on your device only, and this update automatically deletes any copy that was already uploaded. ## Improvements **Clearer blind peer pairing.** Pairing now shows progress on both the app and the seeder dashboard, with a countdown, and gets out of your way once it succeeds. **Accurate blind peer details.** The blind peer list showed how many groups it was seeding at the moment you paired it, which could be badly out of date. It now shows the real number. ## Bug Fixes **Moving an event to another date made it disappear.** The event vanished from your calendar until you restarted the app, and on a paired second device it could be lost for good. Fixed on phone and desktop. **Multi-day events dropped out of the widget.** An event spanning several days showed on its first day and then disappeared, even while it was still running. **Groups could lose the key that keeps them private,** which left you stuck behind a "can't sync" message. Existing affected groups repair themselves, and the desktop app can now repair them too. **Re-sharing an event did not bring it back** for anyone else in the group. **Invite links were unreliable.** Sometimes tapping one did not open the join screen at all, and older links could leave the app stuck on a blank screen until you force-closed it. ## PearCal Seeder **Visible on StartOS 0.4.** Adding peerloomllc.com as a custom marketplace on a StartOS 0.4 server showed only PearCircle Seeder. PearCal Seeder now appears there and installs correctly. Servers on 0.3.5 were never affected. - Jul 23, 2026 1.0.36## What's Changed ## New Features **Connects on networks that used to block it.** Some mobile networks stop phones from reaching each other directly, and on those networks PearCal simply never connected. Now, after a direct connection has already failed, your devices fall back to a relay run by PeerLoom - a machine that passes the scrambled data along without being able to read any of it. You're in control of this. Profile -> Advanced -> Connection has a switch, "Use a relay when direct fails", on by default. Turn it off and your devices only ever talk to each other directly, at the cost of not connecting at all on a network that blocks them. To be plain about what the relay sees: nothing readable. Your calendar is encrypted the whole way and the relay holds no key. It can tell that two devices are talking and roughly how much, which is true of any relay, and we'd rather say so than pretend otherwise. It stores nothing and it's only ever used as a last resort.
More…
## Bug Fixes **Moving an event between groups no longer makes it disappear.** If you moved an event from one group to another, it vanished from the calendar of the phone you made the change on. Nothing was ever actually lost, and it came back when you reopened the app, but it looked like your event was gone. Fixed. **One notification per change, not three.** A single new event could burst of changes into one summary wasn't working while the app was in the background, which is exactly when you'd get a flood of them. A busy sync now arrives as a single "Calendar updated" line that updates in place. **Rejoining a group that stopped syncing.** In rare cases a device could lose the key to a shared group. It would quietly stop receiving events, and any invite it created would be broken for whoever accepted it. PearCal now spots this, tells you, and fixes itself when someone sends you a fresh invite link. ## For anyone running a blind seeder **The Start9 Properties page works.** It was blank before; it now shows your seeder's key and live stats. **Update notes are accurate.** Every update used to show the original "first release" text no matter which version you were installing. **Faster startup reporting.** Seeder stats appear within seconds of starting rather than after a minute and a half. - Jul 22, 2026 1.0.35🐛 Bug Fixes - Moving an event from one group to another no longer deletes it. Before this fix the event vanished from everyone else's calendar and could not be brought back. - Groups that had quietly stopped syncing now repair themselves the next time you open the app. - Deleted groups no longer linger in your group list, and empty blank rows are gone. - Joining a group now tells you when something went wrong. It used to sit on a blank "Inviter" card forever with no explanation, whether you had been declined or simply could not reach anyone. - Android: fixed a frozen screen when returning to the app after it had been in the background for a while. Taps still worked but nothing redrew. 🔒 Security & Privacy
More…
- Fixed a problem where a group could lose the key that keeps its contents private. When that happened the group stopped syncing, and invites shared from that device left the key out so new members could not join properly. Affected devices now repair themselves automatically. ✨ Improvements - The invite QR code now slides up as a sheet you can swipe away, matching the rest of the app. - Jul 18, 2026 1.0.34🎉 New Features - Blind Peers — always-on backup & sync for your shared groups. Pair an always-on "blind peer" to a group and it keeps everyone in sync and backed up around the clock — even when every member's phone is offline — and it can never read your events. Scan a QR to admit one, name each peer, watch its status live, and remove it anytime. - Encrypted groups. Group data is now encrypted per group, so blind peers (and any helper along the way) only store scrambled data they can't decrypt. Existing groups get a one-time heads-up when encryption turns on. ✨ Improvements - More reliable sync when two devices share a Wi-Fi network. - Desktop: application menu (Edit + Help/About); notification behavior now matches mobile; irrelevant buttons hidden. - Blind peers can be renamed inline, and names show up across your devices.
More…
🐛 Bug Fixes - Android: fixed the stuck-on-loading-screen after force-close + quick reopen. - iOS: fixed a launch crash. - App no longer gets stuck at startup if one group fails to open. - A group's sync helper no longer lingers after the group is deleted. 🔒 Security & Privacy - Deleting a group, leaving a group, and transferring ownership are now verified against the real owner — a removed/malicious member can't delete or hijack a group. - Group data is encrypted end-to-end across sync helpers. 🖥 Desktop & Seeder (GitHub builds) - Blind-peer app installable on Linux, Windows, macOS, Umbrel, and Start9, with auto-update. - Windows desktop builds now run locally without a build VM. - Jul 14, 2026 1.0.33## What's Changed ### ✨ Improvements - collapsible accordion rows on About page ### 🐛 Bug Fixes - show events that run past midnight in Widget - remove stray frame from icons and clean up startup screens
More…
- fixed Widget refresh caching issue ### 🔧 Other - iOS Local Network force-prompt module - Device-pair: send hello over a reused connection - Jul 9, 2026 1.0.32## What's Changed ### ✨ Improvements - settings menu enhancements - replace modal with bottom sheet ### 🐛 Bug Fixes - remove stray frame from icons and clean up the startup screens
- Jun 19, 2026 1.0.31## What's Changed ### ✨ Improvements - custom interval recurrence + editable series end date - optional show-upcoming-events on the daily widget (toggle under Profile --> Personal settings) - in-place auto-update for NSIS + AppImage ### 🐛 Bug Fixes
More…
- restore reminders after reboot and app update - event-editor field parity + centered modal (desktop) - Jun 18, 2026 1.0.30## What's Changed ### ✨ Improvements - hide unused Advanced settings ### 🐛 Bug Fixes - stop month/week event chips squishing into thin strips (desktop) - deliver group sync notifications while app is backgrounded
- Jun 17, 2026 1.0.29## What's Changed ### 🐛 Bug Fixes - multi-day events spans across days - settings parity between mobile and desktop - USA holiday colors (red, white and blue, baby!)
- Jun 8, 2026 1.0.28## What's Changed ### 🐛 Bug Fixes - stop single-group events splitting into a busy-time shadow duplicate
- Jun 4, 2026 1.0.27## What's Changed ### ✨ Improvements - cross-grant group write access to linked sibling devices - deterministic pair-time group fan-out + re-announce retry ### 🐛 Bug Fixes - consolidate sibling-authored personal data onto the primary
- May 27, 2026 1.0.26## What's Changed ### ✨ Improvements - Bitcoin holiday subscription ### 🐛 Bug Fixes - re-anchor alarms after crossing timezones
- May 7, 2026 1.0.25## What's Changed ### ✨ Improvements - add 1-week and 2-week presets - repeat-forever toggle + Entire Series edit scope - edit recurring series frequency - custom reminder picker
More…
### 🔧 Other - refresh app + notification icons across iOS and Android - May 1, 2026 1.0.24## What's Changed ### ✨ Improvements - Bidirectional pair via QR - Guided welcome tour - About modal + Light/Dark theme + larger default window ### 🐛 Bug Fixes
More…
- Linked-devices auto-seed + sibling-snapshot + Mac LAN pairing ### 🔧 Other - Desktop client (macOS, Windows, Linux) via Electron - Apr 27, 2026 1.0.23## What's Changed ### New! - Multi-device support with linked identity ### ✨ Improvements - personal Autobase infrastructure for multi-device - device-pair handshake protocol
More…
- device-pair UX — Welcome screen + Profile toggle + deep-link routing - auto-join groups on sibling paired devices - streamline pair onboarding + fix identityProfile LWW - identity-level kick blocking - linked devices list with editable nicknames ### 🐛 Bug Fixes - widget tomorrow time format + Month view event sort - multi-device regressions in pair flow - Sweep Orphaned Data unsafe for multi-device installs - survive group autobase errors; warn on Sweep Orphaned Data - pairing + personal-base hardening ### 🔧 Other - Profile name/avatar sync + Identity ID - Apr 23, 2026 1.0.22## What's Changed ### ✨ Improvements - mnemonic-derived identity with platform-backed recovery - wipe+rejoin with owner approval - owner recovery from mnemonic - ownership transfer + claim-after-inactivity - recurrence UX — toggle row + unified delete - hide non-invitee events and others' busy-time from agenda
More…
### 🐛 Bug Fixes - 12-hour am/pm notification times - agenda scroll when future content is short - Apr 20, 2026 1.0.21## What's Changed ### ✨ Improvements - sweep orphaned group cores from storage - single-group UX defaults and per-author event colors - read-both shim for split groupMembers ### 🐛 Bug Fixes
More…
- coalesce iOS syncNotify bursts on overnight wake - clear avatarHash when profile photo removed - prevent broken-group resurrection after force-stop - auto-leave group when kicked while already connected - reinvited members never appear; second-kick never auto-leaves ### 🔧 Other - Fix: prevent orphan-sweep from purging live peer writer cores - Broken-group recovery + manual sync - prune expired event tombstones at boot - batch private-note lookups in listEvents - skip no-op writes in mirrorToLocal - raise UI avatar cache to 256 entries - downscale avatars to 96×96 webp at ingest - debounce sync emission + coalesce tab poll - Apr 17, 2026 1.0.20## What's Changed ### ✨ Improvements - daily morning digest notification ### 🐛 Bug Fixes - grant Local Network permission so hyperswarm LAN sync works - exclude shadow/busy-time events from morning digest
More…
### 🔧 Other - rename Share→Invite, place Share Busy Time adjacent - Widget: side-by-side concurrent events + time/location parity - group-migration phases 1 + 2a + 2b - Phase 3 corestore purge with 14-day grace period - Apr 16, 2026 1.0.19## What's Changed ### ✨ Improvements - Cross-group busy time: Share an event's time + title (not details) into other groups as a muted "busy" marker. Great for signaling availability without leaking context. - segmented colors for multi-group events - shadow/busy event shares. share event title on calendar for minimal schedule awareness ### 🐛 Bug Fixes
More…
- preserve animated gif/webp avatars in gallery picker - buffer invite URLs to survive cold-open listener race - drop deleted shadows, past events, shadow notifications - dedup cross-group delete notifs, include event title, fix UTC date filter - Apr 14, 2026 1.0.18## What's Changed ### ✨ Improvements - private event notes (local-only) - Android home-screen widget - iOS home-screen widget ### 🔧 Other
More…
- Fix: month view defaults to Today - Storage breakdown, analyze, and local-DB reclaim - Reorganize Settings into Personal and Advanced groups - Multi-day agenda + full-page monthly grid view - Apr 13, 2026 1.0.17## What's Changed ### ✨ Improvements - apply default reminders to shared events - add Group Filter label to calendar filter pills - per-event RSVP with Going/Decline ### 🐛 Bug Fixes
More…
- preserve GIF and WebP animation in iOS photo picker ### 🔧 Other - Switch invite links to Universal Links - ICS import/export preserves group associations - EventModal redesign: sticky save, sections, expanders, Responses banner - Unify photo pickers into single Camera+Gallery chooser - Apr 11, 2026 1.0.16## What's Changed ### ✨ Improvements - add configurable seed peer setting - improve iOS background sync and fix startup race ### 🐛 Bug Fixes - startup race condition, splash screen, and events scroll
More…
- skip sync notifications for past events - avatar sync revert, stale closure, gallery picker - group metadata wipe on rejoin and removedMembers propagation - group member sync across devices and metadata wipe on rejoin - duplicate member-join notifications and voluntary leave sync - cancel notifications when events are deleted via sync - prevent pre-existing event notifications on group join - prevent duplicate member-join notifications - allow members to rejoin group after voluntary leave I am building! - Apr 2, 2026 1.0.15## What's Changed ### ✨ Improvements - **ICS import and export** - **add Meeting Link field** Adds a dedicated Meeting Link field for Zoom/Meet/Webex/Teams etc. URLs that renders a clickable link preview in the event modal - **add Daily and Weekly calendar views** ### 🐛 Bug Fixes
More…
- **sync notification shows group name instead of 'a group'** - **update onboarding last slide to match current UI** - **show Toast after saving .ics to Downloads on Android** - **export .ics as a real file on Android via FileProvider** - **exportIcs — handle directly in onWebViewMessage, not via worklet** - Mar 31, 2026 1.0.14## What's Changed ### ✨ Improvements - **Multiple reminders per event**: Multiple reminders per event - **Multi-day events, auto-suggest prefill, default edit permission** - **Share App button on About tab** ### 🐛 Bug Fixes
More…
- **preserve nickname set during group join through P2P sync** - **prevent bottom sheets from scrolling horizontally on iOS** - **broadcast member record when Autobase becomes writable** - **hide Gallery button on iOS — Camera already offers library access** - **make event save fully optimistic on iOS — modal closes immediately** - **add sync handler for iOS BGAppRefreshTask** - **change foreground service type to remoteMessaging, fix debug APK bundling** - **remove debug logging, change 'Reminder' label to 'Reminder(s)'** - **use occ.id for reminders in recurring series loop, harden useEffect deps** - **@escaping reject in canOpenLightning; iPad popover sourceView in ShareModule** - **Fix notification tap not navigating to Calendar tab** - **Fix iOS bare worklet crash and geo: URL opening** ### 🔧 Other - **Update Lightning address and fix iOS app icon** - Mar 16, 2026 1.0.13## What's Changed ### ✨ Improvements - **render URLs in event notes as tappable links**: feat: render URLs in event notes as tappable links - **UI redesign — Manrope, CSS tokens, Phosphor icons, BottomSheets, polish**: feat: UI redesign — Manrope, CSS tokens, Phosphor icons, BottomSheets, polish - **replace confirm overlays with ConfirmSheet bottom sheets** - **add ConfirmSheet component (bottom sheet confirmation dialogs)** - **update onboarding slide 4 to use Phosphor icons and clearer copy** - **replace GroupsTab pill buttons with icon buttons (Option A)**
More…
- **rewrite NewGroupModal as single-step with GroupCreatedToast** - **wire GroupCreatedToast into App + update NewGroupModal call site** - **add GroupCreatedToast component** - **add pearFadeOut keyframe and UserPlus icon import** - **add iOS WebKit compatibility — scroll, dvh, safe areas** - **add skeleton loaders for events list and seed phrase** - **add spinner loading states to async action buttons** - **add entry animations to modals and event card stagger** - **add PearIcon SVG component, replace pear emojis** - **replace settings, seed, QR, and toggle emojis with Phosphor icons** - **replace action emojis with Phosphor icons** - **refine BottomSheet animation speed and handle styling** - **redesign navigation bar with Phosphor icons and token colors** - **add CSS token system and Manrope font** - **render URLs in event notes as tappable links** - **prompt for nickname before joining a group** - **prompt to edit this event or this and future when editing a recurring series** - **clarify event deletion button text and add confirmation for creator deletes** - **allow converting a single event into a recurring series** ### 🐛 Bug Fixes - **propagate group/invitee changes across recurring series automatically**: fix: propagate group/invitee changes across recurring series automatically - **replace emojis with Phosphor icons across UI, polish Calendar and About tab**: fix: replace emojis with Phosphor icons across UI, polish Calendar and About tab - **About page polish, bug fixes, and UX improvements**: fix: About page polish, bug fixes, and UX improvements - **About page polish, bug fixes, and UX improvements** - **replace emojis with Phosphor icons across UI, polish Calendar and About tab** - **onboarding slide 4 calendar row uses styled Plus icon chip matching Calendar tab button** - **onboarding slide 4 inline icon buttons for join/add; add TODO items** - **stale closeRef cleanup, updateGroup reopen bug, blocked toast styling+dismiss, onboarding text** - **remove header, +Event icon button, onboarding Phosphor icons (slides 1-4)** - **wire closeRef into EventModal and GroupSettingsModal for animated back gesture** - **split GroupCreatedToast into positioning/animation divs to fix transform conflict** - **add nav bar height to BottomSheet paddingBottom** - **prevent confirm dialog overflow on small screens** - **use eventsReady ref to prevent permanent skeleton after event delete** - **use nickname in join notifications, restore join reliability** - **suppress spurious join notifications on initial group sync** - **propagate group/invitee changes across recurring series automatically** - **enforce invitee-based event visibility and fix delete notification nicknames** ### 🔧 Other - **Fix group sync bugs, notification spam, and Lightning modal layout**: Fix group sync bugs, notification spam, and Lightning modal layout - **Add group admin roles**: Add group admin roles - **Move Today, Join Group, and New Group buttons to floating position above nav**: Move Today, Join Group, and New Group buttons to floating position above nav - **Update TODO with floating nav button changes** - **Move Today, Join Group, and New Group buttons to floating position above nav** - **Add group admin roles** - **Adding TODO list for tracking** - **Fix group sync bugs, notification spam, and Lightning modal layout** - **add @phosphor-icons/react and @fontsource/manrope dependencies; update gitignore** - **remove newGroupKeyUpdatedRef dead code, wire closeNewGroupSheetRef into back handler** - **update input styles to token system** - **migrate theme system to CSS custom properties** - **add Manrope font bundling script** - **add contact-developer design doc** - **Add privacy policy HTML page (docs/privacy.html)** - **Add Contact card to About tab with email and GitHub Issues buttons** - **Improve Delete Group confirmation: warn all members and events are affected** - **add implementation plan for delete group confirmation** - **add design doc for delete group confirmation improvement** - **release script: non-fatal Zapstore publish, fix zsp PATH, add SIGN_WITH env** - Mar 10, 2026 1.0.8## What's Changed Initial release.
- Mar 10, 2026 1.0.7**Full Changelog**: https://github.com/peerloomllc/pearcal-native/compare/v1.0.6...v1.0.7
- Mar 10, 2026 1.0.0**Full Changelog**: https://github.com/peerloomllc/pearcal-native/compare/v1.0.5...v1.0.6