I built my own time tracking tool (https://logmyhours.com) for tracking my time and creating invoices for any side freelancing I was doing. I'm actually hoping to go full time on this in the next 6-12 months.
I use a bit of Trello and Freedcamp for my todos and planning.
I also use RescueTime to make sure I'm keeping productive. I'm actually exploring adding integrations with RescueTime with LogMyHours, to see how productive you were for each timesheet, and reporting period.
I have a LibreOffice spreadsheet which I fill out my hours in. I also have a Writer document with my invoice layout and an embedded spreadsheet which lets me add line items and automatically calculates taxes. Easy enough to export to PDF. I keep all invoices in a specific directory, their filenames starting with the date and client name for easy discovery. I add the word '-PAID' to the filename once the invoice is paid by the client.
I second Harvest as well. Been using it for several years and it's great. The native time tracking app that lets you start timers with a few key presses is handy.
I would 100% recommend you do _not_ use a spreadsheet or make your own software for this. Invoices are just far too important. Screwing up your time sheets, invoicing twice or forgetting to invoice would be horrendous. Harvest is only around $100 a year when you need the paid plan (it's always free for around 2 ongoing clients I think, the option is a little hidden). It might look simple enough that you could get away with a simple spreadsheet for example but Harvest makes it much harder to make mistakes (Did you put something in the wrong cell? Did you remember to mark an invoice as sent? Paid?) and a single mistake can be costly.
I use Trello for task management and Harvest for time tracking and billing. I sometimes get envious of people with more tightly integrated and automated systems but so far I have needed the flexibility that comes with looser coupling much more than I've missed the added time required by my current setup.
I use https://wakatime.com to automatically show how long I worked on each project. The invoicing tool is in private beta right now, but it's basically an easy way to create a PDF for sending to clients.
I use a bit of Trello and Freedcamp for my todos and planning.
I also use RescueTime to make sure I'm keeping productive. I'm actually exploring adding integrations with RescueTime with LogMyHours, to see how productive you were for each timesheet, and reporting period.