Skip to content

Local events in IndexedDB do not support repeats — repeat form should be hidden unless authenticated #1424

@tyler-dane

Description

@tyler-dane

Where did this happen?

Hosted (app.compasscalendar.com), Local code with an up-to-date main branch

Expected Behavior

When creating a new event locally (after unauthenticated or after onboarding changes from #1404), users should be able to fully use event options—including repeat and recurrence rules—just as with Google Calendar-synced events.

Current Behavior

Currently, after the changes introduced in #1404, local events are stored in IndexedDB and users can create them even without Google Calendar authentication. However, if a user sets up a repeat/recurring event (e.g., daily, weekly, etc.) before authenticating with Google, only the first instance of the event is shown in the calendar—no future occurrences are stored or rendered locally. All repeat logic is missing for local events.

Steps to Reproduce

  1. Go to the app while not authenticated with Google Calendar
  2. Try to create a new event and set it to repeat (e.g., every day)
  3. Save the event
  4. Only the first instance of the event appears in the calendar

(If authenticated, repeat events sync as expected to Google Calendar and show all instances.)

Possible Solution

Temporary fix: Hide/disable the repeat controls on the event creation form whenever the user hasn't authenticated with Google Calendar (i.e., until UserProvider profile fetching returns the necessary credentials).

Long-term fix: Implement local repeat logic in LocalEventRepository so local-only users can use repeat events without Google auth.

Context

Users wanting to manage repeat events locally get inconsistent results and may lose expected recurring data if using Compass without signing in. This especially disrupts privacy-focused users or those evaluating Compass before connecting their Google account. Workaround: Authenticate with Google Calendar to unlock full recurrence event support.

Metadata

Metadata

Assignees

No one assigned

    Labels

    webFrontend/web related issue

    Type

    Projects

    Status

    Backlog

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions