Quick answer for the impatient
The fix is almost always a malformed or outdated XML node. Export the task again from a working machine, or strip out any custom nodes that Task Scheduler doesn't recognize.
What's actually going on
You're trying to import a scheduled task, either through the Task Scheduler GUI or via schtasks.exe /create /xml, and Windows throws the dreaded 0x80041316. It's Task Scheduler's way of saying, "I don't know what to do with this part of your XML."
This usually happens when you've exported a task from a newer version of Windows (say Windows 10 2004) and try to import it into an older one (like Windows 7 or an earlier Server build). The XML schema has added nodes over the years. I've also seen this when someone hand-edits the XML and accidentally leaves a stray element or adds one that doesn't belong in the Task root.
The error text is deliberately vague. It won't tell you which node is the problem. That's infuriating, I know. But you can almost always resolve it in a couple of minutes.
Fix steps
Step 1: Validate the XML against the Task Scheduler schema
First, you need to see what you're dealing with. Open your XML file in a text editor (Notepad++ or VS Code are good). Look for the root element. It should be <Task> with the proper namespaces. Here's a minimal example that works on any Windows version:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2023-01-01T00:00:00</Date>
<Author>YourName</Author>
<Description>Backup script</Description>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<StartBoundary>2023-01-01T00:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Actions>
<Exec>
<Command>C:\Windows\System32\cmd.exe</Command>
<Arguments>/c echo hello</Arguments>
</Exec>
</Actions>
</Task>If your XML doesn't look similar, or has extra elements like <Settings> with unknown properties, that might be the culprit.
Step 2: Strip out incompatible nodes
The most common offending nodes are in the <Settings> section. Things like <DisallowStartIfOnBatteries> and <StopIfGoingOnBatteries> have been around forever, but <MaintenanceSettings> and <MultipleInstancesPolicy> with newer values can trip up older versions.
My advice: delete the entire <Settings> element if you can live with defaults. That eliminates a huge chunk of potential issues. Also check <Triggers> for things like <TimeTrigger> with a <RandomDelay> that might not be supported.
Step 3: Re-import and test
Save your stripped-down XML and try importing again:
schtasks /create /tn "MyTask" /xml "C:\path\to\task.xml" /fIf it imports, you're golden. Now you can re-add settings through the Task Scheduler GUI, which will validate them properly.
If the main fix doesn't work
Sometimes the XML is fine, but the export itself was corrupted. That's rarer, but it happens.
Alternative 1: Export from a working machine
If you have another machine with a similar Windows version, create the task fresh there, export it, and copy the XML over. That guarantees compatibility.
Alternative 2: Use schtasks to create a task from scratch
Skip the XML entirely. Use the command line to build the task piece by piece:
schtasks /create /tn "MyTask" /tr "C:\path\to\script.exe" /sc daily /st 09:00It's less flexible, but you won't fight XML schema issues.
Alternative 3: Check for encoding issues
Your XML must start with <?xml version="1.0" encoding="UTF-16"?> — not UTF-8. Task Scheduler is picky about that. If you edited in Notepad and saved as UTF-8, that alone can trigger the error. Re-save as UTF-16 LE using Save As and encoding dropdown.
Prevention tip for next time
Always export tasks from the same or older Windows version than the target. If you're migrating to a newer server, export from the old one and import. Going the other direction is where you'll hit this error.
Also, avoid hand-editing exported XML if you're not absolutely sure about the schema. One stray node is all it takes.
That's it. You'll have your task imported in no time.