You can send any event name directly from code (GTM or not).
There is no need to define it in the UI and no need to create a goal for the event to be recorded.
How It Works
The tracking script accepts whatever event name you send and records it automatically.
Example (Code Snippet)
<script>
window.mdq = window.mdq || [];
mdq.push(['track', 'signup_completed', { plan: 'pro' }]);
</script>
Good to Know
You can send events from any source (GTM, custom code, tag managers).
Use clear, consistent event names for easier analysis.
