Twilio developer evangelist here.
As jack suggests, you can do this with a Twilio Function to dynamically generate the time. You also asked this on Reddit and my colleague answered you with some code. To not reinvent the wheel, I'm going to post that code here too.
You'll want to create a Twilio Function and enter the following code:
exports.handler = function(context, event, callback) {
let twiml = new Twilio.twiml.VoiceResponse();
let timeZone = "Australia/Sydney";
let now = new Date();
let dayOfWeek = now.toLocaleString("en-AU",
{timeZone: timeZone, weekday: "long"});
let currentTime = now.toLocaleString("en-AU",
{timeZone: timeZone, hour: "numeric", minute: "numeric"});
twiml.say(`Hello Grandma, today is ${dayOfWeek}. Right now it is ${currentTime}`,
{voice: "alice", language: "en-AU", loop: 2});
return callback(null, twiml);
};
Save and deploy the function, then configure your phone number to use the Function when a call comes in.
This returns TwiML containing a message like: "Hello Grandma, today is Saturday. Right now it is 11:51 pm". You might need to change the time zone in the code above depending on where you are in the world. I've guessed "Australia/Sydney" because of your use of "en-AU" in the question but apologies if that's not right for you (there's a big list of timezone names here).