User Story Priorities

ID User Story Name Feature ID Priority
US001 Create event F5 High
US002 Delete event F5 High
US003 Update event F5 Medium
US004 View event F7 Medium
US005 View events F7 Medium
US006 Sync external calendar F4 High
US007 Export calendar F6 low
US008 Import calendar F6 Medium
US009 Receive reminders F1 High
US010 Daily plan F3 Medium
US011 Configure quiet hours F8 low
US012 Configure timezone F2 low
US013 Configure language F9 low
US014 Self-host F10 High
US015 Single-user restriction F11 High
US016 Repeating events F12 low

User stories

US-001: Create event

  • As a user, I want to create an event via the Telegram bot so that the event is added to my personal calendar and reminders are scheduled.
  • Acceptance criteria:
    • Bot accepts event title, start time, optional end time, reminder time (which time before event to remind), optional description.
    • Event is persisted and visible in subsequent queries.
    • At least one reminder is scheduled according to user settings.

US-002: Delete event

  • As a user, I want to delete an event via the Telegram bot so that the event is deleted from my personal calendar and I no longer receive reminders about this event.
  • Acceptance criteria:
    • User can delete an event by id or from a list of events.
    • Deletion removes scheduled reminders and removes event permanently.
    • User receives confirmation of deletion.

US-003: Update event

  • As a user, I want to update an existing event’s title, start time, end time, reminder time, description so I can correct mistakes or reschedule.
  • Acceptance criteria: - User can update an event via bot commands or interactive flow. - Updates persist and any dependent reminders are updated accordingly. - User receives confirmation of successful update and the new reminder schedule.

US-004: View event

  • As a user, I want to view event details (including source: calendar/db) so I can confirm event information.
  • Acceptance criteria: - User can view event details by id or from a list of events. - Response includes id title, start time, end time, reminder time, description, source (calendar/db).

US-005: View events (list over a period)

  • As a user, I want to view a list of events over a period of time so I can inspect my schedule for a given date range.
  • Acceptance criteria: - User can request a list of events by specifying a date or a date range (e.g., 07.11.2025, 07.11.2025-11.11.2025). - Response includes events for this period of time with id title, start time, end time, reminder time, description, source (calendar/db).

US-006: Sync external calendar (ical URL)

  • As a user, I want the system to import events from an external calendar by ical URL so that my external events appear alongside bot-created events.
  • Acceptance criteria:
    • User can provide an .ics URL.
    • Events are parsed and saved without duplicates.
    • Events sync with external calendar
    • Sync reports success/failure and the number of imported events.

US-007 - Export calendar (.ics)

  • As a user, I want the system to export events to .ics file so that i can export this file to other service or backup events from bot.
  • Acceptance criteria:
    • User can receive .ics file.
    • Internal events (that is stored in db) saved in this file without duplicates.

US-008: Import calendar (.ics)

  • As a user, I want the system to import events from .ics file so that i can restore or upload events.
  • Acceptance criteria:
    • User can upload .ics file.
    • Events Events are parsed and saved without duplicates.

US-009: Receive reminders

  • As a user, I want to receive reminders in Telegram for upcoming events with configured time before event so I don’t miss them.
  • Acceptance criteria:
    • Reminders are sent within the configured quiet-hours rules and configured reminder time.
    • Reminder messages contain relevant event details.

US-010: Daily plan

  • As a user, I want to receive a daily summary of my events so I can review my schedule for the day.
  • Acceptance criteria:
    • Summary is delivered at user-configured time.
    • User can see summary list of events for the day.

US-011: Configure quiet hours

  • As a user, I want to set quiet-hours so notifications will not be sended at this time.
  • Acceptance criteria:
    • Setting persist and apply to all reminders and summaries.
    • Changing setting updates scheduled reminders without requiring re-creation of events.
    • Notification is not sended during quiet-hours

US-012: Configure timezone

  • As a user, I want to set timezone so notifications match my timezone.
  • Acceptance criteria:
    • Setting persist and apply to all reminders and summaries.
    • Changing setting updates scheduled reminders without requiring re-creation of events.
    • Notification matches user timezone

US-013: Configure language

  • As a user, I want to choose english or russian language so notifications will be on chosen language.
  • Acceptance criteria:
    • Setting persist and apply to all reminders and summaries.
    • Changing setting updates scheduled reminders without requiring re-creation of events.
    • Notifications sended on chosen language

US-014: Self-host

  • As a user, I want to self-host the calendar bot on my own infrastructure so I maintain full control over my calendar data.
  • Acceptance criteria: - Clear setup instructions. - Configuration file template with required settings. - User able to download and setup app.

US-015: Single-user restriction

  • As a user, I want the bot to interact exclusively with me (first user) so my calendar remains private and secure.
  • Acceptance criteria: - Bot remembers and stores the ID of the first user who interacts with it. - Bot responds only to commands from the registered user ID. - Other users receive a polite message explaining the single-user restriction. - Clear instructions for resetting the registered user if needed. - User ID persistence survives bot restarts.

US-016: Repeating events

  • As a user, I want to make created events repeated so i dont need to make many events that is regulary occures.
  • Acceptance criteria:
    • Support basic recurrence types (daily, weekly, monthly) and custom.
    • Allow editing/deleting entire series (single-editing is considered to implement after MVP).
    • Schedule reminders for each occurrence respecting user settings.