float
Float Resource Planning
Interact with Float.com to plan team members on projects via the Float API v3.
Prerequisites
The Float API key must be set as an environment variable. Check:
echo $FLOAT_API_KEY
If not set, the Account Owner can find the API key in Float under Team Settings > Integrations. Ask the user to set it:
export FLOAT_API_KEY="your-api-key-here"
Or add it to their shell profile for persistence.
API Basics
- Base URL:
https://api.float.com/v3 - Auth: Bearer token via
Authorization: Bearer $FLOAT_API_KEY - Format: JSON (
Accept: application/json) - Dates:
YYYY-MM-DDformat - Pagination:
page(default 1),per-page(default 50, max 200)
All requests use curl with these headers:
curl -s "https://api.float.com/v3/ENDPOINT" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json"
Core Workflow: Planning Someone on a Project
When the user says something like "Plan Alex on Project X for 3 days" or "Allocate Sarah to Website Redesign for 4 hours/day next week", follow these steps:
Step 1: Find the person
curl -s "https://api.float.com/v3/people" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
Search through the results to find the person by name (case-insensitive partial match). The key field is people_id.
Step 2: Find the project
curl -s "https://api.float.com/v3/projects" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
Search through results to find the project by name (case-insensitive partial match). The key field is project_id.
Step 3: Create the allocation
curl -s -X POST "https://api.float.com/v3/tasks" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"people_id": PEOPLE_ID,
"project_id": PROJECT_ID,
"start_date": "YYYY-MM-DD",
"end_date": "YYYY-MM-DD",
"hours": HOURS_PER_DAY
}'
Interpreting user requests
- "for 3 days" means set start_date to the next working day and end_date 3 working days later (skip weekends). Use a reasonable hours value like 8 (full day).
- "for 4 hours/day next week" means start_date = next Monday, end_date = next Friday, hours = 4.
- "this week" means start_date = today (or next working day), end_date = Friday of this week.
- "next week" means start_date = next Monday, end_date = next Friday.
- "for 2 weeks" means start_date = next Monday, end_date = Friday two weeks later.
- "half days" means hours = 4.
- "full days" or no hours specified means hours = 8.
- Always confirm the interpreted dates and hours with the user before creating the allocation.
Endpoints Reference
People
# List all people (paginated)
curl -s "https://api.float.com/v3/people?per-page=200" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
# Filter by active status
curl -s "https://api.float.com/v3/people?active=1" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
# Get a specific person
curl -s "https://api.float.com/v3/people/PEOPLE_ID" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
Key response fields: people_id, name, email, job_title, role_id, department, active, employee_type, work_days_hours, tags
Projects
# List all projects
curl -s "https://api.float.com/v3/projects?per-page=200" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
# Filter by active projects
curl -s "https://api.float.com/v3/projects?active=1" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
# Get a specific project
curl -s "https://api.float.com/v3/projects/PROJECT_ID" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
Key response fields: project_id, name, client_id, color, status, active, budget_type, budget_total, start_date, end_date, tags, notes
Allocations (called "tasks" in the API)
# List allocations with filters
curl -s "https://api.float.com/v3/tasks?people_id=ID&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
# Get a specific allocation
curl -s "https://api.float.com/v3/tasks/TASK_ID" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
# Create an allocation
curl -s -X POST "https://api.float.com/v3/tasks" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"people_id": 123,
"project_id": 456,
"start_date": "2026-03-16",
"end_date": "2026-03-20",
"hours": 8
}'
# Update an allocation
curl -s -X PATCH "https://api.float.com/v3/tasks/TASK_ID" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"hours": 4,
"end_date": "2026-03-25"
}'
# Delete an allocation
curl -s -X DELETE "https://api.float.com/v3/tasks/TASK_ID" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
Create/Update fields:
| Field | Type | Required | Description |
|---|---|---|---|
people_id |
integer | Yes (or people_ids) | Person to allocate |
people_ids |
array of int | Yes (or people_id) | Multiple people at once |
project_id |
integer | Yes | Project to allocate to |
start_date |
string | Yes | Start date (YYYY-MM-DD) |
end_date |
string | Yes | End date (YYYY-MM-DD) |
hours |
number | Yes | Hours per day |
start_time |
string | No | Start time (24h format) |
phase_id |
integer | No | Phase within project |
status |
integer | No | 0=Draft, 1=Tentative, 2=Confirmed, 3=Complete, 4=Canceled |
name |
string | No | Task name |
task_meta_id |
integer | No | Project task ID (overrides name) |
notes |
string | No | Notes on the allocation |
repeat_state |
integer | No | Repeat frequency (0=none) |
repeat_end_date |
string | No | When repeating ends (YYYY-MM-DD) |
Time Off
# List time off entries
curl -s "https://api.float.com/v3/timeoffs?people_id=ID&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
Common Queries
"Who is planned this week?"
Fetch allocations for the current week across all people:
curl -s "https://api.float.com/v3/tasks?start_date=MONDAY&end_date=FRIDAY&per-page=200" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
Then cross-reference people_id and project_id with cached people/projects data. Present as a table grouped by person.
"What is Alex working on?"
- Find Alex's
people_idfrom the people list - Fetch their allocations:
curl -s "https://api.float.com/v3/tasks?people_id=ALEX_ID&start_date=TODAY&end_date=FAR_FUTURE&per-page=200" \
-H "Authorization: Bearer $FLOAT_API_KEY" \
-H "Accept: application/json"
"Who is available next week?"
- Get all active people
- Get all allocations for next week
- Compare: people without allocations (or with < 8h/day) are available
Output Guidelines
- Present allocation data as clean tables when listing multiple items
- Always show: person name, project name, dates, hours/day
- When creating allocations, confirm the details before executing
- After creating/updating, show a summary of what was done
- Use relative date descriptions ("next Monday" not just "2026-03-23") alongside the actual dates
More from freekmurze/dotfiles
context7-auto-research
Automatically fetches up-to-date documentation from Context7 when users ask about libraries, frameworks, APIs, or need code examples. Triggers proactively without explicit user request.
27copy-editing
When the user wants to edit, review, or improve existing marketing copy. Also use when the user mentions 'edit this copy,' 'review my copy,' 'copy feedback,' 'proofread,' 'polish this,' 'make this better,' or 'copy sweep.' This skill provides a systematic approach to editing marketing copy through multiple focused passes.
24frontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.
21pdf
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
20ray-skill
Use when user says "send to Ray," "show in Ray," "debug in Ray," "log to Ray," "display in Ray," or wants to visualize data, debug output, or show diagrams in the Ray desktop application.
18spatie-package-skeleton
Guide for creating PHP and Laravel packages using Spatie's package-skeleton-laravel and package-skeleton-php templates. Use when the user wants to create a new PHP or Laravel package, scaffold a package. Also use when building customizable packages — covers proven patterns for extensibility (events, configurable models/jobs, action classes) instead of config option creep.
15