Calendar
There is more to keep track of than appointments.One date, without conflicting copies.
Dates, layers, and countdowns for more of what you want to keep track of. Now taking shape in a private website alpha.Calendar’s private web alpha shares event IDs across views and saves a revisioned document in D1. Stale saves are rejected; manually maintained sources and date-only semantics keep this first version bounded.
RuntimePrivate website alpha: JavaScript, a Cloudflare Worker, and D1. The owner’s saved state is revisioned; dates are manually maintained. Native apps and installed widgets are not implemented.
Private web alpha · implemented
One occasion, several saved views.
- 01Maintain the datesCurated source / personal editorDate + source + stable ID
- 02Share event IDsCalendar and web countdownsOne event → several views
- 03Save by revisionWorker → D1Expected revision → update or 409
- 04Reload the viewsPrivate websiteSaved dates + layout + source catalog
Date IDs connect the views. A revision check protects the saved document; source upkeep is manual and native widgets remain planned.
Step 01 · Curated source / personal editor
Maintain the dates
The alpha combines a manually checked starter catalog with owner-created dates. Source dates retain their identity when corrected.
- Mechanism
- The catalog records source context; saved personal dates live in D1.
- Tradeoff
- Coverage and freshness depend on manual upkeep. There is no automated announcement feed.
Step 02 · Calendar and web countdowns
Share event IDs
Calendar layers and countdown widgets reference the same event. Grouping links source calendars rather than copying their dates.
- Mechanism
- Resolve references against the current source and saved state.
- Tradeoff
- Hiding a layer is a display choice, not deletion of the countdown target.
Step 03 · Worker → D1
Save by revision
The Worker validates the signed-in owner and submitted state. A conditional D1 update saves only if the expected revision still matches.
- Mechanism
- UPDATE … WHERE owner = ? AND revision = ? RETURNING revision.
- Tradeoff
- Conflicting changes are rejected for review instead of being merged automatically.
Step 04 · Private website
Reload the views
The browser reloads the saved document and resolves its dates and widget choices. Export includes the saved state and catalog.
- Mechanism
- Persistence is independent of the current browser session.
- Tradeoff
- Native apps, installed widgets, offline sync, and provider backup restoration are not qualified.
Reject a stale save.
The browser submits its saved revision with the edited state. D1 updates only the row with that revision and increments it. A stale edit receives 409 instead of overwriting a newer save.
Conflicts require review. The client preserves the unsaved draft and offers a download; this alpha does not promise offline synchronization.
A date is not a midnight timestamp.
The alpha stores date-only values and uses its configured local day. Vacation end dates are inclusive; annual occasions advance to their next occurrence.
Timed events and broader regional semantics remain future work. A date-only value must not acquire an invented UTC time.
Illustrative conflict · implemented check
Two tabs edit revision 7.
Both tabs loaded the same saved calendar. The second save must not silently replace the first.
A: UPDATE … WHERE revision = 7 → saves revision 8
B: UPDATE … WHERE revision = 7 → no matching row
B: HTTP 409; keep the unsaved draftThe first save remains intact. The second tab can download its draft and load the current state before deciding how to reconcile the changes.
Tests & limits
- The private-alpha verification records persistence, revision-conflict, authorization, date-editing, and responsive browser checks.
- A saved widget change survived a live reload in the recorded private test; no new live writes were made for this portfolio.
Recorded alpha checks do not establish two-device acceptance, native widget delivery, automated source monitoring, or backup restoration. The broader product proposal remains separate from this implemented web slice.
Source files & authorship
Private-alpha README; OPERATIONS.md; VERIFICATION.md; src/server/worker.mjs; src/shared/model.mjs. Inspected 29 October 2026. The earlier proposal and placeholder screenshots are historical; native apps/widgets and automated ingestion remain planned.
Product direction: Jaxson Mercer. Development uses AI assistance.
Screenshots
Where it started
Why should a calendar stop at appointments?
There are dates I want to keep track of and kinds of content I do not find on existing calendar platforms. I also want more control over how those dates sit together. This project starts with that gap: a calendar that can show more of what matters without making everything compete in the same view.
A book release, a game update, a birthday, and a vacation can all be worth anticipating. The private website alpha brings personal dates and a curated catalog into layered views and countdowns. Sharing comes later.
See what’s coming. Choose what belongs together.
In the private alpha
Dates with more than one view.
- 01
Find something to anticipate.
Browse a manually maintained starter catalog or add a personal date. Automated discovery and social subscriptions remain future work.
- 02
Put the layers together.
Group calendars and choose which layers to show. The group refers back to the original calendars, so dates do not become separate copies.
- 03
Keep the next date close.
Build a countdown board in the private website and save its layout. Installed phone widgets and native apps are still planned.
Who it’s for
For people keeping track of interests as well as obligations. A private website alpha now persists dates and layouts; broader access and native apps/widgets remain future work.
The next question
The next questions are source upkeep, cross-device behavior, and useful native widgets. The private website alpha is a first implementation; it does not yet deliver the broader personal or social release.
Private alpha
Calendar now has a private website alpha with persistent dates and countdown layouts. Access is restricted to the owner; native apps, installed widgets, and social features are still planned.
