Sorry, I said combo by mistake. You said you were filling from a listbox.
Access is a RAD tool. It therefore has its own ways of doing things. You will find that when you use a screwdriver as a hammer, the task is ever so much harder than what it needs to be. I suggest using a tool as it was designed to be used. You might find that you like it better than you used to. When you want to twiddle bits, use a low level programming tool. When you want development speed and productivity, use a high level programming tool. One tool is not better than another but they are each better suited to different tasks. When you want to do a lot of extra work, use a low level tool to do a high level job. When you want to frustrate yourself, use a high level tool as if it were a low level tool.
Your code seems to be doing much more work than it needs to do. If you are taking data from a table via a listbox, that data presumably has already been validated or it shouldn't be in the table so I'm not sure what the purpose of the UDF type conversion functions are. Why can't you just copy from one control to another?
And finally, VBA loops are significantly slower than append queries. If you want to generate a bunch of schedule records, a simple solution is an append query that takes an argument as the FK and joins to what some folks call a "tally" table. A "tally" table has a number of rows with just numeric values - 1,2,3,etc. Or dates 10/7/24, 10/8/24, etc. You use a range or quantity to select the number of rows you want. When using dates, you may want to include a week day field so that you select 10 "Mondays" if you want to schedule an appointment for the next 10 Mondays.