skills/wind-calendar/SKILL.md
Display current wind forecasts and calendar feeds for Israeli windsurfing/kitesurfing spots. **Fetch and parse ICS data immediately** when users ask to see forecasts, then offer calendar subscription. Use when users want to see upcoming wind conditions, check "when is good wind", or add forecasts to their calendar. Triggers on "show wind", "wind forecast", "what's the forecast", "when is good wind", "windsurfing", "kitesurfing", or Israeli beach spot names (Beit Yanai, Herzliya, Tel Aviv, Bat Galim).
npx skillsauth add or-yam/wind-calendar wind-calendarInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate calendar feeds for windsurfing and kitesurfing sessions based on wind forecasts.
This skill provides access to an API that generates calendar feeds (ICS format) for windsurfing and kitesurfing sessions. The API:
The calendar feeds can be subscribed to in Apple Calendar, Google Calendar, Outlook, or any other calendar app that supports ICS subscriptions.
Use this skill when:
When users ask to see/show the forecast:
When users explicitly ask to subscribe or add to calendar:
Skip the fetch and go straight to subscription instructions.
ICS Format Overview:
The API currently supports these Israeli Mediterranean coast locations:
beit-yanai - Mediterranean coast, north of Netanyaherzliya - Popular Tel Aviv area spottel-aviv - Central location, urban beachbat-galim - Haifa area spothttps://wind-calendar.vercel.app/api/calendar
location - One of: beit-yanai, herzliya, tel-aviv, bat-galimwindMin - Minimum wind speed in knots (default: 14)windMax - Maximum wind speed in knots (default: 35)minSessionHours - Minimum session duration in hours (default: 2)model - Forecast model ID (default: 3 for Windguru GFS, or om_gfs for Open-Meteo)
om_gfs - GFS 13km (NOAA Global Forecast System)om_icon - ICON 13km (DWD German weather model)om_gdps - GDPS 15km (Canadian Meteorological Centre)om_ifs - IFS-HRES 9km (ECMWF high-resolution)3 - GFS 13km45 - ICON 13km59 - GDPS 15km117 - IFS-HRES 9kmwaveEnabled - Enable wave filtering (default: false). When true, only sessions with waves matching thresholds are includedwaveSource - Wave source type: "total" or "swell" (default: "total")waveHeightMin - Minimum wave height in meters (default: 0.5)waveHeightMax - Maximum wave height in meters (default: 5.0)wavePeriodMin - Minimum wave period in seconds (default: 8)windMin must be >= 0windMax must be <= 200windMin must be < windMaxminSessionHours must be between 0 and 24https://wind-calendar.vercel.app/api/calendar?location=herzliya
This uses default thresholds: 14-35kn wind, 2+ hour sessions. Wave filtering is disabled by default.
https://wind-calendar.vercel.app/api/calendar?location=beit-yanai&windMin=18&windMax=30&minSessionHours=3
This filters for stronger, longer sessions.
https://wind-calendar.vercel.app/api/calendar?location=herzliya&model=om_ifs
This uses the ECMWF IFS-HRES 9km model (often considered most accurate). If Open-Meteo fails, the API automatically falls back to the equivalent Windguru model.
https://wind-calendar.vercel.app/api/calendar?location=tel-aviv&windMin=10&windMax=20&minSessionHours=1
This shows lighter wind sessions suitable for beginners.
The API returns:
text/calendar; charset=utf-8Each calendar event represents a wind session with:
Example event:
SUMMARY: Wind 14-22kn NW | 0.8m waves
DTSTART: 20260305T100000Z
DTEND: 20260305T160000Z
DESCRIPTION: 12:00 14kn gusts 16kn NW
14:00 18kn gusts 22kn NW
16:00 16kn gusts 19kn NW
Guide users through platform-specific subscription methods:
https://)https:// with webcal://webcal:// URL in SafariExample:
webcal://wind-calendar.vercel.app/api/calendar?location=herzliya
Sync Frequency: Apple Calendar typically syncs subscribed calendars every ~15 minutes.
https:// URL (NOT webcal://)Important: Google Calendar syncs subscribed calendars slowly (every 12-24 hours). This cannot be changed by the user.
https:// URLSync Frequency: Outlook typically syncs subscribed calendars every ~12 hours.
Users can also download a one-time snapshot:
.ics fileNote: Downloaded files don't auto-update. Subscriptions are recommended for ongoing forecasts.
Wind sessions are filtered and grouped based on the specified parameters. Each session includes:
Sessions are created by:
When the forecast updates, subscribed calendars will automatically receive the new data on their next sync cycle.
Open-Meteo provides publicly available weather data under CC-BY 4.0 license from:
Windguru is used as a fallback provider for legacy model IDs (3, 45, 59, 117).
User: "Show me wind forecast in Beit Yanai" / "When is good wind at Herzliya this week?"
Agent Actions:
https://wind-calendar.vercel.app/api/calendar?location=beit-yanaiUpcoming wind sessions for Beit Yanai:
1. March 12, 2026 — 08:00–20:00 (Asia/Jerusalem)
Wind: 14–25kn NE | Waves: 1.4m
• 08:00 — 24.9kn (gusts 26.6kn) E
• 11:00 — 16.7kn (gusts 16.5kn) NE
• 14:00 — 14kn (gusts 13.6kn) NE
• 17:00 — 15kn (gusts 16.4kn) N
2. March 15, 2026 — 14:00–20:00 (Asia/Jerusalem)
Wind: 15–16kn NW | Waves: 0.8m
• 14:00 — 14.6kn (gusts 10.9kn) NW
• 17:00 — 15.6kn (gusts 16kn) N
User: "Add windsurfing forecasts for Herzliya to my calendar"
Agent Actions:
https://wind-calendar.vercel.app/api/calendar?location=herzliyawebcal://wind-calendar.vercel.app/api/calendar?location=herzliyaUser: "I want kite forecasts for Tel Aviv but only strong wind days, at least 3 hours long, with decent waves"
Agent Actions:
https://wind-calendar.vercel.app/api/calendar?location=tel-aviv&windMin=20&windMax=35&minSessionHours=3&waveEnabled=true&waveHeightMin=1.0User: "I'm learning to windsurf in Herzliya, what days will have light winds and small waves?"
Agent Actions:
https://wind-calendar.vercel.app/api/calendar?location=herzliya&windMin=8&windMax=15&minSessionHours=1&waveEnabled=true&waveHeightMin=0.3&waveHeightMax=0.8User: "Which spot has better wind this weekend - Herzliya or Beit Yanai?"
Agent Actions:
User: "Show me what ECMWF says about the wind this week versus GFS"
Agent Actions:
https://wind-calendar.vercel.app/api/calendar?location=herzliya&model=om_ifshttps://wind-calendar.vercel.app/api/calendar?location=herzliya&model=om_gfsUser: "Show me days with good swell (not just wind-driven waves) at Herzliya"
Agent Actions:
https://wind-calendar.vercel.app/api/calendar?location=herzliya&windMin=12&waveEnabled=true&waveSource=swell&waveHeightMin=0.8If a subscribed calendar shows no events:
windMin or minSessionHours parametersIf forecasts seem stale:
Location names must exactly match (case-sensitive):
beit-yanai (not "beit yanai" or "Beit-Yanai")herzliya (not "Herzliya")tel-aviv (not "tel aviv" or "Tel-Aviv")bat-galim (not "bat galim")If the API returns an error about invalid parameters:
windMin < windMaxwindMin >= 0 and windMax <= 200minSessionHours is between 0 and 24development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.