However, the popup displays before I get to the first .done (and it has a whole bunch of row s, because the condition hasn't been set yet).

Any idea what might be going on here?

To back up a bit, for those interested in the context (perhaps there's a better way to do this whole thing).

I have two (relevant) event sources. One is a model for our master schedule, and one is a model for recurring events created based on that schedule. The latter basically only has fields for Start__c, End__c, and Room__c (the grouping field). I want to give the users same experience whether they click on an event that is in the Schedule model (AllAppointments above) or the Reoccurrence model. So, what this code is doing is getting the data from the row in Reoccurrence and creating a new row in AllAppointments instead. Then I'm showing the same popup on the AllAppointments model. But I need to be able to narrow down the model to just the fields for the row I created.

This is because currently the "Run Snippet then show custom Popup" Event Source On-Click Behavior for Calendars doesn't check for a Deferred promise being returned, the way that the Action Framework does. Makes total sense that it would do this. I'll mark it as an idea --- this can probably make it into an upcoming patch release. I'll keep you updated when this is implemented.

I know this is an old thread but is there a way to prevent the popup from showing up at all. What I mean is, can the popup show up on certain conditions but not show up on others. I want to be able to cancel the addition of a new event under certain circumstances that the snippet will determine but allow other to continue.