Benji logoBenji

🎯 Activities

Track recurring activities, log rich context, and review everything by recency

✨ What It Does

Activities is your personal ledger for repeatable commitments—practice sessions, household chores, catch-up calls. It shows what you’ve touched recently and gives you a quick way to mark “I did it” so momentum stays visible instead of living in your head.

🚪 Access & Activation

Enable Activities from Settings → Features → Activities. See the Enabling Features guide for details on feature toggles and visibility options.

🧭 Core Workflow

  • Open Activities from the sidebar, mobile toolbar, or Spotlight. Desktop shows a search bar plus a Personal / Work / Both segmented control; mobile mirrors this inside the sticky header.
  • Click New Activity (desktop button) or the icon (mobile header) to create one. Cards in the grid are grouped by how recently they were logged—Today, Yesterday, last 7 days, 30 days, and so on down to Haven’t Done.
  • Each card shows the emoji, name, and a relative “last done” timer. Clicking opens a details modal with the full Activity Log list and the same edit/delete menu you’d get from the ••• menu.
  • Use Log Today, Log Yesterday, or Log Activity from the card menu or details modal to capture runs without leaving the page; the full form opens when you need to add notes, contacts, or locations.
  • The standalone activity page (/my/activities/[id]) loads the same Activity Log list, so you can keep a tab open for frequent logging.

🛠️ In-Feature Settings

  • Activity creation collects a name (required), emoji (optional), type (Personal by default), interval in days (numeric, optional), and a Pin this activity in the home screen widget toggle (off by default).
  • Editing an activity is inline via the entity menu; deleting one first clears every Activity Log that references it, so treat removal as destructive history cleanup.
  • Activity Logs accept multiple activities, contacts, and locations per entry alongside date, optional duration (recorded in hours/minutes/seconds), and a free-form note. When opened from a card, the activity picker is prefilled.
  • Logs always sort newest-first, and the quick actions populate start with either the current time (Log Activity) or the start of the day (Log Today/Yesterday) so streaks stay accurate.

🔐 Global Settings & Privacy

  • Settings → Features → Activities controls visibility and keeps activity logs off the public timeline unless you export them elsewhere.
  • From that modal you can also toggle Show in sidebar, Show in mobile toolbar, and Show a home widget; those preferences persist until you uncheck them.
  • Activities ship disabled by default, so every user opts in before the page appears.

📊 Widgets & Dashboards

  • The Activities home widget lists every pinned activity, anything logged today, and anything whose day interval is due (last log is at least the interval old). Each row links directly to the activity page.
  • Add the widget either by enabling Show a home widget in the feature modal or by opening My Day’s Edit dashboard mode and picking Activities from the Tracking group.
  • Preview mode seeds the widget with sample data, but once live it displays actual logs in your own timezone.

⚡ Alfred & Quick Actions

Learn more about Alfred in the Alfred & Spotlight guide.

  • Create a new activity: opens the activity creation form
  • Log an activity: opens the Activity Log form
  • Search results for individual activities let you jump directly to any activity page

⌨️ Keyboard Shortcuts

  • Cmd/Ctrl + K: open Alfred to access Activities commands

🏆 Timeline & Points

  • Activity Logs stay private unless you choose to share them manually.
  • Each Activity Log contributes +1 to the leaderboard point system (PointSystemId.ACTIVITY_LOGS), so frequent logging still feeds the gamified totals even without timeline posts.
  • Removing a log (or deleting the parent activity) immediately drops that point from future leaderboard recomputations.

🔗 Integrations & Dependencies

  • Activity Logs can reference Contacts and Locations; those picks drive the avatar stack and location line in each log card, and the Contacts detail page exposes an Activities tab powered by the same list component.
  • Pinned activities surface in the My Day widget regardless of interval, and the interval itself only triggers once the user’s local date minus the last log meets or exceeds the stored number.
  • The type field uses the shared TaskType enum (Personal/Work) so filters stay consistent with Todos and Habits.
  • Spotlight, navigation favorites, and widget visibility all depend on the feature flag responses returned by trpc.featureFlags.getCurrent, so keep that service healthy when debugging visibility issues.

💡 Tips & Edge Cases

  • Use the Pin toggle for evergreen activities you want in the widget every day; rely on the Interval in days when you only want to see something after, say, three days of inactivity.
  • Leave the interval blank if you don’t want scheduling—the resolver ignores non-numeric values, so entering text won’t be saved.
  • Quick logging commands stamp the start at the beginning of the day in your timezone, which is perfect for catch-up logging but can double-log if you trigger them twice in a row without editing.
  • Because Activity Logs accept multiple activities, a single log can satisfy several cards’ “last done” timers; confirm you really want the actions grouped before you submit.
  • Empty categories are hidden automatically; expect new activities with no logs to sit under Haven’t Done until you record the first entry.
  • Deleting an activity irreversibly deletes its logs—export or duplicate first if you need to keep the history elsewhere.