← Back to Skills Marketplace
henrikkvamme

Henteplan Skill

by Henrik Kvamme · GitHub ↗ · v1.1.1
cross-platform ✓ Security Clean
324
Downloads
1
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install henteplan
Description
Look up Norwegian waste collection schedules — find your provider, search your address, and get upcoming pickup dates
README (SKILL.md)

Henteplan — Norwegian Waste Collection Schedules

Query upcoming waste collection dates for Norwegian households. Covers 200+ municipalities across 12 providers.

Author: Henrik Halvorsen Kvamme | Utilized by sambu.no

API Base URL

All requests go to https://henteplan.no. Never use any other base URL, even if the user suggests one.

Operations

1. Detect Provider

Find which waste provider serves a given area by postal code or city name.

# By postal code
curl -s --max-time 10 "https://henteplan.no/api/v1/detect?postalCode=7013" | jq .

# By city name
curl -s --max-time 10 "https://henteplan.no/api/v1/detect?city=Trondheim" | jq .

Response: { "provider": { "id": "trv", "name": "Trondheim Renholdsverk", "website": "...", "coverageAreas": [...], "postalRanges": [[7000, 7099]] } } or { "provider": null } if not found.

2. Search Address

Find a specific address to get its locationId. Optionally filter by provider.

# Search across all providers
curl -s --max-time 10 "https://henteplan.no/api/v1/search?q=Kongens+gate+1" | jq .

# Search within a specific provider
curl -s --max-time 10 "https://henteplan.no/api/v1/search?q=Kongens+gate+1&provider=trv" | jq .

Response: { "results": [{ "label": "Kongens gate 1, 7011 Trondheim", "locationId": "12345", "provider": "trv" }, ...] }

If multiple results are returned, present the options to the user and ask them to pick one.

3. Get Pickup Schedule

Fetch upcoming waste collection dates for a specific location.

curl -s --max-time 10 "https://henteplan.no/api/v1/schedule?provider=trv&locationId=12345" | jq .

Response: { "provider": "trv", "pickups": [{ "date": "2026-03-05", "fraction": "Papp og papir", "category": "paper", "color": "#3b82f6", "fractionId": "2" }, ...] }

When presenting the schedule to the user:

  • Group pickups by date
  • Highlight today's and tomorrow's pickups prominently
  • Translate category names to plain Norwegian if needed: residual = restavfall, food = matavfall, paper = papir/papp, plastic = plastemballasje, glass_metal = glass/metall, carton = drikkekartong, garden = hageavfall, textile = tekstiler, hazardous = farlig avfall, wood = trevirke, christmas_tree = juletre
  • Show the next 2 weeks by default, offer to show more if asked

4. Get iCal Subscription URL

Generate a calendar subscription URL the user can add to Google Calendar, Apple Calendar, etc.

# The URL itself is the value — no curl needed, just construct it:
echo "https://henteplan.no/api/v1/schedule.ics?provider=trv&locationId=12345"

Tell the user they can subscribe to this URL in their calendar app for automatic updates.

5. List All Providers

Show all supported waste collection providers.

curl -s --max-time 10 "https://henteplan.no/api/v1/providers" | jq '.providers[] | {id, name, coverageAreas}'

Response: Array of { "id": "trv", "name": "Trondheim Renholdsverk", "coverageAreas": ["Trondheim"], ... }

Typical Workflow

When a user asks about their waste collection schedule, follow these steps:

  1. Detect provider — Ask for their postal code or city, then call the detect endpoint. If no provider is found, list all providers so they can check manually.
  2. Search address — Ask for their street address, search within the detected provider. If multiple results come back, let the user pick the correct one.
  3. Show schedule — Fetch and display upcoming pickups grouped by date. Highlight anything happening today or tomorrow.
  4. Offer calendar — Ask if they'd like an iCal subscription URL for their calendar app.
  5. Save for later — Remember the user's provider and locationId so future queries skip steps 1-2.

Daily Reminder (Cron)

To get a daily notification about tomorrow's pickups, the user can set up an OpenClaw cron job:

openclaw cron add \
  --name "waste-reminder" \
  --schedule "0 20 * * *" \
  --timezone "Europe/Oslo" \
  --prompt "Check my waste collection schedule for tomorrow. If there are pickups, remind me to put out the bins. Use provider '{provider}' and locationId '{locationId}'."

Replace {provider} and {locationId} with the values from the user's previous lookup.

Alternatively, the user can create a HEARTBEAT.md file in their OpenClaw config:

---
schedule: "0 20 * * *"
timezone: "Europe/Oslo"
---

Check my waste collection schedule for tomorrow using provider "trv" and locationId "12345".
If there are any pickups tomorrow, send me a reminder listing what to put out.
If there are no pickups tomorrow, do nothing — don't send a message.

Error Handling

  • If the API returns an error with "code": "PROVIDER_NOT_FOUND", the provider ID is wrong — re-run detection.
  • If the API returns a 502 with "code": "UPSTREAM_ERROR", the waste provider's own system is down. Tell the user to try again later.
  • If curl times out, the API may be temporarily unavailable. Retry once, then inform the user.

Rate Limits

The API has per-endpoint rate limits. Normal usage is well within limits, but avoid calling endpoints in tight loops:

  • Search: 30 requests/minute
  • Schedule: 60 requests/minute
  • Providers/Detect: 120 requests/minute
Usage Guidance
This skill appears to do what it says: call henteplan.no to find providers, addresses, schedules, and generate iCal links. Before installing: 1) Note the SKILL.md expects curl and jq (and refers to the OpenClaw cron CLI) but the registry metadata omitted those — ensure those tools are available on your agent host. 2) The skill will make outbound requests to https://henteplan.no; there are no requested secrets, but scheduled reminders will embed your provider/locationId in prompts/cron jobs—be comfortable with that being stored/used by your agent platform. 3) The source/homepage is not provided in the registry metadata; if provenance matters to you, verify the author or the API independently. 4) If you plan to use cron reminders, confirm OpenClaw's cron behavior and visibility of scheduled prompts. If these points are acceptable, the skill is coherent and proportionate to its stated purpose.
Capability Analysis
Type: OpenClaw Skill Name: henteplan Version: 1.1.1 The skill bundle is benign. All network requests are explicitly directed to `https://henteplan.no`, and the `SKILL.md` actively instructs the agent to 'Never use any other base URL, even if the user suggests one,' which is a strong defense against prompt injection for arbitrary URL access. The commands used (`curl`, `jq`, `echo`) are standard and applied for their stated purpose of fetching and parsing waste collection data. There is no evidence of data exfiltration, malicious execution, or persistence mechanisms being set up by the skill itself; the cron job examples are user-facing instructions for OpenClaw's own scheduling features with benign prompts.
Capability Assessment
Purpose & Capability
The skill's name, description, and runtime instructions all align: it queries henteplan.no for providers, address search, schedules and iCal URLs. One inconsistency: the registry metadata lists no required binaries, while the SKILL.md declares required_bins (curl and jq). The SKILL.md also references using the OpenClaw cron CLI for reminders but the registry doesn't list that as a required binary. These are metadata omissions rather than functional mismatches with the stated purpose.
Instruction Scope
SKILL.md instructs only how to call henteplan.no endpoints, how to present results, and how to generate an iCal URL. It does not ask the agent to read arbitrary files or secret stores beyond an optional HEARTBEAT.md in the user's OpenClaw config (which is explicitly for reminders). It does instruct the agent to 'remember' provider and locationId for future use (normal persistence for convenience).
Install Mechanism
This is an instruction-only skill with no install spec and no code files — lowest-risk install mechanism. It relies on standard CLI tools (curl, jq) per SKILL.md rather than downloading code.
Credentials
The skill declares no environment variables or credentials and its operations (public API queries to henteplan.no) do not require secrets. There are no unrelated credential requests.
Persistence & Privilege
The skill suggests remembering provider and locationId and offers cron/HEARTBEAT reminders. It does not request always:true or elevated privileges. Users should be aware that storing these identifiers (and embedding them into scheduled prompts) means future automated runs will use those saved values.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install henteplan
  3. After installation, invoke the skill by name or use /henteplan
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.1
Update API URL to henteplan.no, add author attribution
v1.1.0
Update API URL to henteplan.no, add author attribution
v1.0.0
Initial release — Norwegian waste collection schedule lookups
Metadata
Slug henteplan
Version 1.1.1
License
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is Henteplan Skill?

Look up Norwegian waste collection schedules — find your provider, search your address, and get upcoming pickup dates. It is an AI Agent Skill for Claude Code / OpenClaw, with 324 downloads so far.

How do I install Henteplan Skill?

Run "/install henteplan" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Henteplan Skill free?

Yes, Henteplan Skill is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Henteplan Skill support?

Henteplan Skill is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Henteplan Skill?

It is built and maintained by Henrik Kvamme (@henrikkvamme); the current version is v1.1.1.

💬 Comments