Sending a variable to deck api

I use a bash script tied to a keyboard shortcut to read a specific chunk of a markdown file, and send that to nextcloud deck api to update the description of a specific card with updates when I check off items on a local markdown pad thing.

the problem seems to be that there are a bunch of special characters in the file, because the description of the card cuts off after a section of a url with /Mting%20Notes&openfile in it. its pretty important that the card description contain urls and special characters for various reasons, so not having stuff like that in there is sadly not an option.

How do I send along the variable/the contents of the file, special characters and all, to the deck without breaking anything?

here is the full script i use:

#!/bin/bash
#pullout tasks section from local file
awk '/xstart/{flag=1; next} /xend/{flag=0} flag' /home/user1/NotesToSelf/1TASKS_PAD_ALWAYS_VIEW.md > MUSTDO.txt

#set as var, i think this is where things break?
MUSTDO=$(cat MUSTDO.txt)

#send $MUSTDO to nxclouddeck api
curl -X PUT -u username:password \
'https://cloud.example.com/nextcloud/index.php/apps/deck/api/v1.0/boards/11/stacks/12/cards/539' \
-d 'title=Today Tasks' \
-d 'type=plain' \
-d 'owner=username' \
-d "description=$MUSTDO" \
-H "OCS-APIRequest: true" 

I am assuming things break when i set the variable, but I am pretty new to scripting so i really dont know. any resources, advice or suggestions would be appreciated.