Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

[Script] LazyCalendar

1539594998

Edited 1539602715
Robin
API Scripter
LazyCalendar Skype: RobinKuiper.eu Discord: Atheos#1095 My Discord Server: [Discord links not allowed -- Mod] Roll20:&nbsp; <a href="https://app.roll20.net/users/1226016/robin" rel="nofollow">https://app.roll20.net/users/1226016/robin</a> Roll20 Thread: Github:&nbsp; <a href="https://github.com/RobinKuiper/Roll20APIScripts" rel="nofollow">https://github.com/RobinKuiper/Roll20APIScripts</a> Reddit:&nbsp; <a href="https://www.reddit.com/user/robinkuiper/" rel="nofollow">https://www.reddit.com/user/robinkuiper/</a> Patreon:&nbsp; <a href="https://patreon.com/robinkuiper" rel="nofollow">https://patreon.com/robinkuiper</a> Paypal.me:&nbsp; <a href="https://www.paypal.me/robinkuiper" rel="nofollow">https://www.paypal.me/robinkuiper</a> LazyCalendar is a fully customizable calendar to help you keep track in your games. It defaults to the default Gregorian Calendar, but is easy changeable to every calendar you want. The idea comes from&nbsp; Nicholas Lambert &nbsp;( script ). Commands !cal [menu] &nbsp;- Shows the calendar menu. !cal config &nbsp;- Shows the config menu. !cal send &nbsp;- Send the calendar info to the players. !cal advance-day &nbsp;- Advance a day in the calendar. Config Command &nbsp;- The command you want to use for this script, eg.&nbsp; !cal . Use Text Token &nbsp;- If you want to use a text token on the board to show the current date. (Great for landing pages.) Use Table &nbsp;- If you want the script to create the calendar table. Use Handout &nbsp;- If you want to create a handout with the calendar information in it. Show Handout to Players &nbsp;- Show the calendar handout to all players. Set Token &nbsp;- Select a text token and press this button to make it the current day text token. Export Calendar &nbsp;- Export the calendar data to a json string, can be imported later. Import Calendar &nbsp;- Import generated json string with export. Export Config &nbsp;- Same as above, but for the config. Import Config &nbsp;- Same as above, but for the config. Months Setup Name &nbsp;- Name of the month. Days &nbsp;- Total number of days in this month. Avg. Temp &nbsp;- The average temperature in this month (Celsius, because Metric!). Weather Type &nbsp;- The weather type used for this month. Holidays Setup Use Holidays &nbsp;- Toggle the use of holidays. Send Holidays &nbsp;- Send holiday information to players. Name &nbsp;- Name of the holiday. Day &nbsp;- The day of the holiday. Month &nbsp;- The month of the holiday. Weather Setup Use Weather &nbsp;- Toggle the use of weather. Send Weather &nbsp;- Send weather information to players. Name &nbsp;- Name of this weather type. List &nbsp;- This list shows the different texts for this weather type, one text will be picked random on every day. Menu Change Weather &nbsp;- Pick a new random weather text. Day &nbsp;- Change the current day. Month &nbsp;- Change the current Month. Advance Day &nbsp;- Advance by one day. Send to Players &nbsp;- Send this information to the players. Player Information Handout &amp; Text Token &nbsp; Future Moonphases LazyExperience: &nbsp; <a href="https://github.com/RobinKuiper/Roll20APIScripts/tree/master/LazyCalendar" rel="nofollow">https://github.com/RobinKuiper/Roll20APIScripts/tree/master/LazyCalendar</a>
1539598212
GiGs
Pro
Sheet Author
API Scripter
Looks like a great script. Do you have support for tracking years, which affects things like the length of February, and what day of the week a particular date lands on? Since you have a Holidays thing, one thing I wonder if you could do is have the dates of Easter and other Christian holidays, which vary from year to year but follow defined rules (and might need tweaking for gregorian vs julian calendar). It's a bit esoteric, but Easter for example does have some dependence on moon phases. It would be very handy for my Pendragon campaign. I used to have a Tablesmith script that could calculate these for any year.
1539601777
Robin
API Scripter
G G said: Looks like a great script. Thanks! Do you have support for tracking years, which affects things like the length of February, and what day of the week a particular date lands on? Leap years &amp; week days will be added later on. Since you have a Holidays thing, one thing I wonder if you could do is have the dates of Easter and other Christian holidays, which vary from year to year but follow defined rules (and might need tweaking for gregorian vs julian calendar). It's a bit esoteric, but Easter for example does have some dependence on moon phases. It would be very handy for my Pendragon campaign. I used to have a Tablesmith script that could calculate these for any year. Have to take a look into this.
1539605789
GiGs
Pro
Sheet Author
API Scripter
If you do investigate variable holidays, in the Christian Calendar there are basically two types, one of which will be of use more generally. First, there are the Movable Feasts (in Eastern Orthodox, the Paschal Cycle), which are all set in relation to the date of Easter. So you'd need to be able to calculate which date is Easter Sunday, then use a bunch of offsets to assign the dates of the related holidays. There are plenty of sites which describe algorithmic ways to calculate Easter in julian and/or gregorian calendars. The second type of holiday are those which always fall on a specific day of the week (Mother's day/Mothering Sunday, for instance). Lots of calendars would have this kind of holiday, where you'd need a function to calculate things like, last Sunday of July, or first Friday after November 1st, etc.&nbsp; Looking forward to see what you come up with :)
1539615034
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Very nice! The customizing features are great. Moon phases will be an excellent addition. You constantly impress me by the polish and thought that goes into your creations.
Definitely going to grab this and add it to my campaign. Thank you!
Changing the year would be fantastic! I put in the Calendar of Harptos into this and it works really well, but it all says 2018 when my game is in 1372. :) So having the ability to change the year (even without tracking leaps specifically) would be amazing!&nbsp;&nbsp;&nbsp;&nbsp;
1539727171
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Second on the Year request. Also, when adding a holiday, it appears to truncate everything after the first word. "Night of Jars" becomes "Night".
1539727687

Edited 1539727722
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
I notice Seasons (Summer, Winter, etc.) in the JSON. What kind of functionality did you have in mind there?
1539806067

Edited 1539806134
I would also suggest adding in some moon(s) support. &nbsp; I just noticed that you plan on doing the moon. &nbsp;But could you consider multiple moons?
1539859135
Robin
API Scripter
Thanks for the replies! keithcurtis said: Second on the Year request. Also, when adding a holiday, it appears to truncate everything after the first word. "Night of Jars" becomes "Night". Changing years and not truncating in the next update :) Brusana said: I would also suggest adding in some moon(s) support. &nbsp; I just noticed that you plan on doing the moon. &nbsp;But could you consider multiple moons? I shall see what I can do.
1539869958
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Sigh. Script users, always wishing for the moon...
1539871953

Edited 1539872021
GiGs
Pro
Sheet Author
API Scripter
If you do look into adding the date of Easter, I've created a gist which calculates Easter Sunday and the preceding full moon, in both julian and gregorian calenders here:&nbsp; <a href="https://gist.github.com/G-G-G/dee8ff58d889cb83ba1624bf6c25f804" rel="nofollow">https://gist.github.com/G-G-G/dee8ff58d889cb83ba1624bf6c25f804</a> There's also a function for calculating the weekday of any given date. Feel free to grab the code and tweak it to your hearts content. For adding holidays, it would be nice to be able to add the date based on another holiday, adding an offset. Many Christian holidays are based on the Easter Sunday date, which acts like an anchor about which the others hang.
1539934022

Edited 1539934051
GiGs
Pro
Sheet Author
API Scripter
I was looking through your calendar code and I think your leap years aren't correct. In the Julian calendar, every 4th year is a leap year (2000, 2004, etc.) In the Gregorian Calendar it's slightly more complicated: Every 4th year is a leap year, unless &nbsp;its also a century not divisible by 400. So in Gregorian calendar, the years 2100, 2200, 2300 etc are not leap years, but 2000 and 2400 are. Calendars are tricky!
Request for future versions: changing the year tracking. I want the date to reflect the year in the campaign, which is a different number, and to be able to set an "era" for the calendar (e.g. the year is 1025 New Waterdeep Era, etc.). If this functionality exists already, direct me to it, with my apologies. :)
1539980897

Edited 1539980913
Jay R. said: Request for future versions: changing the year tracking. I want the date to reflect the year in the campaign, which is a different number, and to be able to set an "era" for the calendar (e.g. the year is 1025 New Waterdeep Era, etc.). If this functionality exists already, direct me to it, with my apologies. :) Yup! That's up in the next update: "Changing years and not truncating in the next update :)" Thanks Robin!
Sesserdrix said: Jay R. said: Request for future versions: changing the year tracking. I want the date to reflect the year in the campaign, which is a different number, and to be able to set an "era" for the calendar (e.g. the year is 1025 New Waterdeep Era, etc.). If this functionality exists already, direct me to it, with my apologies. :) Yup! That's up in the next update: "Changing years and not truncating in the next update :)" Thanks Robin! LOL, how did I miss that? Thanks!
1540018643
GiGs
Pro
Sheet Author
API Scripter
A couple more feature suggestions: Holidays and Events Have two types of calendar event, recurring (holiday) and and non-recurring (one-time events). Give events a property: visible, hidden (only shown on the GM calendar). Optionally: have the ability to select and event and movie it forward or backwards a set number of dates. Also, the ability to switch an events visibility from hidden to public, and vice-versa. So you can set up future events that will only appear on the calendar for GMs. This was prompted by thinking about how to handle Easter and Movable feasts, whose day changes each year. I thought of adding them as one-time events, you'd calculate them when the year changes and add them as one-time events in a batch. But then I realised GMs could use this for planning and adventure timeline purposes. Say, the GM knows that an army will invade in 2 weeks and adds that to the calendar, then the players do something in play which delays the invasion for a week so the GM shifts it back 7 days, etc. Add Holiday: multiple parameters At present to add a holiday, you need to Add a Holiday, which prints it to chat with day month 1, day 1. You then need to set the month, and then the day individually. It seems it would be a lot simpler for GMs to have the ability to enter the name, month, and day in one command. (Plus any other parameters, like one-time/recurring, visible,hidden, etc). Final thoughts This is looking like a really nifty script. I love what i see so far.
1540304566
Robin
API Scripter
G G said: If you do look into adding the date of Easter, I've created a gist which calculates Easter Sunday and the preceding full moon, in both julian and gregorian calenders here:&nbsp; <a href="https://gist.github.com/G-G-G/dee8ff58d889cb83ba1624bf6c25f804" rel="nofollow">https://gist.github.com/G-G-G/dee8ff58d889cb83ba1624bf6c25f804</a> There's also a function for calculating the weekday of any given date. Feel free to grab the code and tweak it to your hearts content. For adding holidays, it would be nice to be able to add the date based on another holiday, adding an offset. Many Christian holidays are based on the Easter Sunday date, which acts like an anchor about which the others hang. Thanks man! I will look into this. G G said: I was looking through your calendar code and I think your leap years aren't correct. In the Julian calendar, every 4th year is a leap year (2000, 2004, etc.) In the Gregorian Calendar it's slightly more complicated: Every 4th year is a leap year, unless &nbsp;its also a century not divisible by 400. So in Gregorian calendar, the years 2100, 2200, 2300 etc are not leap years, but 2000 and 2400 are. Calendars are tricky! Yeh, at the moment it is just a placeholder, not implemented leap years yet.
1540304645
Robin
API Scripter
Update 0.2.0 Added Weekdays Added Moons !cal command for players (optional) Change year Code rework Bugfixes <a href="https://github.com/RobinKuiper/Roll20APIScripts/tree/master/LazyCalendar" rel="nofollow">https://github.com/RobinKuiper/Roll20APIScripts/tree/master/LazyCalendar</a>
Love the update, I can show the correct year now YAY!!&nbsp; Much thanks!! One question though, is it possible to set show_weekdays to false? Maybe just be able to delete all the weekdays &amp; without destroying the calendar table format that posts to chat?
1540310219
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Sweet! Now I just have to find the time to input data...
1540313445

Edited 1540316984
Loving this so far, but is there a way to set the cycle times for moons (I like moons and my players make fun of me for it.) &nbsp;For instance in the world of Greyhawk there are two moons, Luna with a 28 day cycle and Celene with a 91 day cycle. EDIT: Also an idea, would it be possible to allow the players to add an "event" like a mini holiday that occurs only once? Additionally the way the days of the week are handled does not appear to be very robust. &nbsp;For example, I set up a 7 day month followed by 3 28 day months and when I iterated the day past the 7th day month the next month started in the middle of the week rather than on the first day of the next week. &nbsp;This was again Greyhawk, which has a funny calendar (link for reference) but I was using it as a test.
1540327729

Edited 1540327992
Thank you so much for the ability to edit the year! The last thing, and this may be too big an ask, please feel free to ignore me if so: Is there a way to set the specific dimensions of the calendar? Basically, I am trying to get mine to match the Calendar of Harptos from D&amp;D where each month is 3 weeks and each week is a "tenday" made up of Firstday, Secondday, Thirdday, etc. until Tenday, then it resets. 12 months of 30 days each, and then a single day 'month' for the holidays in between. Right now, the first day of each month after having 10 days isn't necessarily the top-left slot. Ideally I'd like 1 Alturiak to be on the Firstday of the ten day week in the top left, resulting in 3 rows of 10 days each. I am not sure if this would be a big thing, but if so, disregard! It isn't that important. This is already amazing!
1540329194
Robin
API Scripter
Mike said: Love the update, I can show the correct year now YAY!!&nbsp; Much thanks!! One question though, is it possible to set show_weekdays to false? Maybe just be able to delete all the weekdays &amp; without destroying the calendar table format that posts to chat? Hm, will add this in the next update. Brusana said: Loving this so far, but is there a way to set the cycle times for moons (I like moons and my players make fun of me for it.) &nbsp;For instance in the world of Greyhawk there are two moons, Luna with a 28 day cycle and Celene with a 91 day cycle. EDIT: Also an idea, would it be possible to allow the players to add an "event" like a mini holiday that occurs only once? Additionally the way the days of the week are handled does not appear to be very robust. &nbsp;For example, I set up a 7 day month followed by 3 28 day months and when I iterated the day past the 7th day month the next month started in the middle of the week rather than on the first day of the next week. &nbsp;This was again Greyhawk, which has a funny calendar (link for reference) but I was using it as a test. Will look into this all. Sesserdrix said: Thank you so much for the ability to edit the year! The last thing, and this may be too big an ask, please feel free to ignore me if so: Is there a way to set the specific dimensions of the calendar? Basically, I am trying to get mine to match the Calendar of Harptos from D&amp;D where each month is 3 weeks and each week is a "tenday" made up of Firstday, Secondday, Thirdday, etc. until Tenday, then it resets. 12 months of 30 days each, and then a single day 'month' for the holidays in between. Right now, the first day of each month after having 10 days isn't necessarily the top-left slot. Ideally I'd like 1 Alturiak to be on the Firstday of the ten day week in the top left, resulting in 3 rows of 10 days each. I am not sure if this would be a big thing, but if so, disregard! It isn't that important. This is already amazing! Will take a look into this.
Robin said: Update 0.2.0 Added Weekdays Added Moons !cal command for players (optional) Change year Code rework Bugfixes <a href="https://github.com/RobinKuiper/Roll20APIScripts/tree/master/LazyCalendar" rel="nofollow">https://github.com/RobinKuiper/Roll20APIScripts/tree/master/LazyCalendar</a> Wow! Thanks for being so speedy on this. Can't wait to test it out tonight.
1540337692
Robin
API Scripter
Jay R. said: Robin said: Update 0.2.0 Added Weekdays Added Moons !cal command for players (optional) Change year Code rework Bugfixes <a href="https://github.com/RobinKuiper/Roll20APIScripts/tree/master/LazyCalendar" rel="nofollow">https://github.com/RobinKuiper/Roll20APIScripts/tree/master/LazyCalendar</a> Wow! Thanks for being so speedy on this. Can't wait to test it out tonight. Let me know if you find any bugs or troubles :)
Robin said: Jay R. said: Robin said: Update 0.2.0 Added Weekdays Added Moons !cal command for players (optional) Change year Code rework Bugfixes <a href="https://github.com/RobinKuiper/Roll20APIScripts/tree/master/LazyCalendar" rel="nofollow">https://github.com/RobinKuiper/Roll20APIScripts/tree/master/LazyCalendar</a> Wow! Thanks for being so speedy on this. Can't wait to test it out tonight. Let me know if you find any bugs or troubles :) Looks great so far! I've got the moons going, and changed the year. Question: is there a way to tie the start of a moon cycle to a specific day?&nbsp;
Really nice Calendar Robin! Any chance you could add weight to the weather rolls like the rollable tables? Cheers
1542144513

Edited 1542307766
So with this awesome script out there... has anyone created the standard D&amp;D 5e calendar that they would like to Export and post? :D edit: here's the json with the basic Harptos calendar to get others started (I made the inter-month holidays into their own 1 day months): {"current":{"month":1,"day_of_the_year":31,"day_of_the_week":1,"day_of_the_month":1,"year":1489,"weather":"Misty - A low mist hangs in the air that limits vision to a maximum of 150 ft. for everything of large size and smaller. Any such target is assumed to have total cover while anything huge or larger past this range is considered to have three-quarters cover. Any Survival(wisdom) check made to navigate through the mist has disadvantage."},"weekdays":["First Day","Second Day","Third Day","Fourth Day","Fifth Day","Sixth Day","Seventh Day","Eighth Day","Ninth Day","Tenth Day"],"months":[{"name":"Hammer","days":"30","avg_temp":10,"weather_type":0},{"name":"Midwinter","days":"1","avg_temp":10,"weather_type":0},{"name":"Alturiak","days":"30","avg_temp":10,"weather_type":0},{"name":"Ches","days":"30","avg_temp":10,"weather_type":0},{"name":"Tarsakh","days":30,"avg_temp":10,"weather_type":1},{"name":"Greengrass","days":"1","avg_temp":10,"weather_type":0},{"name":"Mirtul","days":"30","avg_temp":10,"weather_type":1},{"name":"Kythorn","days":30,"avg_temp":10,"weather_type":1},{"name":"Flamerule","days":"30","avg_temp":10,"weather_type":1},{"name":"Midsummer","days":"1","avg_temp":10,"weather_type":0},{"name":"Eleasis","days":"30","avg_temp":10,"weather_type":1},{"name":"Eleint","days":30,"avg_temp":10,"weather_type":0},{"name":"Highharvestide","days":"1","avg_temp":10,"weather_type":0},{"name":"Marpenoth","days":"30","avg_temp":10,"weather_type":0},{"name":"Uktar","days":30,"avg_temp":10,"weather_type":2},{"name":"Feast of the Moon","days":"1","avg_temp":10,"weather_type":0},{"name":"Nightal","days":"30","avg_temp":10,"weather_type":2}],"seasons":[{"name":"Autumn","months":"1-3"},{"name":"Winter","months":"1-3"},{"name":"Spring","months":"1-3"},{"name":"Summer","months":"1-3"}],"leap":{"year":4,"month":2},"holidays":[{"name":"Spring Equinox","month":"2","day":"19"},{"name":"Summer Solstice","month":"5","day":"20"},{"name":"Autumn Equinox","month":"8","day":"21"},{"name":"Winter Solstice","month":11,"day":"20"}],"weather_types":[{"name":"Rainy","texts":["Misty - A low mist hangs in the air that limits vision to a maximum of 150 ft. for everything of large size and smaller. Any such target is assumed to have total cover while anything huge or larger past this range is considered to have three-quarters cover. Any Survival(wisdom) check made to navigate through the mist has disadvantage.","Heavy Mist - A thick almost tangible mist drowns out any vision past 15ft. for everything large and smaller, with anything huge or larger only being visible up to 30ft. away. All sight based abilities outside of the 15ft. range are at disadvantage and all creatures and objects outside of that range are assumed to have total cover. This disadvantage cannot be negated and also applies to navigation unless the DM specifically allows you to.","Dry and Sunny - These days are rare and should be enjoyed.","Sunny with Rain Showers - Smaller localised rain clouds fill the skies, leaving the days filled both with rain and rainbows. There will be a 1 in 3 chance of it currently being dry on the character’s position.","Rainy - A sheet of rain falls over the land, creating a damp but slightly cosy atmosphere while walking under the massive trees of the jungle. Though the humidity rises most places within the jungle are still relatively dry due to the thick canopy catching most of the rain.","Heavy Rain - Rain and wind tear at the trees and pour down on any poor adventurer out to test their luck. Any Wisdom(perception) checks beyond 150ft. become blurred and are at disadvantage except for anything that’s huge or larger. Any creature outside of this range that is large or smaller gains the benefits of three-quarters cover and missile weapons ranges are halved.","Tropical Storm - The sky darkens as lighting, rain and mayhem rain down from above while the wind tears the trees away from the earth itself. Rivers swell and rage through the jungle, preventing any form of travel by boat. Any guide worth their salt knows that the best choice is to hunker down and wait out the storm, but there are always those foolish enough to think they can test mother nature. Anyone braving the storm immediately gains a level of exhaustion and must make a DC 10 Constitution saving throw at the end of the day to prevent weariness from setting in. On top of the attributes of “Heavy Rain” all characters are also at disadvantage for making Wisdom(survival) checks to navigate.","Extremely Warm and Rainy - The heat rises to 35°C and above making movement cumbersome. Any character that decides to travel long distances during these days gets a level of exhaustion.","Extremely Warm and Dry - The heat rises to 35°C and above making movement cumbersome. Any character that decides to travel long distances during these days gets a level of exhaustion. Characters will need to actively prevent being dehydrated throughout the day."]},{"name":"Dry","texts":["Misty - A low mist hangs in the air that limits vision to a maximum of 150 ft. for everything of large size and smaller. Any such target is assumed to have total cover while anything huge or larger past this range is considered to have three-quarters cover. Any Survival(wisdom) check made to navigate through the mist has disadvantage.","Heavy Mist - A thick almost tangible mist drowns out any vision past 15ft. for everything large and smaller, with anything huge or larger only being visible up to 30ft. away. All sight based abilities outside of the 15ft. range are at disadvantage and all creatures and objects outside of that range are assumed to have total cover. This disadvantage cannot be negated and also applies to navigation unless the DM specifically allows you to.","Dry and Sunny - These days are rare and should be enjoyed.","Sunny with Rain Showers - Smaller localised rain clouds fill the skies, leaving the days filled both with rain and rainbows. There will be a 1 in 3 chance of it currently being dry on the character’s position.","Rainy - A sheet of rain falls over the land, creating a damp but slightly cosy atmosphere while walking under the massive trees of the jungle. Though the humidity rises most places within the jungle are still relatively dry due to the thick canopy catching most of the rain.","Heavy Rain - Rain and wind tear at the trees and pour down on any poor adventurer out to test their luck. Any Wisdom(perception) checks beyond 150ft. become blurred and are at disadvantage except for anything that’s huge or larger. Any creature outside of this range that is large or smaller gains the benefits of three-quarters cover and missile weapons ranges are halved.","Tropical Storm - The sky darkens as lighting, rain and mayhem rain down from above while the wind tears the trees away from the earth itself. Rivers swell and rage through the jungle, preventing any form of travel by boat. Any guide worth their salt knows that the best choice is to hunker down and wait out the storm, but there are always those foolish enough to think they can test mother nature. Anyone braving the storm immediately gains a level of exhaustion and must make a DC 10 Constitution saving throw at the end of the day to prevent weariness from setting in. On top of the attributes of “Heavy Rain” all characters are also at disadvantage for making Wisdom(survival) checks to navigate.","Extremely Warm and Rainy - The heat rises to 35°C and above making movement cumbersome. Any character that decides to travel long distances during these days gets a level of exhaustion.","Extremely Warm and Dry - The heat rises to 35°C and above making movement cumbersome. Any character that decides to travel long distances during these days gets a level of exhaustion. Characters will need to actively prevent being dehydrated throughout the day."]},{"name":"Extreme","texts":["Misty - A low mist hangs in the air that limits vision to a maximum of 150 ft. for everything of large size and smaller. Any such target is assumed to have total cover while anything huge or larger past this range is considered to have three-quarters cover. Any Survival(wisdom) check made to navigate through the mist has disadvantage.","Heavy Mist - A thick almost tangible mist drowns out any vision past 15ft. for everything large and smaller, with anything huge or larger only being visible up to 30ft. away. All sight based abilities outside of the 15ft. range are at disadvantage and all creatures and objects outside of that range are assumed to have total cover. This disadvantage cannot be negated and also applies to navigation unless the DM specifically allows you to.","Sunny with Rain Showers - Smaller localised rain clouds fill the skies, leaving the days filled both with rain and rainbows. There will be a 1 in 3 chance of it currently being dry on the character’s position.","Rainy - A sheet of rain falls over the land, creating a damp but slightly cosy atmosphere while walking under the massive trees of the jungle. Though the humidity rises most places within the jungle are still relatively dry due to the thick canopy catching most of the rain.","Heavy Rain - Rain and wind tear at the trees and pour down on any poor adventurer out to test their luck. Any Wisdom(perception) checks beyond 150ft. become blurred and are at disadvantage except for anything that’s huge or larger. Any creature outside of this range that is large or smaller gains the benefits of three-quarters cover and missile weapons ranges are halved.","Tropical Storm - The sky darkens as lighting, rain and mayhem rain down from above while the wind tears the trees away from the earth itself. Rivers swell and rage through the jungle, preventing any form of travel by boat. Any guide worth their salt knows that the best choice is to hunker down and wait out the storm, but there are always those foolish enough to think they can test mother nature. Anyone braving the storm immediately gains a level of exhaustion and must make a DC 10 Constitution saving throw at the end of the day to prevent weariness from setting in. On top of the attributes of “Heavy Rain” all characters are also at disadvantage for making Wisdom(survival) checks to navigate.","Extremely Warm and Rainy - The heat rises to 35°C and above making movement cumbersome. Any character that decides to travel long distances during these days gets a level of exhaustion."]}],"moons":[{"name":"Normal","days_per_cycle":7,"cycle":["New Moon","Waxing Crescent","First Quarter","Waxing Gibbous","Full Moon","Waning Gibbous","Last Quarter","Waning Crescent"]}]} I second Jay's request to be able to adjust the dimensions of the table. For now I'm just going to leave the table turned off. Other than that this is an amazing script! One more request: ability to have a holiday that appears on the leap-year (again from the Calendar of Harptos). For now I'm just going to make a holiday that falls on the 2nd day of Midsummer every 4 years and then edit the json to make the leap year occur on that month and extend it to 2 days: {"current":{"month":1,"day_of_the_year":31,"day_of_the_week":1,"day_of_the_month":1,"year":1489,"weather":"Misty - A low mist hangs in the air that limits vision to a maximum of 150 ft. for everything of large size and smaller. Any such target is assumed to have total cover while anything huge or larger past this range is considered to have three-quarters cover. Any Survival(wisdom) check made to navigate through the mist has disadvantage."},"weekdays":["First Day","Second Day","Third Day","Fourth Day","Fifth Day","Sixth Day","Seventh Day","Eighth Day","Ninth Day","Tenth Day"],"months":[{"name":"Hammer","days":"30","avg_temp":10,"weather_type":0},{"name":"Midwinter","days":"1","avg_temp":10,"weather_type":0},{"name":"Alturiak","days":"30","avg_temp":10,"weather_type":0},{"name":"Ches","days":"30","avg_temp":10,"weather_type":0},{"name":"Tarsakh","days":30,"avg_temp":10,"weather_type":1},{"name":"Greengrass","days":"1","avg_temp":10,"weather_type":0},{"name":"Mirtul","days":"30","avg_temp":10,"weather_type":1},{"name":"Kythorn","days":30,"avg_temp":10,"weather_type":1},{"name":"Flamerule","days":"30","avg_temp":10,"weather_type":1},{"name":"Midsummer","days":"1","avg_temp":10,"weather_type":0},{"name":"Eleasis","days":"30","avg_temp":10,"weather_type":1},{"name":"Eleint","days":30,"avg_temp":10,"weather_type":0},{"name":"Highharvestide","days":"1","avg_temp":10,"weather_type":0},{"name":"Marpenoth","days":"30","avg_temp":10,"weather_type":0},{"name":"Uktar","days":30,"avg_temp":10,"weather_type":2},{"name":"Feast of the Moon","days":"1","avg_temp":10,"weather_type":0},{"name":"Nightal","days":"30","avg_temp":10,"weather_type":2}],"seasons":[{"name":"Autumn","months":"1-3"},{"name":"Winter","months":"1-3"},{"name":"Spring","months":"1-3"},{"name":"Summer","months":"1-3"}],"leap":{"year":4,"month":8},"holidays":[{"name":"Spring Equinox","month":"2","day":"19"},{"name":"Summer Solstice","month":"5","day":"20"},{"name":"Autumn Equinox","month":"8","day":"21"},{"name":"Winter Solstice","month":11,"day":"20"}],"weather_types":[{"name":"Rainy","texts":["Misty - A low mist hangs in the air that limits vision to a maximum of 150 ft. for everything of large size and smaller. Any such target is assumed to have total cover while anything huge or larger past this range is considered to have three-quarters cover. Any Survival(wisdom) check made to navigate through the mist has disadvantage.","Heavy Mist - A thick almost tangible mist drowns out any vision past 15ft. for everything large and smaller, with anything huge or larger only being visible up to 30ft. away. All sight based abilities outside of the 15ft. range are at disadvantage and all creatures and objects outside of that range are assumed to have total cover. This disadvantage cannot be negated and also applies to navigation unless the DM specifically allows you to.","Dry and Sunny - These days are rare and should be enjoyed.","Sunny with Rain Showers - Smaller localised rain clouds fill the skies, leaving the days filled both with rain and rainbows. There will be a 1 in 3 chance of it currently being dry on the character’s position.","Rainy - A sheet of rain falls over the land, creating a damp but slightly cosy atmosphere while walking under the massive trees of the jungle. Though the humidity rises most places within the jungle are still relatively dry due to the thick canopy catching most of the rain.","Heavy Rain - Rain and wind tear at the trees and pour down on any poor adventurer out to test their luck. Any Wisdom(perception) checks beyond 150ft. become blurred and are at disadvantage except for anything that’s huge or larger. Any creature outside of this range that is large or smaller gains the benefits of three-quarters cover and missile weapons ranges are halved.","Tropical Storm - The sky darkens as lighting, rain and mayhem rain down from above while the wind tears the trees away from the earth itself. Rivers swell and rage through the jungle, preventing any form of travel by boat. Any guide worth their salt knows that the best choice is to hunker down and wait out the storm, but there are always those foolish enough to think they can test mother nature. Anyone braving the storm immediately gains a level of exhaustion and must make a DC 10 Constitution saving throw at the end of the day to prevent weariness from setting in. On top of the attributes of “Heavy Rain” all characters are also at disadvantage for making Wisdom(survival) checks to navigate.","Extremely Warm and Rainy - The heat rises to 35°C and above making movement cumbersome. Any character that decides to travel long distances during these days gets a level of exhaustion.","Extremely Warm and Dry - The heat rises to 35°C and above making movement cumbersome. Any character that decides to travel long distances during these days gets a level of exhaustion. Characters will need to actively prevent being dehydrated throughout the day."]},{"name":"Dry","texts":["Misty - A low mist hangs in the air that limits vision to a maximum of 150 ft. for everything of large size and smaller. Any such target is assumed to have total cover while anything huge or larger past this range is considered to have three-quarters cover. Any Survival(wisdom) check made to navigate through the mist has disadvantage.","Heavy Mist - A thick almost tangible mist drowns out any vision past 15ft. for everything large and smaller, with anything huge or larger only being visible up to 30ft. away. All sight based abilities outside of the 15ft. range are at disadvantage and all creatures and objects outside of that range are assumed to have total cover. This disadvantage cannot be negated and also applies to navigation unless the DM specifically allows you to.","Dry and Sunny - These days are rare and should be enjoyed.","Sunny with Rain Showers - Smaller localised rain clouds fill the skies, leaving the days filled both with rain and rainbows. There will be a 1 in 3 chance of it currently being dry on the character’s position.","Rainy - A sheet of rain falls over the land, creating a damp but slightly cosy atmosphere while walking under the massive trees of the jungle. Though the humidity rises most places within the jungle are still relatively dry due to the thick canopy catching most of the rain.","Heavy Rain - Rain and wind tear at the trees and pour down on any poor adventurer out to test their luck. Any Wisdom(perception) checks beyond 150ft. become blurred and are at disadvantage except for anything that’s huge or larger. Any creature outside of this range that is large or smaller gains the benefits of three-quarters cover and missile weapons ranges are halved.","Tropical Storm - The sky darkens as lighting, rain and mayhem rain down from above while the wind tears the trees away from the earth itself. Rivers swell and rage through the jungle, preventing any form of travel by boat. Any guide worth their salt knows that the best choice is to hunker down and wait out the storm, but there are always those foolish enough to think they can test mother nature. Anyone braving the storm immediately gains a level of exhaustion and must make a DC 10 Constitution saving throw at the end of the day to prevent weariness from setting in. On top of the attributes of “Heavy Rain” all characters are also at disadvantage for making Wisdom(survival) checks to navigate.","Extremely Warm and Rainy - The heat rises to 35°C and above making movement cumbersome. Any character that decides to travel long distances during these days gets a level of exhaustion.","Extremely Warm and Dry - The heat rises to 35°C and above making movement cumbersome. Any character that decides to travel long distances during these days gets a level of exhaustion. Characters will need to actively prevent being dehydrated throughout the day."]},{"name":"Extreme","texts":["Misty - A low mist hangs in the air that limits vision to a maximum of 150 ft. for everything of large size and smaller. Any such target is assumed to have total cover while anything huge or larger past this range is considered to have three-quarters cover. Any Survival(wisdom) check made to navigate through the mist has disadvantage.","Heavy Mist - A thick almost tangible mist drowns out any vision past 15ft. for everything large and smaller, with anything huge or larger only being visible up to 30ft. away. All sight based abilities outside of the 15ft. range are at disadvantage and all creatures and objects outside of that range are assumed to have total cover. This disadvantage cannot be negated and also applies to navigation unless the DM specifically allows you to.","Sunny with Rain Showers - Smaller localised rain clouds fill the skies, leaving the days filled both with rain and rainbows. There will be a 1 in 3 chance of it currently being dry on the character’s position.","Rainy - A sheet of rain falls over the land, creating a damp but slightly cosy atmosphere while walking under the massive trees of the jungle. Though the humidity rises most places within the jungle are still relatively dry due to the thick canopy catching most of the rain.","Heavy Rain - Rain and wind tear at the trees and pour down on any poor adventurer out to test their luck. Any Wisdom(perception) checks beyond 150ft. become blurred and are at disadvantage except for anything that’s huge or larger. Any creature outside of this range that is large or smaller gains the benefits of three-quarters cover and missile weapons ranges are halved.","Tropical Storm - The sky darkens as lighting, rain and mayhem rain down from above while the wind tears the trees away from the earth itself. Rivers swell and rage through the jungle, preventing any form of travel by boat. Any guide worth their salt knows that the best choice is to hunker down and wait out the storm, but there are always those foolish enough to think they can test mother nature. Anyone braving the storm immediately gains a level of exhaustion and must make a DC 10 Constitution saving throw at the end of the day to prevent weariness from setting in. On top of the attributes of “Heavy Rain” all characters are also at disadvantage for making Wisdom(survival) checks to navigate.","Extremely Warm and Rainy - The heat rises to 35°C and above making movement cumbersome. Any character that decides to travel long distances during these days gets a level of exhaustion."]}],"moons":[{"name":"Normal","days_per_cycle":7,"cycle":["New Moon","Waxing Crescent","First Quarter","Waxing Gibbous","Full Moon","Waning Gibbous","Last Quarter","Waning Crescent"]}]} edit 2: Ahh I see even without the table displayed the underlying link between the day of the week and the structure of the month remains so you end up with Second Day 1 Hammer, 1489. Well either way, it's still an awesome tool.