So I was hired for a roughly one day long project on 1st of Jul with 10 days deadline.
He started asking me for daily update from next day which was bit annoying since I have not started yet.
On 4th, I write him to provide me the things I need. He finally provide me on 12th of July (one day after deadline). He asked for updates meanwhile twice and both time, I reminded him I am stuck waiting for him.
Co-incidentally that week was exceptionally busy for me, so I tell him on 12th, that I will do it on 19th of July. He blamed me for missing my deadline at this point. I tell him, how can he blame me when he provided me things one day after the deadline.
He is pretty much blaming me for everything at this point, and he was very serious about this new deadline on 19th. On 19th, I started worked on his project as promised, and noticed the credentials he sent me on 12th are wrong (He only had one job, and couldn't do it right). He tell me he will send the correct one later today, but he never did. I followed up again on 20th in evening, and then he finally sent correct ones.
Now I tell him, I am busy on 21st, and will do it on 22 now. Now he gets very very angry again and start saying I treat his project like a joke, and I am BS'ing and I don't deliver timely, and blah blah blah. He also he threatened to cancel the project if I do it on 22nd.
I have a record of delivering on time on every projects except this one. He delayed the project twice and he blames me for it. I just don't understand how can I do his work if he don't provide me the needed things timely. And secondarily I am not his full time employee. I have other commitments too. How can he expect me to drop everything like this?
Since I was already fed up with him long ago, and was tolerating him just to be professional, I decided to fire him right away at this point giving him full refund.
I want to ask:
A) Who is at fault here?
B) How I could have handled the situation better to be less stressful for me?