Skip to content

Separate birthday events into a dedicated ICS source #16

@wen-templari

Description

@wen-templari

Background

The current calendar plugin fetches a single iCal source (https://ical.nbtca.space/) which contains all events including birthdays. Birthday events should be separated into a dedicated ICS file to allow independent management.

Requirements

  • Extract birthday events out of the main public ICS into a separate ICS source
  • The bot should continue to send QQ group notifications for events from both sources (main calendar + birthday calendar)
  • No existing notification behavior should be broken

Proposed Solution

Add multi-ICS URL support to the Calendar plugin:

  1. Add ICalUrls string[] field to PluginConfig (replacing the hardcoded single URL)
  2. Update RemoteSync to fetch all configured URLs in parallel and merge the resulting calendars
  3. Pass Config.ICalUrls from PluginMain into RemoteSync

Example config:

"Calendar": {
  "ICalUrls": [
    "https://ical.nbtca.space/",
    "https://ical.nbtca.space/birthday"
  ]
}

All downstream logic (timer, filtering, QQ messaging) remains unchanged since they operate on a single merged Ical.Net.Calendar object.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions