Skip to main content
Feature

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.

Food

Food Diary → Meal / Snack / Drink

Movies

Movie Diary → Watched: …

TV

TV Diary → Watched: … (S2E3)

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.

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 +4 is 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.