Hi @Delany,
I assume this is a classic Calendar app/list you are using, which has fields like EventDate, EndDate, EventType and RecurrenceData?
If that is the case you could use a Send an HTTP request to SharePoint action to create a Calendar list item with your own preferred recurrence pattern based on the birthday date question filled out in the form, in this case yearly.
When you want to read a bit more about the recurrence data schema I can recommend this blog from Justin: https://fatalfrenchy.wordpress.com/2010/07/16/sharepoint-recurrence-data-schema/
Below would be an example with that approach:
In this example in am using a Birth Date field answer in the Microsoft Forms form and calculate a yearly pattern which ends after 10 instances (10 years) in the RecurrenceData field. That value is also used to calculate the EndDate of the event.
{
"Title": "Birthday @{outputs('Get_user_profile_(V2)')?['body/displayName']}",
"EventDate": "@{outputs('Get_response_details')?['body/rb96a93f81bc94b6bb8a3310a44c9d662']}T00:00:00Z",
"EndDate": "@{concat(add(int(formatdatetime(parseDateTime(outputs('Get_response_details')?['body/rb96a93f81bc94b6bb8a3310a44c9d662'], 'en-us', 'yyyy-MM-dd'), 'yyyy')),10), formatdatetime(parseDateTime(outputs('Get_response_details')?['body/rb96a93f81bc94b6bb8a3310a44c9d662'], 'en-us', 'yyyy-MM-dd'), '-MM-dd'))}T23:59:00Z",
"EventType": 1,
"fRecurrence": true,
"fAllDayEvent": true,
"RecurrenceData": "<recurrence><rule><firstDayOfWeek>su</firstDayOfWeek><repeat><yearly yearFrequency=\"1\" month=\"@{int(formatdatetime(parseDateTime(outputs('Get_response_details')?['body/rb96a93f81bc94b6bb8a3310a44c9d662'], 'en-us', 'yyyy-MM-dd'), 'MM'))}\" day=\"@{formatdatetime(parseDateTime(outputs('Get_response_details')?['body/rb96a93f81bc94b6bb8a3310a44c9d662'], 'en-us', 'yyyy-MM-dd'), 'dd')}\" /></repeat><repeatInstances>10</repeatInstances></rule></recurrence>"
}
