...OK, here is a first demo-flow that can do what I want (generate a given number of timer events between sunrise and sunset each day, at equidistant intervals).
I am using the suncalc node to get get the start/end-times, then calculate the interval in a change node..
The iterations are injected using a dsm node with an interval config (from the dsm-node wiki, https://github.com/cflurin/node-red-contrib-dsm/wiki/Interval) and start/stop events are fired from the inject nodes at sunrise/sunset..
[{"id":"1fd8cac4.8f5445","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"313aadae.e6d532","type":"sun-position","z":"1fd8cac4.8f5445","name":"suncalc","positionConfig":"8c7609ce.dd5798","rules":[],"onlyOnChange":"true","topic":"interval","outputs":1,"start":"sunrise","startType":"pdsTime","startOffset":0,"startOffsetType":"none","startOffsetMultiplier":60000,"end":"sunset","endType":"pdsTime","endOffset":0,"endOffsetType":"none","endOffsetMultiplier":60000,"x":601,"y":120,"wires":[["cc99eed2.f5748"]]},{"id":"cc99eed2.f5748","type":"change","z":"1fd8cac4.8f5445","name":"set interval","rules":[{"t":"set","p":"iterations","pt":"msg","to":"20","tot":"num"},{"t":"set","p":"intervalLength","pt":"msg","to":"payload.endTime - payload.startTime","tot":"jsonata"},{"t":"set","p":"interval","pt":"msg","to":"$ceil(intervalLength / (iterations -1)\t)","tot":"jsonata"},{"t":"move","p":"interval","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":814,"y":120,"wires":[["98f9356d.380198"]]},{"id":"231aedc8.aa7d62","type":"inject","z":"1fd8cac4.8f5445","name":"start","topic":"start","payload":"my payload","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":670,"y":340,"wires":[["98f9356d.380198"]]},{"id":"d8bb28c.2b81fd8","type":"debug","z":"1fd8cac4.8f5445","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1208,"y":240,"wires":[]},{"id":"98f9356d.380198","type":"dsm","z":"1fd8cac4.8f5445","name":"interval","sm_config":"{\n \"stateOutput\": \"state\",\n \"currentState\": \"stopped\",\n \"states\": {\n \"stopped\": {\n \"start\": \"started\"\n },\n \"started\": {\n \"run\": \"running\",\n \"stop\": \"stopped\"\n },\n \"running\": {\n \"run\": \"running\",\n \"stop\": \"stopped\"\n }\n },\n \"data\": {\n \"interval\": 2000\n },\n \"methods\": {\n \"interval\": {\n \"name\": \"setData\"\n },\n \"start\": [\n \"if (sm.currentState === 'started') {\",\n \" node.send(msg);\",\n \" resume('run',msg);\",\n \"}\"\n ],\n \"run\": [\n \"timeout.interval = setTimeout(function() {\",\n \" node.send(msg);\",\n \" resume('run',msg);\",\n \"}, sm.data.interval);\"\n ],\n \"stop\": [\n \"if (timeout.interval) {\",\n \" clearTimeout(timeout.interval);\",\n \"}\"\n ],\n \"onAfterTransition\": \"output = false;\",\n \"status\": {\n \"fill\": {\n \"get\": \"sm.currentState === 'running' ? 'green' : 'grey'\"\n },\n \"shape\": \"dot\",\n \"text\": {\n \"get\": \"sm.currentState === 'running' ? 'interval ' + sm.data.interval : sm.currentState\"\n }\n }\n }\n}","x":1018,"y":240,"wires":[["d8bb28c.2b81fd8"]]},{"id":"b39dce4e.2a689","type":"inject","z":"1fd8cac4.8f5445","name":"stop","topic":"stop","payload":"stopped","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":670,"y":382,"wires":[["98f9356d.380198"]]},{"id":"4cea86cf.cfe658","type":"inject","z":"1fd8cac4.8f5445","name":"","topic":"interval","payload":"5000","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":690,"y":464,"wires":[["98f9356d.380198"]]},{"id":"5551575d.3a2058","type":"time-inject","z":"1fd8cac4.8f5445","name":"","nameInt":"⏲ Sonnenaufgang Begin = Zeitpunkt","positionConfig":"8c7609ce.dd5798","payload":"","payloadType":"date","payloadTimeFormat":0,"payloadOffset":0,"payloadOffsetType":"none","payloadOffsetMultiplier":60000,"topic":"start","injectTypeSelect":"time","intervalCount":1,"intervalCountType":"num","intervalCountMultiplier":60000,"time":"sunrise","timeType":"pdsTime","offset":0,"offsetType":"none","offsetMultiplier":60000,"timeEnd":"","timeEndType":"entered","timeEndOffset":0,"timeEndOffsetType":"none","timeEndOffsetMultiplier":60000,"timeDays":"*","timeOnlyOddDays":false,"timeOnlyEvenDays":false,"timeMonths":"*","timedatestart":"","timedateend":"","property":"","propertyType":"none","propertyCompare":"true","propertyThreshold":"","propertyThresholdType":"num","timeAlt":"","timeAltType":"entered","timeAltDays":"*","timeAltOnlyOddDays":false,"timeAltOnlyEvenDays":false,"timeAltMonths":"*","timeAltOffset":0,"timeAltOffsetType":"none","timeAltOffsetMultiplier":60000,"once":false,"onceDelay":0.1,"addPayload1":"","addPayload1Type":"none","addPayload1Value":"","addPayload1ValueType":"date","addPayload1Format":"0","addPayload1Offset":0,"addPayload1OffsetType":"none","addPayload1OffsetMultiplier":60000,"addPayload1Next":true,"addPayload1Days":"*","addPayload2":"","addPayload2Type":"none","addPayload2Value":"","addPayload2ValueType":"date","addPayload2Format":"0","addPayload2Offset":0,"addPayload2OffsetType":"none","addPayload2OffsetMultiplier":60000,"addPayload2Next":true,"addPayload2Days":"*","addPayload3":"","addPayload3Type":"none","addPayload3Value":"","addPayload3ValueType":"date","addPayload3Format":"0","addPayload3Offset":0,"addPayload3OffsetType":"none","addPayload3OffsetMultiplier":60000,"addPayload3Next":true,"addPayload3Days":"*","recalcTime":2,"x":270,"y":200,"wires":[["313aadae.e6d532","cbc61aa9.459e58"]]},{"id":"9729d616.48af08","type":"time-inject","z":"1fd8cac4.8f5445","name":"","nameInt":"⏲ Sonnenuntergang Ende = Zeitpunkt","positionConfig":"8c7609ce.dd5798","payload":"","payloadType":"date","payloadTimeFormat":0,"payloadOffset":0,"payloadOffsetType":"none","payloadOffsetMultiplier":60000,"topic":"stop","injectTypeSelect":"time","intervalCount":1,"intervalCountType":"num","intervalCountMultiplier":60000,"time":"sunset","timeType":"pdsTime","offset":0,"offsetType":"none","offsetMultiplier":60000,"timeEnd":"","timeEndType":"entered","timeEndOffset":0,"timeEndOffsetType":"none","timeEndOffsetMultiplier":60000,"timeDays":"*","timeOnlyOddDays":false,"timeOnlyEvenDays":false,"timeMonths":"*","timedatestart":"","timedateend":"","property":"","propertyType":"none","propertyCompare":"true","propertyThreshold":"","propertyThresholdType":"num","timeAlt":"","timeAltType":"entered","timeAltDays":"*","timeAltOnlyOddDays":false,"timeAltOnlyEvenDays":false,"timeAltMonths":"*","timeAltOffset":0,"timeAltOffsetType":"none","timeAltOffsetMultiplier":60000,"once":false,"onceDelay":0.1,"addPayload1":"","addPayload1Type":"none","addPayload1Value":"","addPayload1ValueType":"date","addPayload1Format":"0","addPayload1Offset":0,"addPayload1OffsetType":"none","addPayload1OffsetMultiplier":60000,"addPayload1Next":true,"addPayload1Days":"*","addPayload2":"","addPayload2Type":"none","addPayload2Value":"","addPayload2ValueType":"date","addPayload2Format":"0","addPayload2Offset":0,"addPayload2OffsetType":"none","addPayload2OffsetMultiplier":60000,"addPayload2Next":true,"addPayload2Days":"*","addPayload3":"","addPayload3Type":"none","addPayload3Value":"","addPayload3ValueType":"date","addPayload3Format":"0","addPayload3Offset":0,"addPayload3OffsetType":"none","addPayload3OffsetMultiplier":60000,"addPayload3Next":true,"addPayload3Days":"*","recalcTime":2,"x":270,"y":300,"wires":[["cbc61aa9.459e58","313aadae.e6d532"]]},{"id":"e83dc62e.ada438","type":"inject","z":"1fd8cac4.8f5445","name":"","topic":"interval","payload":"1000","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":690,"y":424,"wires":[["98f9356d.380198"]]},{"id":"cbc61aa9.459e58","type":"delay","z":"1fd8cac4.8f5445","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":660,"y":240,"wires":[["98f9356d.380198"]]},{"id":"5b62f0eb.a59f","type":"inject","z":"1fd8cac4.8f5445","name":"","topic":"inject","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":200,"y":120,"wires":[["313aadae.e6d532"]]},{"id":"8c7609ce.dd5798","type":"position-config","z":"","name":"DACH-1","isValide":"true","longitude":"0","latitude":"0","angleType":"deg","timeZoneOffset":"99","timeZoneDST":"0","stateTimeFormat":"3","stateDateFormat":"12"}]