Install
$ agentstack add skill-bettyguo-browser-skills-date-picker-widget ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Date Picker Widget
When to invoke
The user task requires picking a date (booking demos, scheduling demos, date-range filters). vars.target_date is an ISO-8601 date string (e.g., "2026-06-15").
The matcher recognizes calendar widgets via their ARIA roles. The ` native picker is the easy path — fill` it directly. The hard path is custom calendars (booking.com, airbnb.com, hotels.com style), and that's what this skill targets.
Recipe
Easy path (native ``)
- fill selector="input[type='date']" value="$vars.target_date"
Hard path (custom calendar)
- waitfordom_ready timeout=3s
- click selector="[data-element='calendar-trigger'], [aria-label*='date' i][role='button']"
- waitforselector selector="[role='dialog'][aria-label*='calendar' i]" state=visible timeout=2s
- click selector="[aria-label='$vars.targetdate'], [data-date='$vars.targetdate']"
- wait extra=300ms
(Month-navigation logic — "click 'next month' until target month is visible" — is deferred to v0.2 with the loop verb. v0.1 handles the case where the target date is already visible on the initial calendar open. For booking-style sites where check-in is in the current month, this is enough.)
Success criteria
- assert inputhasvalue selector="[data-element='check-in']" valuecontains="$vars.targetdate"
When NOT to use
- Date range pickers — use
vars.range_start/vars.range_endand
the agent composes two invocations.
- Calendars that don't expose
aria-labelordata-dateattributes
on day cells. Vision fallback is currently the only recourse.
Known failures
- Disabled past dates: the click is ignored. The agent sees no
state change and should re-plan.
- Calendars opening below the fold: the day cells render but
aren't clickable until scrolled. Add a scroll_into_view step.
- Calendars that require keyboard nav only: v0.1 doesn't support
keyboard nav loops; the press_key primitive could be composed but there's no standardized pattern.
- Month navigation: v0.1 only picks dates in the currently-visible
month. v0.2 adds month-navigation loops.
Related skills
dismiss-cookie-banner— booking sites are EU-heavy; cookie banner firstverify-page-loaded— wait for the calendar UI to rendersearchable-dropdown— often co-occurs (date + party-size selectors)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: bettyguo
- Source: bettyguo/browser-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.