Skip to content

Releases: aaskjer/ChatCalendar

Chat Calendar v1.0.1

Choose a tag to compare

@aaskereijAI aaskereijAI released this 29 Oct 21:55

A maintenance release: holidays no one greets each other for may now be left without a greeting, and the regions got a thorough going-over — Bavaria keeps Mariä Himmelfahrt, and every country with regional holidays brings all of its regions along.

✨Added

  • Greetings may be left empty. Not every holiday has one — nobody wishes a happy "Tag der Arbeit", and there is no customary greeting for Labour Day. Clear the Greeting on the Holidays page and nobody is greeted that day, while !holiday still answers with the name of the day and the announcement still lists it. An emptied greeting survives the next download and the change of year, like the ones you write. Your own holidays may be left empty too.

🐛Fixed

  • Mariä Himmelfahrt counts in Bavaria. date.nager.at lists 15 August for Saarland alone; it is a holiday in the Bavarian municipalities with a Catholic majority — nearly all of Lower and Upper Bavaria. Setup now adds the region after every download and to the holidays already written, cross-checked against openholidaysapi.org.
  • The Holidays page shows your region's holidays alone. It listed every holiday of the country, Bavaria's Reformation Day included, while the greeting, !nextholidays and the announcements had always left the others out. It now follows the region on the Calendar page before it is even saved, and the note under the list says how many of the country's holidays count where you are.
  • Every region of every country that has regional holidays, not Germany, Austria and Switzerland alone: all 50 US states, the Canadian provinces, the Australian states, the Spanish communities, the Italian regions and the rest — 259 regions in the 17 of 204 countries whose holidays differ by region. Every one is listed, not only those with a holiday of their own, so Florida and Lower Bavaria can be picked like any other. A country whose holidays never differ by region offers none.
  • Picking a region without a holiday of its own is no longer logged as a warning — most regions have none. Only a region belonging to another country is.

Import the attached ChatCalendar.sb, or paste the import string. The Setup Guide walks through every page. Your holidays, greetings and birthdays are kept: import over v1.0.0.

Chat Calendar v1.0.0

Choose a tag to compare

@aaskereijAI aaskereijAI released this 26 Oct 23:26

Twitch Calendar is now Chat Calendar: holiday and birthday greetings on Twitch, YouTube and Kick, a daily post to Discord, Stoat and GameVox, and one settings window for all of it. Nothing has to be run by hand any more — the window downloads the holidays itself.

✨Added

  • A settings window. Right-click the Test trigger of [CC] - .Settings and choose Test Trigger. Chat, Announcements, Calendar, Holidays, Birthdays, Messages and Log, with Help and About at the foot: every greeting with a chat preview, your own holidays and the greeting of every official one, the birthdays, the webhooks and the log of what was said and posted. It saves configs.json next to holidays.json; a damaged file is kept as configs.json.broken and the window falls back to the last save. A red pill in its header shows when a newer release is out.
  • YouTube and Kick. Chatters there are greeted on holidays and on their birthday, and every command answers in the chat it came from.
  • Birthdays. Viewers save their own with !birthday 24.12. (day and month only); moderators and you for others with !birthday @name 24.12.. Everyone is greeted once on their day, with {age} where the Birthdays page knows the year. !nextbirthdays lists the next ones.
  • Announcements. Today's holidays and birthdays go to Discord, Stoat and GameVox once a day, at the time you set — no Streamer.bot timer needed. A failed webhook is tried again after 15 minutes, without posting twice to the ones that worked. Title, lines and colour are yours, the colour with a picker.
  • Own days. Channel birthday, charity stream, anything: once on a date, or every year (12-24 or 24.12.).
  • Regions. Only the holidays of your region, if you pick one — Bavaria, Vienna, Zürich … — or only the nationwide ones.
  • Bot or broadcaster, and on Twitch as a /me message.

🔧Changed

  • No more Set Argument sub-actions. Every setting lives in the window. An argument of the same name in an action still wins, for a second action that should do something else.
  • Nothing to run by hand. .. Setup Action .. is now [CC] - Calendar Setup without a trigger: the window starts it when it opens without this year's holidays, after saving another country, region, time zone or year, and from Save and download now. A new year downloads itself.
  • Every chatter is greeted once per holiday, also when the stream runs past midnight, in the time zone you set.
  • All data lives in Chat Calendar next to Streamer.bot: holidays.json, birthdays.json, configs.json and a Logs folder kept for 30 days. Your own holidays and greetings survive every download.
  • Texts follow your country, or the chat language you pick; Boarisch writes Bavarian.

🐛Fixed

  • Holidays download again. date.nager.at dropped its CSV export; Chat Calendar uses its JSON API.
  • {holidayName} was empty, and two holidays on one day were announced as one.
  • The command answered nothing on a day without a holiday.
  • !nextholidays failed for countries without a translation (AT, CH, GB, PL …).
  • No more Hello @, without a user name, and no error in the log for every viewer without pronouns.

⬆️Updating from Twitch Calendar

Import over the old version. Your holidays (C:\streamer.bot\Twitch Calendar or Twitch Calendar next to Streamer.bot) are copied into Chat Calendar on the first run, with your own holidays and greetings; the country, region and time zone come along. Webhook URLs and your own texts from the old Set Argument sub-actions are entered once in the settings window. The commands ship switched off: enable them under Commands.


Import the attached ChatCalendar.sb, or paste the import string. The Setup Guide walks through every page.