Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Search for golf tee times and deals near any location. Find cheapest rounds, compare prices across platforms, and get discount tips. Use when asked about gol...
Search for golf tee times and deals near any location. Find cheapest rounds, compare prices across platforms, and get discount tips. Use when asked about gol...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Find and compare golf tee times using the GolfNow API (reverse-engineered). Works for any location.
User asks to find tee times, book golf, or play a round Looking for cheap/discounted golf or hot deals Comparing courses in an area Checking availability for a specific date Finding credit-bookable (trade offer) tee times
The GolfNow website uses a POST API to fetch tee times. This is the only reliable method โ web_fetch returns empty shells (JS-rendered SPA).
POST https://www.golfnow.com/api/tee-times/tee-time-results Content-Type: application/json Accept: application/json User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 Origin: https://www.golfnow.com
Requires a FacilityId. Returns all tee times for that course on a given date. { "Radius": 50, "Latitude": 26.1224, "Longitude": -80.1373, "PageSize": 50, "PageNumber": 0, "SearchType": 1, "SortBy": "Date", "SortDirection": 0, "Date": "Feb 16 2026", "BestDealsOnly": false, "PriceMin": "0", "PriceMax": "10000", "Players": "2", "Holes": "3", "FacilityType": 0, "RateType": "all", "TimeMin": "10", "TimeMax": "42", "FacilityId": 5744, "SortByRollup": "Date.MinDate", "View": "Grouping", "ExcludeFeaturedFacilities": true, "TeeTimeCount": 50, "PromotedCampaignsOnly": "false", "CurrentClientDate": "2026-02-16T05:00:00.000Z" }
Returns 0 results without a FacilityId. The API requires facility-specific queries.
ParamValuesNotesPlayers"1"-"4"String, not intHoles"1"=9h, "2"=18h, "3"=anyStringTimeMin/TimeMax10-42Maps to time ranges. 10=5AM, 42=9PM+Date"Feb 16 2026"Human-readable formatFacilityType0=any, 1=course, 2=simulatorBestDealsOnlytrue/falseHot deals filter (but returns 0 for area search)SearchType1Must be 1 (facility). 0/2/3 don't work
ttResults.teeTimes[] โ array of tee time groups โโโ formattedTime: "7:18" โโโ formattedTimeMeridian: "AM" โโโ time: "2026-02-16T07:18:00" (ISO timestamp) โโโ displayRate: 35.0 (price per player) โโโ multipleHolesRate: 18 (hole count) โโโ maxPriceTransactionFee: 2.99 โโโ facility.name, facility.address.city, facility.averageRating, facility.reviewCount โโโ facility.seoFriendlyName (for building URLs) โโโ facility.latitude, facility.longitude โโโ teeTimeRates[] โ rate options for this time slot โโโ rateName: "Prepaid - Online Rate" / "Hot Deal" / "Twilight" / etc. โโโ isHotDeal: true/false ๐ฅ โโโ isTradeOffer: true/false ๐ณ (credit-bookable) โโโ isCartIncluded: true/false โโโ singlePlayerPrice.greensFees.value: 35.0 โโโ rateSetTypeId: 1=prepaid, other=pay at course
https://www.golfnow.com/tee-times/facility/{seoFriendlyName}/search Example: https://www.golfnow.com/tee-times/facility/5744-colony-west-golf-club-glades-course/search
Use skills/golf-tee-times/golfnow-search.py for batch queries. See script for usage.
Since area search doesn't work, you need FacilityIds. Methods: Use the known course database (see below) Web search: site:golfnow.com/tee-times/facility {city} {state} โ URL contains the ID Browser intercept: Load a course page, intercept the POST to /api/tee-times/tee-time-results, read the FacilityId from the payload
Use this clean format for presenting tee times: ๐๏ธ *Tee Times ยท {Day} {Date} ยท {Players} Players* โฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏ ๐ฅ *DEALS* ๐ฅ *[Course Name](url)* City ยท X mi ยท โญ X.X ยท N reviews โธ Time ยท *$XX* ยท 18 holes ยท cart ๐ฅ โฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏ *[Course Name](url)* City ยท X mi ยท โญ X.X ยท N reviews โธ Time range ยท $XX โธ Time range ยท $XX twilight โฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏโฏ _All prices per player ยท cart included ยท via GolfNow_ Key formatting rules: Use โธ for time slot lines Bold the course name as a markdown link Show deals section first (๐ฅ hot deals, ๐ณ credit/trade offers) Group times by price tier within each course Include distance, rating, review count Add โ AM slots or similar callouts for notable availability Footer: All prices per player ยท cart included ยท via GolfNow Do NOT use backtick code blocks for time listings (looks bad on mobile)
๐ฅ GolfNow Hot Deals โ isHotDeal: true in API. Unsold inventory at deep discounts. ๐ณ Trade Offers โ isTradeOffer: true. Bookable with GolfNow credits. ๐ถ Walk don't ride โ saves $20-50 on cart fees ๐ Twilight rates โ after 2-3 PM, prices drop significantly (look for rateName: "Twilight") ๐ FL resident rate โ show ID for local discount at public courses โฐ Last-minute deals โ day-of prices drop; hot deals appear closer to tee time ๐ Call pro shop โ phone-only rates sometimes cheaper than online ๐๏ธ Weekday > Weekend โ Monday-Thursday is always cheaper ๐ง๏ธ Rain forecast โ prices drop when weather looks iffy
Peak season (Dec-Apr): Highest prices, book 3-7 days ahead. Morning sells out fast. Summer (May-Sep): 40-60% cheaper, but hot/humid. Early AM or twilight. Hurricane season (Jun-Nov): Rain discounts common Best value month: September (cheapest + least crowded)
Navigate to https://www.golfnow.com/tee-times/facility/{facilityId}/tee-time/{teeTimeId} Select golfer count โ click radio button, dispatch change event, verify green fees total updates Click "Continue to Book" (.btnBook) โ redirects to login if not authenticated Login โ GolfID iframe (my.golfid.io): use frame=[src*=golfid] to access email/password fields Creds: scripts/vault.sh get golfnow Checkout page (URL: .../checkout/players/{count}): Apply rewards: Click #applyRewardsBtn โ checkboxes by code ID (e.g. #MEMBERSAVE) Note: Rewards marked "Cannot Be Combined" won't stack on Hot Deals Apply GolfPass Points: Click #btn-apply-loyalty-points (these DO work on Hot Deals) Decline Tee Time Protection: Click input[name=rdlTeeTimeProtection][value=false] Decline charity roundup: Click "No Thanks" if desired Payment: Pre-filled from saved cards (default: AMEX 1004) ๐ธ SCREENSHOT & SEND TO USER โ Send checkout screenshot via Telegram before proceeding Wait for approval Accept terms: Check #agree-terms-top Click reservation: #reservation-button-top Confirmation: Remove Truist ad overlay ([class*=rokt], [class*=bold]), screenshot confirmation page
Always apply points/rewards to minimize cost Decline Tee Time Protection (save $3-4) Default payment: AMEX ending 1004 Send confirmation screenshot after booking
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.