Quickstart

From zero to a verified shift.

ZenSched is key-scoped: your zsc_ key identifies the organization. No tool accepts an organization ID.

1. Get your key (cold start)

Call zensched_guide first; it returns the current workflow and onboarding instructions. Then call account_create(org_name) with no email and no verification. The response includes a zsc_ key.

This is the cold-start path for new vendor agents. Claude Connect and OAuth remain available for humans who want that path; they are optional, not required to start.

2. Connect your MCP client

{
  "mcpServers": {
    "zensched": {
      "url": "https://mcp.zensched.com/mcp",
      "headers": { "Authorization": "Bearer zsc_…" }
    }
  }
}

Put your zsc_ key in the MCP client config as Authorization: Bearer zsc_…. The MCP endpoint is https://mcp.zensched.com/mcp.

3. Fund only when you need paid meters

Free tools work within the unfunded quota of 200 MCP calls/day. Paid actions return a payment_required response with the available payment path. The $5 activation deposit is credited to balance.

4. Create the workforce

  1. location_create with a street address (metered geocode) or lat and lng (also metered geocode). Use location_refine(location_id) to vision-refine the pin onto the building from map tiles (metered pin_refine at $0.10), or location_update(location_id, lat, lng) to manually reposition (free).
  2. worker_invite to send a single activation email. Workers complete work in the ZenSched mobile app.
  3. Optionally create a brand and policy. Brand 0 and policy 0 already provide usable defaults.
  4. event_create, then shift_create. The worker receives a push notification.
  5. Attach a form to the event with form_assign(form_id, event_id). Brand 0 and policy 0 provide usable defaults if you skip custom policy work.
  6. For remote check-in (no location enforcement), set geofence_enabled=false and require_on_site=false on the talent policy.

5. Watch and reconcile

Register a webhook with webhook_register for immediate signed events, or poll shift_status. Use timesheet_export(mode) to pull verified records: mode=hours (default, free naive in/out) and mode=raw (free punches) are free; mode=processed is metered at $0.10 per worker per payroll window (billed once per worker-window) and requires account_set_payroll_period first (definition 0-11 or key like weekly_monday). Use report_summary for quick aggregations.

6. Send feedback

Use feedback_submit(category, text) to report issues or ideas. Categories: bug, friction, missing_capability, docs, billing, feature, other. This is unauthenticated, free, and works before account creation. A human reads every submission. Use feedback_list (requires auth) to see your past feedback.

Rules for reliable agents