Easy Digital Downloads has a variable prices option built-in, and there's also Discounts PRO extension if you want to quickly create discounts.

But none of these help if you want an automated discount that triggers for example every week in a certain day.

That's exactly what I wanted for one of my projects, BrutalistThemes.com, a Black Friday prices every Friday discount. So every Friday all year round from midnight UTC time the discount will cut prices in half for 24h and display a notification above the "Buy Now" button.

To modify the price, you have to use the edd_get_download_price filter. Adding the following code to your theme's functions.php file will change prices for all your products on day 5 of every week:

add_filter( 'edd_get_download_price', 'brutalist_friday_price', 1, 2);
function brutalist_friday_price($price, $download_id) {
    $isFriday = date('w') == 5; // specify day of the week
    if ($isFriday) {
        $price *= 0.5; // specify discount
    }

    return $price;
}

If you want to add an exception to that for a product, get your product ID and simply add this to your function:

if ($download_id == 9) {
    return $price;
}

The example assumes that product ID is 9.

So the complete snippet with the product exception will be:

add_filter( 'edd_get_download_price', 'brutalist_friday_price', 1, 2);
function brutalist_friday_price($price, $download_id) {
if ($download_id == 9) {
return $price;
}

$isFriday = date('w') == 5;
if ($isFriday) {
$price *= 0.5;
}

return $price;
}

That's it! Don't forget to replace brutalist_ with your theme's prefix and rename the function as you see fit.