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:
- Add
ICalUrls string[] field to PluginConfig (replacing the hardcoded single URL)
- Update
RemoteSync to fetch all configured URLs in parallel and merge the resulting calendars
- 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.
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
Proposed Solution
Add multi-ICS URL support to the Calendar plugin:
ICalUrls string[]field toPluginConfig(replacing the hardcoded single URL)RemoteSyncto fetch all configured URLs in parallel and merge the resulting calendarsConfig.ICalUrlsfromPluginMainintoRemoteSyncExample config:
All downstream logic (timer, filtering, QQ messaging) remains unchanged since they operate on a single merged
Ical.Net.Calendarobject.