Activities: Past events appearing in Upcoming tab #22

Open
opened 2026-04-20 05:48:54 +00:00 by padreug · 0 comments
Owner

Problem

Events with past start dates (e.g. "Sat, Feb 28") are showing in the "Upcoming" tab. Likely caused by NIP-52 start tag timestamp parsing or timezone handling differences between event publishers.

Possible causes

  1. Timestamp convention mismatch: Some NIP-52 publishers may use seconds vs milliseconds, or the start tag may be a date string for kind 31922 vs unix timestamp for kind 31923.
  2. Timezone handling: Events published in different timezones may have start values that parse incorrectly without start_tzid context.
  3. Store filtering: The upcomingActivities computed in src/modules/activities/stores/activities.ts compares startDate >= now, but should also account for multi-day events where endDate is in the future.

Investigation needed

  • Check actual start tag values from relays for the misclassified events
  • Verify parseCalendarTimeEvent in src/modules/activities/types/nip52.ts handles both seconds and milliseconds
  • Check if kind 31922 (date-based) events are being parsed as kind 31923 (time-based)

Files

  • src/modules/activities/stores/activities.tsupcomingActivities computed
  • src/modules/activities/types/nip52.tsparseCalendarTimeEvent(), parseCalendarDateEvent()
  • src/modules/activities/types/activity.ts — date conversion in calendarTimeEventToActivity()
## Problem Events with past start dates (e.g. "Sat, Feb 28") are showing in the "Upcoming" tab. Likely caused by NIP-52 `start` tag timestamp parsing or timezone handling differences between event publishers. ## Possible causes 1. **Timestamp convention mismatch**: Some NIP-52 publishers may use seconds vs milliseconds, or the `start` tag may be a date string for kind 31922 vs unix timestamp for kind 31923. 2. **Timezone handling**: Events published in different timezones may have `start` values that parse incorrectly without `start_tzid` context. 3. **Store filtering**: The `upcomingActivities` computed in `src/modules/activities/stores/activities.ts` compares `startDate >= now`, but should also account for multi-day events where `endDate` is in the future. ## Investigation needed - Check actual `start` tag values from relays for the misclassified events - Verify `parseCalendarTimeEvent` in `src/modules/activities/types/nip52.ts` handles both seconds and milliseconds - Check if kind 31922 (date-based) events are being parsed as kind 31923 (time-based) ## Files - `src/modules/activities/stores/activities.ts` — `upcomingActivities` computed - `src/modules/activities/types/nip52.ts` — `parseCalendarTimeEvent()`, `parseCalendarDateEvent()` - `src/modules/activities/types/activity.ts` — date conversion in `calendarTimeEventToActivity()`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aiolabs/webapp#22
No description provided.