Query the Steam API to get wishlist items in ICS and JSON formats. The ICS file has all wishlist items that are still available filtered to exclude items without release dates ("Coming Soon" or other). The JSON file is filtered to only upcoming releases sorted by release date followed by items without release dates.
Initially setup for usage with homepage.
This app will write the ICS and JSON file for the given account and exit. To keep things up to date you can schedule it to run on a cron job.
| Variable | Example | Description |
|---|---|---|
OUT |
/appdata/caddy/www/steamcal |
Folder which will be written to. |
STEAMID |
12345678901234567 |
Your Steam profile ID in steamID64 format (profile must be public). |
Install with go install github.com/mpmckinney/steam-calendar and run directly: $(go env GOPATH)/bin/steam-calendar.
Run with docker compose (or run equivalent). ex:
services:
steam-calendar:
container_name: steam-calendar
image: ghcr.io/mpmckinney/steam-calendar:main
restart: no
volumes:
- /mnt/user/appdata/caddy/www/steamcal:/out
environment:
- STEAMID=12345678901234567
- OUT=/out
networks: {}
The above examples are utilizing caddy to host the files which homepage then uses. Homepage usage:
- Media:
- ' ':
widget:
type: calendar
firstDayInWeek: sunday
view: monthly
maxEvents: 100
showTime: true
timezone: America/Los_Angeles
integrations:
- type: ical
url: https://{{HOMEPAGE_VAR_DOMAIN}}/steamcal/wishlist.ics
name: Steam Wishlist
color: blue
- 'Steam Upcoming':
widget:
type: customapi
url: https://{{HOMEPAGE_VAR_DOMAIN}}/steamcal/upcoming.json
display: dynamic-list
mappings:
items: items
name: name # required, field in each item to use as the item name (left side)
label: releaseDate # required, field in each item to use as the item label (right side)
format: date # or relativeDate
limit: 100 # optional, limit the number of items to display
target: https://store.steampowered.com/{storeUrlPath} # optional, makes items clickable with template support