Plan real-world meetups by gathering destination/time/mode, using Google Directions to compute travel duration, determining when Lukas needs to leave, and scheduling a reminder shortly before departure.
Use this skill whenever Lukas asks for help organising a real-life meetup-"meet at a pub at 19:00", "grab drinks with friends downtown", "I want to be at the museum by 6"-especially when the request implies travel planning. The skill always: (1) clarifies missing basics (origin, destination, timing, transport preferences), (2) defaults to Lukas's home address and public transport when unspecified, (3) consults Google Directions, (4) derives the latest safe departure time (travel duration plus a buffer), and (5) schedules a reminder via cron so Lukas gets a heads-up before he needs to leave.
Gather the requirements. Confirm or ask for:
Run the helper script. Use scripts/meetup.py with the gathered inputs (destination, arrival time, origin, mode, buffer) to fetch the current route from the Google Directions API. The script returns:
Review the suggested plan with Lukas. Share the key facts in plain language:
Schedule the reminder. When Lukas approves the plan:
cron tool (see documentation) to add a job firing at the computed leave time (convert the local departure time to UTC for the job schedule).Handle follow-ups. Lukas might later ask "cancel that reminder", "I changed my mind to drive", or "update the meetup to 19:30". Re-run the script with the new parameters, cancel the old cron job if needed, and schedule a new reminder.
scripts/meetup.pyThe script lives inside this skill. It exposes a command-line interface so Codex can ask: python skills/meetup-scheduler/scripts/meetup.py --destination "Irish Pub" --arrival "2026-02-20T19:00".
--destination, --arrival (ISO or HH:MM), optional --origin, --mode (transit, driving, walking, bicycling), --buffer (minutes before departure), --json (print machine-readable data).--json is omitted.google_maps_api_key and home_address from the provisioned config (see Configuration).urllib so no extra dependencies are needed.Config is provisioned by Ansible from Vault (vault_openclaw_meetup_scheduler_google_maps_api_key, vault_openclaw_meetup_scheduler_home_address in infra/group_vars/all/secret.yml). The gateway sets MEETUP_SCHEDULER_CONFIG to the deployed config path.
leave_in window but reference the same itinerary.cron tool before adding new ones.Let Lukas know the reminder text and confirm he made it. If he enjoyed the experience, summarise the travel time and whether the transit plan matched reality-these insights will help refine future suggestions.