Calendar & activity timeline
/calendar is your unified day view: appointments, milestones, meals, films, and TV episodes — plus optional finance overlays per day. Tapping an expense opens the same transaction detail modal as /finance.
Activity filters
Pill filters above the month grid: All · Events · Browsing · Trades · Food · Movies · TV. Counts show how many rows you have in each bucket. Your choice is saved in the browser (dayze_calendar_activity_filter).
- Events — calendar-native rows (meetings, trips, milestones, agent
create_event). - Pin to top — right-click (or long-press) an event → Pin to top of day. Pinned rows float above others that day (blue pin icon). Stored in this browser (
dayze_calendar_pinned_event_ids). - Browsing — Chrome history as screen time (see below). The month grid shows duration per day, not cash PnL.
- Trades — broker fills mirrored from Tiger.
- Food / Movies / TV — mirrored from diaries via
external_source(user_food_log,user_movie_log,user_tv_log).
Diary → calendar mirrors
Rich diary tables stay the source of truth (photos, calories, episode numbers). Calendar gets a lightweight shadow event so everything appears on the same timeline without duplicating editing flows.
New logs sync automatically (agent tools, diary edits, deletes). Backfill existing rows: npm run sync:food-diary-events -- --handle=you, sync:movie-diary-events, sync:tv-diary-events.
Birthdays & day milestones
Synthetic rows (not stored as editable events) appear on the month grid and Today strip for the years you browse:
- Birthdays — Your People contacts, Dayze friends, and your own birthday (🎂) for the years you browse — including dates that already passed this year. Tap opens the person profile or Edit Profile. Year-only birthdays and deceased contacts are skipped.
- Day-of-life milestones — Round days (1K–40K, including 13K), lucky numbers, palindromes, and sequential day ages from your birthday (Day 0). Tap opens Home so you can celebrate / share. Same day-age math as Day Reels.
Sources: dayze_birthday, dayze_milestone.
Holiday countdowns
/countdown lists live clocks. Each one uses local midnight, and a birthday field for which Dayze day that date is.
- New Year — 1 January
- Christmas — 25 December
- Halloween — 31 October
- Thanksgiving — 4th Thursday in November (US)
- Valentine’s Day, Independence Day, Mother’s Day, Father’s Day
Any other date: /days-until.
When you are signed in, countdown pages use the same top-right avatar as /home, and the docked Dayze Agent column can be hidden with the chevron on the chat edge. Guests still see Continue and no chat dock. See Dayze Agent.
Browsing history
Chrome extension site-time syncs as calendar rows (events.browsing.total_seconds).
- All / Events — In a day's detail panel, sites collapse under Browsed pages (tap to expand) so they don't bury life events. Days with only browsing show a small green dot, not a red heatmap.
- Browsing pill — The month becomes a screen-time view: emerald heatmap by minutes, compact labels on cells (
45m,2.4h), and a month strip (total, avg/day, peak). Cash PnL is hidden so+4is not mistaken for time. Tap a day for a large duration total and each site's time.
Dreams stay off the calendar
Sleep dreams live in Dream Diary only (log_dream, not create_event). They are private narrative logs, not day-schedule items.
Dayze Agent
Use create_event for schedule and life milestones. Use log_food, log_movie_watch, and log_tv_watch for diaries — each mirrors to the calendar automatically. See Dayze Agent.