thanks for using heredoc syntax, I didn't think of quotes too much.
now, for me this seems to be working. if it is the same for you, the question is, what is different?
my next approach for debugging would be to cut down the pattern brutally to see if there's a match at all, and if so, slowly add to it again
// if ( preg_match("/<form(.*?)<\/form>/si", $data_calendar_form, $match) ) {
if ( preg_match("/<form/si", $data_calendar_form, $match) ) {
echo "A match was found.";
} else {
echo "A match was not found.";
}