Israeli freelancers and small businesses struggle to systematically track income and expenses. VAT calculations (17%), bi-monthly tax authority reports, and categorizing deductible expenses require tedious manual work in spreadsheets. Without automation, businesses miss tax deductions, delay filings, and waste hours preparing materials for their accountant.
Author: @skills-il
Automate Google Sheets financial workflows for Israeli businesses using the Google Workspace CLI -- expense tracking, VAT calculations, tax-period summaries, and accountant-ready CSV exports.
npx skills-il add skills-il/tax-and-finance --skill gws-israeli-business-sheetsBefore performing any Google Sheets operations, confirm the Google Workspace CLI is installed and authenticated.
# Check if gws is installed
gws --version
# If not installed, install globally
npm install -g @google/gws
# Authenticate with Google OAuth
gws auth login
# Verify authentication status
gws auth statusIf the user has not configured a Google Cloud project, guide them through gws auth setup to create OAuth credentials.
When the user wants to set up a new income/expense tracking sheet, create it with proper Israeli financial structure.
Sheet structure for Israeli freelancers:
| Column | Header (EN) | Header (HE) | Format | Purpose |
|---|---|---|---|---|
| A | Date | תאריך | DD/MM/YYYY | Transaction date |
| B | Description | תיאור | Text | What the transaction is |
| C | Category | קטגוריה | Text | Tax-deductible category |
| D | Amount (excl. VAT) | סכום (ללא מע"מ) | ILS currency | Net amount |
| E | VAT (17%) | מע"מ (17%) | ILS currency | Calculated VAT |
| F | Total (incl. VAT) | סכום כולל מע"מ | ILS currency | Gross amount |
| G | Type | סוג | Income/Expense | Direction of money |
| H | Invoice # | מספר חשבונית | Text | Invoice reference |
| I | Payment Method | אמצעי תשלום | Text | Bank/PayPal/Cash |
| J | Notes | הערות | Text | Additional details |
Tax-deductible categories for Israeli businesses:
| Category (EN) | Category (HE) | Deduction Rate |
|---|---|---|
| Office Rent | שכירות משרד | 100% |
| Equipment | ציוד | 100% |
| Phone & Internet | טלפון ואינטרנט | 100% (if business-only) |
| Professional Services | שירותים מקצועיים | 100% |
| Car Expenses | הוצאות רכב | Limited (45% or fixed) |
| Meals & Entertainment | ארוחות ואירוח | 80% |
| Travel | נסיעות | 100% |
| Software & Subscriptions | תוכנה ומנויים | 100% |
| Marketing | שיווק | 100% |
| Insurance | ביטוח | 100% |
To create the spreadsheet with headers:
# Create a new spreadsheet (returns spreadsheet ID)
gws sheets create --title "Business Tracker 2026"
# Set up headers in the first row
gws sheets append --spreadsheet-id SPREADSHEET_ID --range "Sheet1!A1:J1" \
--values '[["Date","Description","Category","Amount (excl. VAT)","VAT (17%)","Total (incl. VAT)","Type","Invoice #","Payment Method","Notes"]]'When the user wants to log a transaction, calculate the VAT automatically and append the row.
For income entries (user received payment):
# Calculate: if user received 5,850 ILS total, the breakdown is:
# Amount excl. VAT = Total / 1.17 = 5,000 ILS
# VAT = Amount * 0.17 = 850 ILS
gws sheets append --spreadsheet-id SPREADSHEET_ID --range "Sheet1!A:J" \
--values '[["15/01/2026","Web Development Project","Professional Services","5000","850","5850","Income","INV-2026-001","Bank Transfer",""]]'For expense entries:
# Example: Office internet bill of 234 ILS (200 + 34 VAT)
gws sheets append --spreadsheet-id SPREADSHEET_ID --range "Sheet1!A:J" \
--values '[["20/01/2026","Bezeq Internet","Phone & Internet","200","34","234","Expense","","Direct Debit",""]]'VAT calculation formulas:
| Scenario | Formula | Example |
|---|---|---|
| Have total (incl. VAT), need breakdown | Amount = Total / 1.17, VAT = Total - Amount | 1170 / 1.17 = 1000, VAT = 170 |
| Have net amount, need total | VAT = Amount * 0.17, Total = Amount + VAT | 1000 * 0.17 = 170, Total = 1170 |
| Meal expense (80% deductible) | Deductible = Amount * 0.80 | 500 * 0.80 = 400 |
When the user needs a financial overview, read the data and compute summaries.
# Read all entries from the sheet
gws sheets read --spreadsheet-id SPREADSHEET_ID --range "Sheet1!A:J"
# Read entries with JSON output for programmatic processing
gws sheets read --spreadsheet-id SPREADSHEET_ID --range "Sheet1!A:J" --output jsonAfter reading the data, calculate and present:
Bi-monthly VAT reporting periods (Israel):
| Period | Months | Report Due By |
|---|---|---|
| 1 | January-February | March 15 |
| 2 | March-April | May 15 |
| 3 | May-June | July 15 |
| 4 | July-August | September 15 |
| 5 | September-October | November 15 |
| 6 | November-December | January 15 |
When the user needs to prepare data for their accountant or for VAT reporting, create a summary sheet.
# Read all data
gws sheets read --spreadsheet-id SPREADSHEET_ID --range "Sheet1!A:J" --output jsonAfter reading, use Python (via scripts/vat-summary.py) to:
Then write the summary to a new tab:
# Create summary headers in a new sheet tab
gws sheets append --spreadsheet-id SPREADSHEET_ID --range "VAT-Period-1!A1:D1" \
--values '[["Category","Total Amount","Total VAT","Transaction Count"]]'
# Append summary rows
gws sheets append --spreadsheet-id SPREADSHEET_ID --range "VAT-Period-1!A:D" \
--values '[["Total Income","50000","8500","15"],["Total Expenses","20000","3400","25"],["VAT Liability","","5100",""],["Net Profit","30000","",""]]'When the user wants to create local backups or share data with their accountant, export to CSV.
# Export the main tracking sheet as CSV
gws sheets read --spreadsheet-id SPREADSHEET_ID --range "Sheet1!A:J" --output csv > business-tracker-2026.csv
# Export a specific VAT period
gws sheets read --spreadsheet-id SPREADSHEET_ID --range "VAT-Period-1!A:D" --output csv > vat-period-1-2026.csvUse the scripts/backup-sheets.py script for automated multi-sheet backup:
python scripts/backup-sheets.py --spreadsheet-id SPREADSHEET_ID --output-dir ./backups/2026-01When the user provides transaction data in bulk (from a bank statement or invoice list), parse and append multiple entries at once.
# Append multiple rows in one call
gws sheets append --spreadsheet-id SPREADSHEET_ID --range "Sheet1!A:J" \
--values '[
["01/02/2026","Client A - Monthly Retainer","Professional Services","10000","1700","11700","Income","INV-2026-010","Bank Transfer",""],
["03/02/2026","AWS Hosting","Software & Subscriptions","450","76.50","526.50","Expense","","Credit Card",""],
["05/02/2026","Business Lunch - Client B","Meals & Entertainment","300","51","351","Expense","","Credit Card","80% deductible"]
]'Before making changes, always offer the user a dry-run preview.
# Preview what would be appended without writing
gws sheets append --spreadsheet-id SPREADSHEET_ID --range "Sheet1!A:J" \
--values '[["15/03/2026","Test Entry","Office Rent","5000","850","5850","Expense","","Bank Transfer",""]]' \
--dry-runUser says: "Create a Google Sheet to track my freelance income and expenses with VAT"
Actions:
gws sheets create --title "Freelance Tracker 2026" to create the spreadsheetResult: A new Google Sheet with proper Israeli freelancer financial structure, ready for entries.
User says: "Create a VAT summary for January-February 2026 and export it as CSV"
Actions:
gws sheets read to pull all entries from the tracking sheetpython scripts/vat-summary.py to filter Jan-Feb transactions and compute totalsgws sheets read --output csvResult: A clean VAT period summary both in the Google Sheet and as a local CSV file ready to send to the accountant.
User says: "I got these payments this month: Client A paid 11,700 for consulting, I paid 526.50 for hosting, and 351 for a business lunch"
Actions:
gws sheets append with multi-row values arrayResult: Three new rows appended to the tracking sheet with proper categorization, VAT breakdown, and deductibility notes.
scripts/vat-summary.py -- Generate bi-monthly VAT summary reports from sheet data. Run: python scripts/vat-summary.py --helpscripts/backup-sheets.py -- Backup Google Sheets tabs as local CSV files. Run: python scripts/backup-sheets.py --helpreferences/israeli-tax-categories.md -- Complete list of Israeli tax-deductible expense categories with deduction rates. Consult when categorizing a business expense.references/gws-sheets-recipes.md -- Common gws CLI recipes for Google Sheets operations. Consult when performing sheet operations beyond basic read/append.Cause: The Google Workspace CLI is not installed or not in PATH.
Solution: Install with npm install -g @google/gws. If using npx, prefix commands with npx @google/gws.
Cause: The user has not authenticated or the OAuth token has expired.
Solution: Run gws auth login to re-authenticate. If the Google Cloud project is not configured, run gws auth setup first.
Cause: The spreadsheet ID is incorrect or the user does not have access. Solution: Verify the spreadsheet ID from the Google Sheets URL (the string between /d/ and /edit). Ensure the authenticated Google account has edit access to the sheet.
Cause: Rounding differences between manual calculation and sheet formulas.
Solution: Always round VAT to 2 decimal places. Use the formula: Math.round(amount * 17) / 100 for precise Shekel calculations. Israeli tax authority accepts rounding to the nearest agora.
Supported Agents
Create a new Google Sheet to track my business income and expenses. Add columns for date, description, category, amount excluding VAT, 17% VAT, total amount, type (income/expense), invoice number, payment method, and notes.
Generate a VAT summary for January-February 2026 from my tracking sheet. Calculate total output VAT, input VAT, and net VAT liability. Export the summary as CSV for my accountant.
Log these payments in my sheet: Client A paid 11,700 ILS for consulting (including VAT), I paid 526 ILS for AWS hosting, and 351 ILS for a business lunch. Calculate the VAT breakdown and categorize appropriately.
Back up all tabs in my tracking spreadsheet as CSV files in a backups folder. Export the main tracking sheet and all VAT period summary tabs separately.
Trust Score
This skill can execute scripts and commands on your system.
1 occurrences found in code
This skill can read and write files on your system.
1 occurrences found in code
This skill can access environment variables which may contain secrets.
1 occurrences found in code
Calculate municipal arnona, check discount eligibility, and draft appeal letters to arnona committees in Israel
Calculate crypto capital gains tax, generate Form 1325 data, and classify DeFi income per Israeli Tax Authority regulations
Integrate Green Invoice (Morning) API for Israeli invoicing, receipts, client management, and payment processing for businesses in Israel
Want to build your own skill? Try the Skill Creator · Submit a Skill