Hi David, David Maus writes: > I highly recommend to not use this macro but to build the intended > functionality with separate building blocks: Factor out the flesh of > the respective functions (e.g. org-schedule) and use org-map-entries > to map. As far as I can see, the latter provides all we need: I took this road. The first patch manually reverts the commit you are commenting. The second patch lets `org-map-entries' take a region as a scope. The third patch implements the "loop" functionality by just using `org-map-entries', not a macro. I'm sure we could have an `org-loop' macro factoring out the duplicate code in the new `org-schedule' and `org-deadline'. If you have time to look at this, that will greatly help. > Another abstraction: Instead > 'org-loop-over-siblings-with-active-region' something like: > 'org-loop-over-headlines-with-active-region' that can be set to a > symbol or a list of symbols indicating which headings to loop over > (e.g. 'siblings, 'children, ...). The variable is now called `org-loop-over-headlines-in-active-region' and understand these kind of values: - nil: don't loop - t: loop over all headlines - "MATCH": a tag/property/todo match to loop over matching headlines If you can test these patches and send some feedback, that'd be nice! Thanks again for the analysis and the suggested solution.