A high-resolution, minimal set of dynamic calendar wallpapers for iPhone, iPad, and Mac. It features full-year dot calendars, automated past-day greying, year progress tracking, and device-specific layouts tuned for clean wallpaper composition.
- Daily Automation: GitHub Actions generates the latest wallpapers every night before 00:00 UTC.
- Smart Calendar: Automatically highlights today's date and "greys out" past months and days.
- Year Progress: Shows days left, weeks left, and year completion percentage.
- Multi-Device Support: Generates wallpapers for iPhone, iPad portrait, iPad landscape, and Mac.
- Retina Ready: High-resolution output tuned for current device targets.
- Zero Dependencies (Local): No external APIs like Unsplash; uses pure
node-canvasfor speed and reliability. - Shared Renderer: Common theme, validation, and rendering helpers keep platform outputs consistent.
The simplest way to use WallCal is to install the pre-made macOS Shortcut. It automatically pulls the latest generated image from this repository and sets it as your wallpaper.
- Download Shortcut: WallCal macOS Shortcut
- Schedule: Set this shortcut to run daily at 00:01 AM using a "Time of Day" automation in the Shortcuts app.
If you prefer to generate wallpapers locally and customize the code:
Requires Node.js and npm.
git clone https://github.com/Rahulsharma0810/WallCal.git
cd WallCal
npm install
npm run generate:all
npm run verifyGenerate a single target when you only want one device:
npm run generate:iphone
npm run generate:ipad
npm run generate:ipad-landscape
npm run generate:macSee DEVICES.md for the current platform targets, resolutions, output files, and local commands.
Edit the platform configs under configs/ to customize colors, fonts, or layout:
const CONFIG = {
width: 3456,
height: 2234,
gradientColors: ["#191919", "#181818", "#181818"],
// ... more settings
};Shared colors, fonts, and month labels live in lib/wallpaper-theme.js. Shared drawing and output logic live in lib/wallpaper-renderer.js.
Platform generator entrypoints live under generators/, shared logic under lib/, validation and device configs under configs/, and local utility scripts under scripts/ and tests/.
Current platform configs:
configs/iphone.jsconfigs/ipad-portrait.jsconfigs/ipad-landscape.jsconfigs/mac.js
- macOS: Full-year dot-calendar wallpaper.
- iPhone: Vertical dot-calendar wallpaper.
- iPad: Portrait and landscape wallpaper generators for iPad Air 11-inch (M2).
- Custom Themes: Support for light mode and varied gradients.
MIT ยฉ Rahul Sharma



