A time card calculator for hours worked.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants a time card calculator or hours worked calculator: totaling clock-in/clock-out times for a day, week, or biweekly period, with lunch breaks, multiple in and out punches per day, overnight shifts, 12-hour or 24-hour (military) time, punch rounding (nearest 5/6/15 minutes or the 7-minute rule), overtime and double time per workweek (US federal 40 h, California daily rules, or custom), and gross pay from an hourly rate. Pass times as the user wrote them; times without am/pm ("9 to 5") are resolved and the reading is returned in assumptions for the user to confirm. Returns per-day hours in H:MM and decimal, regular/overtime/double-time split, totals, exact gross pay, warnings (overlapping punches, missing clock-out, shifts over 16 h), and CSV and printable PDF timesheet links. Does not compute taxes or take-home pay, give legal advice about breaks or overtime, track time live, or set reminders. Do not use for simple unit conversions without clock times.
One item per worked day (up to 62, e.g. a biweekly or monthly time card). Example: [{"day":"Mon","punches":[{"start":"8:45","end":"17:30"}],"unpaid_break_minutes":30}].
ISO currency code for pay amounts, default USD, e.g. EUR or GBP.
Punch rounding applied to each clock-in and clock-out: none (default), nearest_5, nearest_6 (tenth of an hour), nearest_15, or seven_minute_rule (8:07 -> 8:00, 8:08 -> 8:15).
Optional pay period label printed on the timesheet, e.g. "Sep 28 - Oct 11, 2026" or "Week 40".
Optional regular hourly pay rate in the chosen currency for gross pay, e.g. 18.50 (USD) or 1100 (JPY). Leave out for hours only.
First day of the workweek for dated entries, e.g. "sun". Default: the weekday of the earliest date.
Overtime rule set. us_federal (default): over 40 h per workweek at 1.5x. california: over 8 h/day and 40 h/week at 1.5x, over 12 h/day at 2x, plus the 7th-consecutive-day rule. none: no overtime split.
California 7th-consecutive-day rule: on the 7th straight workday of a workweek the first 8 h are overtime and the rest double time. Default on for california, off otherwise.
Overtime pay multiplier, default 1.5.
Double-time pay multiplier, default 2.
Override the daily overtime threshold in hours, e.g. 8 (Alaska, Nevada) or 12 (Colorado). 0 turns daily overtime off.
Override the weekly overtime threshold in hours, e.g. 40 or 37.5. 0 turns weekly overtime off.
Override the daily double-time threshold in hours, e.g. 12. 0 turns double time off.
Use this when the user wants a time card calculator or hours worked calculator: totaling clock-in/clock-out times for a day, week, or biweekly period, with lunch breaks, multiple in and out punches per day, overnight shifts, 12-hour or 24-hour (military) time, punch rounding (nearest 5/6/15 minutes or the 7-minute rule), overtime and double time per workweek (US federal 40 h, California daily rules, or custom), and gross pay from an hourly rate. Pass times as the user wrote them; times without am/pm ("9 to 5") are resolved and the reading is returned in assumptions for the user to confirm. Returns per-day hours in H:MM and decimal, regular/overtime/double-time split, totals, exact gross pay, warnings (overlapping punches, missing clock-out, shifts over 16 h), and CSV and printable PDF timesheet links. Does not compute taxes or take-home pay, give legal advice about breaks or overtime, track time live, or set reminders. Do not use for simple unit conversions without clock times.
| Argument | Type | Description |
|---|---|---|
| entries* | array | One item per worked day (up to 62, e.g. a biweekly or monthly time card). Example: [{"day":"Mon","punches":[{"start":"8:45","end":"17:30"}],"unpaid_break_minutes":30}]. |
| currency | string | ISO currency code for pay amounts, default USD, e.g. EUR or GBP. |
| rounding | string | Punch rounding applied to each clock-in and clock-out: none (default), nearest_5, nearest_6 (tenth of an hour), nearest_15, or seven_minute_rule (8:07 -> 8:00, 8:08 -> 8:15). |
| pay_period | string | Optional pay period label printed on the timesheet, e.g. "Sep 28 - Oct 11, 2026" or "Week 40". |
| hourly_rate | number | Optional regular hourly pay rate in the chosen currency for gross pay, e.g. 18.50 (USD) or 1100 (JPY). Leave out for hours only. |
| week_start_day | string | First day of the workweek for dated entries, e.g. "sun". Default: the weekday of the earliest date. |
| overtime_preset | string | Overtime rule set. us_federal (default): over 40 h per workweek at 1.5x. california: over 8 h/day and 40 h/week at 1.5x, over 12 h/day at 2x, plus the 7th-consecutive-day rule. none: no overtime split. |
| seventh_day_rule | boolean | California 7th-consecutive-day rule: on the 7th straight workday of a workweek the first 8 h are overtime and the rest double time. Default on for california, off otherwise. |
| overtime_multiplier | number | Overtime pay multiplier, default 1.5. |
| double_time_multiplier | number | Double-time pay multiplier, default 2. |
| daily_overtime_after_hours | number | Override the daily overtime threshold in hours, e.g. 8 (Alaska, Nevada) or 12 (Colorado). 0 turns daily overtime off. |
| weekly_overtime_after_hours | number | Override the weekly overtime threshold in hours, e.g. 40 or 37.5. 0 turns weekly overtime off. |
| daily_double_time_after_hours | number | Override the daily double-time threshold in hours, e.g. 12. 0 turns double time off. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"entries"
],
"properties": {
"entries": {
"type": "array",
"items": {
"type": "object",
"required": [
"day",
"punches"
],
"properties": {
"day": {
"type": "string",
"maxLength": 40,
"description": "Day label: an ISO date \"2026-09-28\", a weekday \"Mon\", or both \"Mon 2026-09-28\". Dates give exact workweeks for biweekly periods."
},
"week": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Optional workweek number (1, 2) when days have no dates and the grouping is not obvious, e.g. 2 for the second week of a biweekly period."
},
"punches": {
"type": "array",
"items": {
"type": "object",
"required": [
"start"
],
"properties": {
"end": {
"anyOf": [
{
"type": "string",
"maxLength": 20
},
{
"type": "null"
}
],
"description": "Clock-out time in the same formats, e.g. \"17:30\" or \"5:30 pm\". An end earlier than the start means the shift crossed midnight (22:00 to 06:30). Leave out if the person has not clocked out yet."
},
"start": {
"type": "string",
"maxLength": 20,
"description": "Clock-in time, 24-hour or 12-hour with am/pm, e.g. \"8:45\", \"17:30\", \"0730\", \"9:15 am\"."
}
}
},
"maxItems": 8,
"description": "In/out pairs for this day, in order. Use several pairs for split shifts or a clocked-out lunch, e.g. [{\"start\":\"8:00\",\"end\":\"12:00\"},{\"start\":\"12:30\",\"end\":\"17:00\"}]. Empty list = day off."
},
"unpaid_break_minutes": {
"type": "integer",
"maximum": 720,
"minimum": 0,
"description": "Unpaid break or lunch minutes to subtract from this day, e.g. 30. Do not also add it as a separate punch gap."
}
}
},
"maxItems": 62,
"minItems": 1,
"description": "One item per worked day (up to 62, e.g. a biweekly or monthly time card). Example: [{\"day\":\"Mon\",\"punches\":[{\"start\":\"8:45\",\"end\":\"17:30\"}],\"unpaid_break_minutes\":30}]."
},
"currency": {
"type": "string",
"maxLength": 3,
"description": "ISO currency code for pay amounts, default USD, e.g. EUR or GBP."
},
"rounding": {
"enum": [
"none",
"nearest_5",
"nearest_6",
"nearest_15",
"seven_minute_rule"
],
"type": "string",
"description": "Punch rounding applied to each clock-in and clock-out: none (default), nearest_5, nearest_6 (tenth of an hour), nearest_15, or seven_minute_rule (8:07 -> 8:00, 8:08 -> 8:15)."
},
"pay_period": {
"type": "string",
"maxLength": 60,
"description": "Optional pay period label printed on the timesheet, e.g. \"Sep 28 - Oct 11, 2026\" or \"Week 40\"."
},
"hourly_rate": {
"type": "number",
"maximum": 1000000,
"minimum": 0,
"description": "Optional regular hourly pay rate in the chosen currency for gross pay, e.g. 18.50 (USD) or 1100 (JPY). Leave out for hours only."
},
"week_start_day": {
"enum": [
"sun",
"mon",
"tue",
"wed",
"thu",
"fri",
"sat"
],
"type": "string",
"description": "First day of the workweek for dated entries, e.g. \"sun\". Default: the weekday of the earliest date."
},
"overtime_preset": {
"enum": [
"us_federal",
"california",
"none"
],
"type": "string",
"description": "Overtime rule set. us_federal (default): over 40 h per workweek at 1.5x. california: over 8 h/day and 40 h/week at 1.5x, over 12 h/day at 2x, plus the 7th-consecutive-day rule. none: no overtime split."
},
"seventh_day_rule": {
"type": "boolean",
"description": "California 7th-consecutive-day rule: on the 7th straight workday of a workweek the first 8 h are overtime and the rest double time. Default on for california, off otherwise."
},
"overtime_multiplier": {
"type": "number",
"maximum": 5,
"minimum": 1,
"description": "Overtime pay multiplier, default 1.5."
},
"double_time_multiplier": {
"type": "number",
"maximum": 5,
"minimum": 1,
"description": "Double-time pay multiplier, default 2."
},
"daily_overtime_after_hours": {
"type": "number",
"maximum": 24,
"minimum": 0,
"description": "Override the daily overtime threshold in hours, e.g. 8 (Alaska, Nevada) or 12 (Colorado). 0 turns daily overtime off."
},
"weekly_overtime_after_hours": {
"type": "number",
"maximum": 168,
"minimum": 0,
"description": "Override the weekly overtime threshold in hours, e.g. 40 or 37.5. 0 turns weekly overtime off."
},
"daily_double_time_after_hours": {
"type": "number",
"maximum": 24,
"minimum": 0,
"description": "Override the daily double-time threshold in hours, e.g. 12. 0 turns double time off."
}
}
}