First thing to try: assign the user id, not the name
But then… It’s possible that some code that runs when you create the call manually, doesn’t run when created from the Workflow… typically, stuff adding relationships or creating reminders.
You might need a logic hook to emulate that a bit better.
On the other hand, if you try to understand what the normal code does in the database, you might find that what you are missing is a relationship, for example, and that can likely be created from the workflow.
Here is a working example, it doesn’t relate to calendar, but to Leads. Note that I had to set both a Parent id and create a relationship - I found that out by looking at the database.