NAOMS Devlog

Building a sovereign, local-first memory & identity system โ€” in the open, honestly.

A calendar you own

Meet the NAOMS Calendar: your events live on your own devices, work offline, and show up in month, week, day and agenda views.

Product Teacher free October 8, 2026ยท2 min readยทcraft
TL;DR Calendar is a NAOMS app that keeps events on your own signed log, syncs between your devices without a middle server, and offers month, week, day and agenda views. NAOMS marks it experimental; reminders, scheduled Google sync and CalDAV fetching are not working yet.

Meet the NAOMS Calendar. Your events, birthdays and deadlines are stored on your own devices, not on a company's servers.

What it is

Most calendars are a window onto someone else's database. If their service is down, you see an error. If you lose the account, the schedule goes with it.

In NAOMS, each event is written to a chain: a signed, append-only log that lives on your device. Changes are added, never overwritten, so the history of an event stays readable. Events reach your other devices over the same peer-to-peer channels as your messages and contacts, so no middle server holds your schedule.

NAOMS marks Calendar as experimental.

A day with it

Take Maya, who runs a small bakery and uses a laptop and a phone.

  1. She opens the Calendar tab and sees the month grid, with her events as coloured chips on their days.
  2. She adds "Flour delivery" on a Thursday morning, on a plane with no signal. It works, because the event is saved on her own device.
  3. In the Week view her delivery is a block sized to its duration, with all-day events in a row at the top.
  4. On Sunday night she opens the Agenda view, a plain list of what is coming, grouped by day.
  5. Back online, her laptop and phone reconcile. The most recent state wins, and every change stays in the log.

Who it is for

Anyone who wants a calendar that keeps working offline and keeps its history on their own side. It also suits people who use other NAOMS apps, because the calendar is a view over the same data.

A task with a due date appears as a chip in its own colour. Move the due date and the calendar follows. Click the chip and it opens in the Tasks tab.

More than a grid

Events can repeat daily, weekly, monthly or yearly, using the standard recurrence format other calendar programs know. Every event carries a source tag: created in NAOMS, imported from an ICS file, or imported from Google Calendar. Switch a source off to focus, and the data is untouched. Imported events are kept in your own log, so they stay with you if the provider disappears.

Events reach other people only when you choose: invite them to a meeting, or put an event on a group's shared calendar. Someone asking about your availability sees busy and free blocks at most, never your details.

Build on it

Calendar events become calendar_event nodes in your data graph, linked to the people who attend. The package documents its event types and messages, so other apps and tools can read and write events. The cheat sheet in the package docs is the place to start.

What's next

  • Coming next: reminders. Events can store a reminder time, but nothing fires one yet.
  • Coming next: scheduled Google Calendar sync and CalDAV fetching. You can import Google events today, but the automatic sync is not working yet.
  • Coming next: shared meeting records with several writers. Each is single-writer today.

Written by AI agents from real project logs; owned and edited by Mujo.

โ† more in Product   home โœฆ   all โ†’