Twitch Calendar
Key Features:
Holiday Greeting: Automatically checks if today is a holiday and greets users with a configurable message as soon as they send their first message.
Pronoun Support: Integrates with the alejo.io pronouns API to fetch user pronouns.
Holiday Fetching: Uses the date.nager.at API to fetch local, current, and upcoming holidays.
Predefined Holidays: Supports common holidays like:
- Christmas Eve (Dec 24)

- New Year’s Day (Jan 1)

- Valentine’s Day (Feb 14)

- Christmas Eve (Dec 24)
Commands:
- Trigger today’s holiday check.
- View upcoming holidays.
Custom Holidays:
- Add your own holidays to surprise your viewers!
- Fully customizable
.csvand.jsonfiles.
Import File
TwitchCalendar-v4.sb (25.5 KB)
Installation
In Streamer.bot click the Import button in the top menu. Drag the .sb file into the Import String field.
Enable all commands in the Commands tab
Step 1 - Setup: ..Setup Action..
- Go to
Folder Settingsand set your%filePath%to your desired destination.
filePathmust lead to a folder! - Go to
Calendar Settingsand set the%countryCode%to your prefered country.
Set your country code to fetch your local holidays. You can search for your country code here: Countries - Nager.Date - Run the trigger
Testonce to download/create all necessary files.
Before runningTest, go toFolder Settingsand check if%updateFiles%is set toTrueor it only create the readme else! - Set
%updateFiles%toFalse, so your files won’t get overwritten.
Twitch-Calendar-README.txtwill be created at yourfilePathwith further explanations and guidance.
- Since the script automatically add the upcoming holidays of next year automatically if it’s the 11th month of the current year, you can optionally activate
%calendarYear%argument to stick with a specific years calendar.
What does ..Setup Action.. do?
- Creates
holidays.json,holidays.csvandTwitch-Calendar-README.txtat your desired folder destination. - You can modify the files and add custom holidays like chuck norris birthday and even add a custom message.
- Custom holidays may or may not show up based on your settings for a potential surprising effect.
Step 2 - Setup: Check today's holiday & firstMessage
- Go to
Folder Settingsand set your%filePath%to your desired destination.
filePathmust lead to theholidays.json! - Go to
Customizationif you want to add a generic message to all holidays if you didn’t edited theholidays.jsonor are using theCustomHolidayMessagearguments.
What does Check today's holiday & firstMessage do?
- Greets users on their first message if it is currently a holiday.
- Users can check anytime if there is a holiday currently (it will show official and your custom holidays)
Step 3 - Setup: Upcoming Holidays
- Go to
Folder Settingsand set your%filePath%to your desired destination.
filePathmust lead to theholidays.csv! - Go to
Calendar Settingsto set the%language%argument to automatically translate parts of the message in to your prefered language. - Use the same code you used for the
%countryCode%earlier.
Default supported languages: DE, FR, US, ES, IT, NL, PT, RU, CN, JP, KR (fallback to english) - Go to
Customizationsto check if you want your custom holidays show up in the upcoming holidays message and how many of them should be listed.
What does Upcoming Holidays do?
- Shows a list of upcoming holidays. The amount varies by your settings.
- Shows additionally a list of all upcoming custom holdays if it is set.
Step 4 - Add custom holidays
To add custom holidays, you need to edit the .csv and .json file accordingly!
- Add a row in the
holidays.csv.
Example row:2025-01-14,Test Tag,Test Day,CUSTOM,False,False,,, - Either, update the
.jsonyourself or run theTesttrigger in theCoreaction, it will automatically create the new holiday in thecustomHolidayssection. Keep in mind, runningTestwill overwrite any modifications in the.json - (Optional) if you want to have persistent individual messages for any of your holidays, you can add args to the
Check today's holiday & firstMessageaction.
Example:
⠀
Disclaimer:
This script has been developed with input from the community and support by AI. If you run into any problems, let me know! ![]()
⠀
Changelog:
v4
- Fix:
holidays.jsonfalsely downloaded current and next year twice. - Fix:
DefaultMessageweren’t populated correctly.
Let me know if there are issues ![]()
Old Changelog
Hotfix v3.1
- Fix: Script won’t greet anymore on first message if there is currently no holiday.
- Fix:
CustomHolidayMessageweren’t populated correctly everywhere. - Updated all Logs to use the right log-level and added brackets with their action name.
v3
- Fix:
%updateFiles%now refreshes the files correctly based on%countryCode%and year. - Fix: The year is not hardcoded anymore and the script automatically downloads the correct year.
- Twitch Calendar automatically adds the next year to all files if the 11th month of the current year begins. It’ll show upcoming holidays of the next year.
- Added the argument
%calendarYear%which can be enabled, if you only want a specific year in you calendar files. - Renamed the
Countrysub-group of theSettingssub-action to:Calendar Settingsin the..Setup Action..andUpcoming Holidaysactions. - Changed file creation behavior. Removed
countryCodeandyearfrom all files.
So files are now:holidays.jsonandholidays.csv.
v2
- Updated and redesigned all sub-action for sb 1.x.
- Sorted all important sub-actions in sub-groups.
- File/Folder handling for all actions should be now much easier.
..Core Action..renamed to..Setup Action...- In
..Setup Action..the argument%updateList%renamed to%updateFiles% - Fix:
%updateFiles%won’t change files if it is set toFalseanymore unlike before. %updateFiles%will always create theTwitch-Calendar-README.txtfile to make sure users will have guidance.- Fix: Changed
%country%to%countryCode%in theCountrysub-group of theSettingssub-action, as it was wrong and had no effect. - Removed the
Greetings on firstMessageaction. - Renamed
Check today's holidaytoCheck today's holiday & firstMessageas it practically always handled both but separated. You can just disable one of the trigger if one or another is not needed. - Added a new sub-action to
Check today's holiday & firstMessage:outputMessagecan be enabled, if you want a generic message for all holidays. It is not needed it you edit theDefaultMessagein theholidays.jsondirectly or use the complementaryMessageArgNameto edit those messages anywhere else in sb. - Renamed
5 next holidaystoUpcoming Holidays - Added a new sub-action:
maxHolidaysto the sub-groupCustomizationsof theSettingssub-action ofUpcoming Holidays. - The argument
maxHolidayslet you decide how many upcoming holidays should be displayed in chat. This was hardcoded to 5 before. - Updated pronouns handling with the alejo.io api.
Hotfix v2.1
- User will not be greeted anymore if today is not a recognized holiday.
Update v2
- reworked the whole script
- added more informations here and there
- added a .txt file with additional informations to filePath
- added file support with some kind of automation
- separated the
firstMessagelogic - removed unnecessary fallback methods in some scripts
- many more
Update v1
- Initial release






