How freelancers turn Apple Calendar into a monthly client timesheet
Month-end does not need a second time-tracking app. If the work already sat on your calendar, export it, sanity-check the weird days, and ship a spreadsheet your client can actually open.
Written for Freelancers who invoice clients monthly. Updated 2026-08-05.
Thursday before invoices go out
Thursday night, invoice due Friday. Your design client wants hours for March—not a calendar screenshot. The month is a mess of reviews, revision blocks, and two late calls that crossed midnight.
Where hours leak
Typing every event into a sheet is how hours disappear. You either underbill or you invent tidy numbers you cannot defend later.
What actually works
Select that client’s calendar and the contract month in Calendar2XL, preview daily totals, fix anything wrong in Apple Calendar, re-export, then share the XLSX or CSV only after a two-minute review.
My month-end pass
Clean the client calendar first
Spend five minutes in Apple Calendar. Fix titles, remove personal noise, cancel dead recurrences. Garbage in stays garbage in the export.
Export only that client and that month
In Calendar2XL, select the client calendar and the full contract month. Leave other clients and your personal calendar unchecked.
Use preview as a lie detector
Scan daily totals. Empty or huge days mean fix the calendar and export again—do not paper over it in Numbers.
Pick XLSX or CSV for the audience
People reviewing by eye usually want Excel. Portals and scripts often want CSV. Same underlying hours either way.
Share after you open the file once
Open the attachment yourself, then Mail or Files it to the client. Once it leaves your phone, their tools and retention rules apply.
The month-end job freelancers actually have
Clients rarely want a story. They want dated rows and a total they can match to an invoice line. If you already blocked the work in Apple Calendar—kickoffs, critique sessions, deep-work chunks—you are halfway done.
The missing half is structure: a file with start/end times, durations, and a daily rollup. Screenshots fail that test. A blank spreadsheet you fill from memory fails it differently.
What I do the last business day of the month
First I open Apple Calendar, not the export app. I delete the personal dentist hold that landed on the client calendar by accident. I rename “catch up” to something the client will recognize. I cancel the ghost recurrence that still shows after the project paused.
Only then do I open Calendar2XL. One client calendar. First day of the month through last. Preview on. If Tuesday shows zero hours and I know I worked, I go back to Calendar—not into Excel with a made-up row.
- One calendar per paying client when you can
- Contract month as the date range, including the final day
- Preview daily totals before any share sheet
- Re-export after calendar fixes instead of hand-editing twenty cells
Reading the export like a skeptic
Open the file and look for three smells: empty weekdays you expected to bill, absurdly long days from multi-day blocks, and stacked meetings that would inflate a naive sum. Calendar2XL can count overlapping minutes once in totals while still listing each event—know which mode you used before you argue about the number.
If a title is too blunt for the client (“rate negotiation”), switch privacy to “Work” or daily totals only and export again. Do not send the internal version “just this once.”
What this is not
The spreadsheet is supporting detail. It is not an invoice, a signed timesheet, or a tax filing. Your contract still decides billable rules. Calendar2XL will not invent hours that never existed as events.
Keep these near the invoice button
- Month-end timesheets fail more from messy calendars than from missing software.
- Export after a calendar cleanup, not before.
- Daily totals catch underbilling faster than staring at a monthly sum.
- Privacy mode belongs in the export step, not in a last-second PDF crop.
Questions people ask
Can I build a client timesheet only from Apple Calendar?
Yes, if the billable work was actually scheduled as events. Calendar2XL turns those events into Excel or CSV rows with durations. It cannot recover hours you never put on the calendar.
My client wants hours by project—does the export do that automatically?
It exports titles and calendars. Project split comes from how you named events or which calendar you selected. After export you can filter in Excel, but the app does not guess project codes for you.
Should I edit the spreadsheet or fix the calendar?
Fix the calendar when the source is wrong, then re-export. Hand-editing is fine for rare notes, but rebuilding half the month in Excel recreates the problem you were trying to leave.