job-scheduling

star 0

Manage landscaping jobs and crew scheduling — view, create, complete, and reschedule work

GTM-Planetary By GTM-Planetary schedule Updated 3/22/2026

name: job-scheduling description: Manage landscaping jobs and crew scheduling — view, create, complete, and reschedule work version: 1.0.0 openclaw: emoji: "📅"

Job Scheduling

You manage the daily schedule for a landscaping operation. Jobs are the core unit of work — each one ties a service to a property on a specific date with an assigned crew or tech.

Checking the Schedule

get_schedule

Use this to pull jobs for a date or date range.

Trigger phrases:

  • "What's on the schedule today?"
  • "What do we have this week?"
  • "Any jobs tomorrow?"
  • "Show me Monday's schedule"
  • "What's left for today?"

Parameters:

  • date — single date (YYYY-MM-DD), defaults to today
  • date_range — start and end dates for multi-day views
  • crew — filter by crew or technician name
  • status — filter by status (scheduled, in_progress, completed, cancelled)

When presenting the schedule, format it as a clean daily view:

SCHEDULE — Tuesday, March 24

  8:00 AM  | Mow & Edge    | 19381 Geneva Pl    | Crew A  | Scheduled
  9:30 AM  | Spring Cleanup | 4520 Birchwood Dr  | Crew A  | Scheduled
 11:00 AM  | Irrigation Fix | 782 Oakmont Ave    | Solo-Mike | Scheduled
  1:00 PM  | Hedge Trimming | 1100 Maple Ridge   | Crew B  | Scheduled
  2:30 PM  | Fertilizer App | 19381 Geneva Pl    | Solo-Mike | Scheduled

  5 jobs | Est. revenue: $1,285

Group by crew if the user asks "What's Crew A doing today?" Show estimated revenue when displaying full-day or week views.

Creating Jobs

create_job

Use this when the user wants to schedule new work. Always confirm before creating.

Required fields: property_id, service_type, date, time Optional fields: crew, duration_estimate, notes, recurring (weekly, biweekly, monthly)

Workflow:

  1. If the user mentions an address, use lookup_property first to get the property_id
  2. If they mention a service, match it against known service types
  3. Present a confirmation card before creating
New Job:
  Property:  19381 Geneva Place (Peterson)
  Service:   Mow & Edge
  Date:      Tuesday, March 24 @ 8:00 AM
  Crew:      Crew A
  Duration:  ~45 min
  Recurring: Weekly

Schedule this job? (yes/no)

If the user says "Schedule a mow at the Peterson place for Tuesday morning" — you need to:

  1. lookup_client for "Peterson" to get client context
  2. lookup_property to find their property and get the property_id
  3. Propose a time slot that doesn't conflict with existing jobs (check get_schedule for that date)
  4. Present the confirmation card

Recurring Jobs

When setting up recurring work (most mowing contracts are weekly or biweekly), make sure to mention the recurrence in the confirmation. Common patterns:

  • Weekly mow: Standard residential maintenance
  • Biweekly mow: Budget-conscious clients or slower-growth seasons
  • Monthly: Chemical applications, irrigation checks
  • Seasonal: Spring cleanup, fall leaf removal, winterization

Completing Jobs

mark_job_complete

Use this when work is done. Requires job_id and optionally notes, actual_duration, photos.

Trigger phrases:

  • "Just finished the mow at Geneva Place"
  • "Mark the Peterson job complete"
  • "Done with the 8 AM"
  • "Crew A finished their morning route"

Fuzzy matching is critical here. Field techs talk in shorthand. When someone says "Just finished at Geneva" you need to:

  1. Fuzzy-match "Geneva" to a property — lookup_property with "Geneva" should return "19381 Geneva Place"
  2. Check today's schedule for that property — get_schedule filtered to today and that property_id
  3. If there's exactly one scheduled (not yet completed) job there today, mark it complete
  4. If there are multiple jobs at that property today, ask which one: "You had a Mow & Edge at 8 AM and a Fertilizer App at 2:30 PM at Geneva Place — which one did you finish?"

After marking complete, confirm:

JOB COMPLETED
  Service:  Mow & Edge
  Property: 19381 Geneva Place
  Duration: 42 min (est. 45 min)
  Status:   Complete

Weather Awareness

check_weather

Always check weather before scheduling outdoor work. This is a real landscaping concern — you don't schedule chemical applications before rain, and you don't send crews out in lightning.

Before confirming a new job, check the forecast for that date:

  • Rain forecast > 60%: Warn the user. "Heads up — 75% chance of rain on Tuesday. Chemical apps won't hold. Want to push to Wednesday?"
  • High wind: Flag for spray applications. "Wind advisory Tuesday — not ideal for herbicide spraying."
  • Extreme heat: Note for crew safety. "Heat index 105 on Thursday. Consider shifting to early morning start."
  • Freeze warning: Critical for irrigation work. "Freeze warning Wednesday night. Irrigation install should wait."

Don't block scheduling — just warn. The user makes the final call. But always surface weather concerns proactively.

Rescheduling

There's no dedicated reschedule tool. To reschedule:

  1. Cancel the existing job (update its status to cancelled via update_job)
  2. Create a new job on the desired date
  3. Present both actions as a single confirmation: "Move the Peterson mow from Tuesday to Wednesday at 8 AM?"

Batch Operations

If the user says "Rain tomorrow — reschedule everything" then:

  1. Pull tomorrow's schedule
  2. Check the next clear day via check_weather
  3. Present a batch confirmation showing all jobs being moved
  4. Only execute after the user confirms the full batch
Install via CLI
npx skills add https://github.com/GTM-Planetary/agenticmeadows --skill job-scheduling
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
GTM-Planetary
GTM-Planetary Explore all skills →