I need to send an email alert 7 days before the trial date expires, so I set a workflow with a Time-Dependent Workflow Action for 7 days before expiration. But if the contact signed up during the trial period (I have a checkbox that indicates that), I don't want the action to run. Will the workflow reevaluate itself when the time dependent action is triggered? How can I "turn off" a Time-Dependent Workflow Action if the condition has changed?
Have a look at help document from salesforce
If you update the date field used in a time trigger, Salesforce recalculates the time trigger as long as the time trigger has not yet fired and the recalculation does not reschedule the time trigger to a date in the past.
For example, if a workflow rule alerts the opportunity owner seven days before the opportunity close date and the close date is set to 2/20/2008, Salesforce sends the alert on 2/13/2008. If you update the close date to 2/10/2008 and the current date is 2/2/2008 or before, Salesforce reschedules the alert for 2/3/2008. The evaluation date of pending actions is ALWAYS reevaluated and updated if necessary irrespective of the rule criteria. Of course, if the rule is evaluated to false, it does not matter as the actions are removed from the queue.