Projects Technology

What's Happening?

Automatically Generating Desktop Wallpaper with a Calendar

Generated Calendar for April 9, 2026

One of my favorite D&D Youtubers, Ginny Di, does a calendar every year as one of the main ways she makes money at what she does. This year’s Theme DungeonDolls involves her making her various cosplay photo shoots look like advertisements for D&D Themed Barbie Dolls (based on some of her more popular recent videos where she turns Barbies into D&D Characters). When this was announced I quickly purchased the deluxe edition which came with a number of digital files. For each month there’s the calendar header art with text, the calendar header art without text, and an image meant to be used as a desktop wallpaper that includes the art and a month calendar.

I quickly started using the calendar version as my background wallpaper, though because I have 3 monitors with vastly different aspect ratios and orientations (my macbook pro screen with a 16:10 aspect ratio, a 4k monitor set in vertical arrangement (9:16 aspect ratio), and an Ultrawide monitor with a 21:9 aspect ratio. The art just didn’t really fit. On the vertical monitor, which is the one that most often I might have blank enough that I could look at, ended up with just tons of blank space both above and below the calendar, which I filled up with widgets and windows.

This month, Barbara and I are going on a trip to Disneyland to celebrate our 20th wedding anniversary (that’s right I’ve been married for nearly 2 decades now). As the month began, in my excitement I started editing in an image editor the calendar to show the upcoming trip and each day I would edit the image and put a red X over the days that have passed.

My Hand Made and Edited Calendar

This looked really good, but… I’m a Software Engineer, and anything that makes me do a repeated task every single day was quickly going to get old, real quick.

So I fired up Antigravity and started vibe coding something. I’ve created a script that with a simple json config file and a folder full of images will get the aspect ratios of each monitor, generate an image for the monitor, and update the desktop image. The script can then generate and install a scheduled task on MacOS or Windows to update all the desktop wallpapers available.

I’m running this with a folder of Ginny D’s art and a config file with a bunch of events. The script runs automatically whenever my computer is booted up and if I happen to be online at midnight, will run at midnight as well, automatically Xing off days and updating with any new events added to the config.

I added support to pull in public ICS calendar URLs, and a whole bunch of other nifty features with how it can process dates even with holiday rules like “Last Monday in May” or “Fourth Thursday in November” or “Day after Fourth Thursday in November”

I’m releasing this on my github in case you find it useful and want to use it yourself. I haven’t yet tested it on Windows to make sure it works there but I will later in the week, but it works great on MacOS.

Note, because I don’t own the Ginny D art, the repo does not include any of the calendar art, you’ll have to fill the folder with your own images.

Automatically Generated Vertical Monitor version

The script actually analyzes the colors on the selected image and sets background and accent colors to match. April in Ginny D’s calendar has a rather dark themed one with a teal accent color so that’s what it came up with, but May has a much brighter image with a bright teal background and brown accents, so when the month flips from April to May, the image will update accordingly.

I hope some of you find it as useful as I have, I’m rather proud of it for such a short amount of work in an evening after work, it’s quite good.