{
  "title": "Pantry expiry tracker",
  "human_url": "https://happytails.ai/en/calculators/pantry-expiry-tracker/",
  "agent_url": "https://happytails.ai/agents/en/calculators/pantry-expiry-tracker/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/pantry-expiry-tracker.md",
  "content": "Pantry expiry tracker\nSort the food in your cupboard, fridge and freezer by the dates printed on it, so you can see what is past its date, what is due soon within the number of days you choose, and what can wait.\nHow to use Pantry expiry tracker\nPaste CSV with one single-line row per item, or paste a JSON backup from this tool to restore the list.\nLeave the reference date empty to use today, or enter another date.\nChoose how many days count as due soon and when calendar reminders should fire.\nReview the groups, then download the CSV, calendar file or backup.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nUseful next steps\nAdd days\nDate difference\nUnit price calculator\nGroups\nItems are sorted by date. Items whose date has passed are split into use-by passed and best-before passed, because the two labels mean different things. Items on or before the number of days you choose are grouped as due soon; the rest are later. This is a day-count window, not a calendar week.\nDates come from the packaging\nHappytails.ai uses only the dates you type. It has no shelf-life data and does not judge whether food is safe to eat. Follow the guidance on the label and from your local food safety authority.\nReminders\nThe calendar file has an all-day event for each item whose date has not passed. Each event has a reminder the number of days before it that you choose; choose 0 for a reminder on the event date. No calendar file is produced if all dates have passed. Download this tool's JSON backup to keep the list and paste it into the input to restore it. Nothing is stored between visits or online.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Add days",
      "url": "https://happytails.ai/en/date-time-tools/add-days/"
    },
    {
      "name": "Date difference",
      "url": "https://happytails.ai/en/date-time-tools/date-difference/"
    },
    {
      "name": "Unit price calculator",
      "url": "https://happytails.ai/en/business-tools/unit-price-calculator/"
    }
  ],
  "tool": {
    "id": "pantry-expiry-tracker",
    "category": "calculators",
    "built": true,
    "requirements": "CSV: up to 200 single-line items and 100,000 characters. JSON backup from this tool: up to 200,000 characters and 200 records. Everything is calculated on your device. Nothing is stored between visits or online. Downloads: CSV, JSON report and a JSON backup. An iCalendar (.ics) file is included when at least one item has a date on or after the reference date.",
    "implementation": {
      "fields": [
        {
          "key": "reference",
          "label": "Reference date (empty for today)",
          "value": "",
          "type": "date"
        },
        {
          "key": "soonDays",
          "label": "Mark due soon within (days)",
          "value": 7,
          "type": "number",
          "min": 0,
          "max": 60,
          "step": 1
        },
        {
          "key": "alarmDays",
          "label": "Calendar reminder days before",
          "value": 1,
          "type": "number",
          "min": 0,
          "max": 60,
          "step": 1
        }
      ],
      "registrationFamily": "local-records-reference",
      "inputMaxLength": 200000,
      "inputErrorCode": "LOCAL_RECORDS_REFERENCE_TOO_LONG",
      "presentation": "metrics",
      "note": "Paste CSV items or this tool’s JSON backup to restore the list. CSV is limited to 100,000 characters and 200 rows; backups are limited to 200,000 characters. Everything is calculated on your device. Nothing is stored online. No shelf-life data is used.",
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 200000,
        "inputMode": "text",
        "label": "CSV pantry items or this tool's JSON backup",
        "placeholder": "CSV header: name,quantity,location,date,date_type",
        "help": "date_type is use-by or best-before. Dates use YYYY-MM-DD. Text fields must stay on one line. Paste a JSON backup from this tool to restore the item list. Up to 200,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Pantry expiry tracker\n\n- Human page: https://happytails.ai/en/calculators/pantry-expiry-tracker/\n- Markdown: https://happytails.ai/en/calculators/pantry-expiry-tracker.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/pantry-expiry-tracker/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `pantry-expiry-tracker` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nPaste CSV items or this tool’s JSON backup to restore the list. CSV is limited to 100,000 characters and 200 rows; backups are limited to 200,000 characters. Everything is calculated on your device. Nothing is stored online. No shelf-life data is used.\n\n### Inputs and settings\n\nText input: CSV pantry items or this tool's JSON backup.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\nCSV header: name,quantity,location,date,date_type\n```\n\ndate_type is use-by or best-before. Dates use YYYY-MM-DD. Text fields must stay on one line. Paste a JSON backup from this tool to restore the item list. Up to 200,000 characters. Review the settings before running.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `reference` | Reference date (empty for today) | date | \"\" |  |\n| `soonDays` | Mark due soon within (days) | number | 7 | min=0 max=60 step=1 |\n| `alarmDays` | Calendar reminder days before | number | 1 | min=0 max=60 step=1 |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nCSV: up to 200 single-line items and 100,000 characters. JSON backup from this tool: up to 200,000 characters and 200 records. Everything is calculated on your device. Nothing is stored between visits or online. Downloads: CSV, JSON report and a JSON backup. An iCalendar (.ics) file is included when at least one item has a date on or after the reference date.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"pantry-expiry-tracker\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"CSV: up to 200 single-line items and 100,000 characters. JSON backup from this tool: up to 200,000 characters and 200 records. Everything is calculated on your device. Nothing is stored between visits or online. Downloads: CSV, JSON report and a JSON backup. An iCalendar (.ics) file is included when at least one item has a date on or after the reference date.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"reference\",\n        \"label\": \"Reference date (empty for today)\",\n        \"value\": \"\",\n        \"type\": \"date\"\n      },\n      {\n        \"key\": \"soonDays\",\n        \"label\": \"Mark due soon within (days)\",\n        \"value\": 7,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 60,\n        \"step\": 1\n      },\n      {\n        \"key\": \"alarmDays\",\n        \"label\": \"Calendar reminder days before\",\n        \"value\": 1,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 60,\n        \"step\": 1\n      }\n    ],\n    \"registrationFamily\": \"local-records-reference\",\n    \"inputMaxLength\": 200000,\n    \"inputErrorCode\": \"LOCAL_RECORDS_REFERENCE_TOO_LONG\",\n    \"presentation\": \"metrics\",\n    \"note\": \"Paste CSV items or this tool’s JSON backup to restore the list. CSV is limited to 100,000 characters and 200 rows; backups are limited to 200,000 characters. Everything is calculated on your device. Nothing is stored online. No shelf-life data is used.\",\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 200000,\n      \"inputMode\": \"text\",\n      \"label\": \"CSV pantry items or this tool's JSON backup\",\n      \"placeholder\": \"CSV header: name,quantity,location,date,date_type\",\n      \"help\": \"date_type is use-by or best-before. Dates use YYYY-MM-DD. Text fields must stay on one line. Paste a JSON backup from this tool to restore the item list. Up to 200,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nSort the food in your cupboard, fridge and freezer by the dates printed on it, so you can see what is past its date, what is due soon within the number of days you choose, and what can wait.\n\n### How to use Pantry expiry tracker\n\n1. Paste CSV with one single-line row per item, or paste a JSON backup from this tool to restore the list.\n2. Leave the reference date empty to use today, or enter another date.\n3. Choose how many days count as due soon and when calendar reminders should fire.\n4. Review the groups, then download the CSV, calendar file or backup.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n## Useful next steps\n\n- [Add days](https://happytails.ai/en/date-time-tools/add-days/) ([Markdown](https://happytails.ai/en/date-time-tools/add-days.md))\n\n- [Date difference](https://happytails.ai/en/date-time-tools/date-difference/) ([Markdown](https://happytails.ai/en/date-time-tools/date-difference.md))\n\n- [Unit price calculator](https://happytails.ai/en/business-tools/unit-price-calculator/) ([Markdown](https://happytails.ai/en/business-tools/unit-price-calculator.md))\n\n## Groups\n\nItems are sorted by date. Items whose date has passed are split into use-by passed and best-before passed, because the two labels mean different things. Items on or before the number of days you choose are grouped as due soon; the rest are later. This is a day-count window, not a calendar week.\n\n### Dates come from the packaging\n\nHappytails.ai uses only the dates you type. It has no shelf-life data and does not judge whether food is safe to eat. Follow the guidance on the label and from your local food safety authority.\n\n### Reminders\n\nThe calendar file has an all-day event for each item whose date has not passed. Each event has a reminder the number of days before it that you choose; choose 0 for a reminder on the event date. No calendar file is produced if all dates have passed. Download this tool's JSON backup to keep the list and paste it into the input to restore it. Nothing is stored between visits or online.\n"
}