I would like to initiate a workflow on a regular basis on specified time. This workflow has to execute a custom activity (business logic in C# code to create the components in Tridion) during its execution. Is it possible to achieve this in Tridion workflow? If not suggest the best way to achieve this?
Starting a workflow should be done by some form of external trigger (typically a user creating or editing an item).
To do this in an automated way you would need to write a script/program which can be scheduled to trigger the process. I would consider writing either a windows service (probably overkill) or a power-shell type script (which can be scheduled to run when desired).
Your code should use the Core Service to start the workflow process for the given item. The following snippet may get you started:
This sample adds items to a bundle and starts the workflow (the concept is similar if you are not using bundles). Be careful to check if the item you want to put into workflow is not already in workflow or it will fail.