0
  function dailyEventMessage() {
  var googleCalendarId = "xxxxxx@group.calendar.google.com";

  var calendar = CalendarApp.getCalendarById(googleCalendarId);
  var today = new Date();
  var tomorrow = new Date(today.getFullYear(), today.getMonth(),today.getDate()+1);
  var tomorrowEventList = calendar.getEventsForDay(tomorrow);

  const date = new Date(tomorrow) 
  const tomorrowdateresult = date.toLocaleDateString('th-TH', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  weekday: 'long',
 }) 

 var message = "";

  for (var i = 0; i < tomorrowEventList.length; i++) {

  var eventTitle = "Task: "   + tomorrowdateresult + "\n" + "**"+  tomorrowEventList[i].getTitle()+"**";
   var eventTime = "Timebegin: "  + tomorrowEventList[i].getStartTime().toTimeString().slice(0,5)
+"-"+ tomorrowEventList[i].getEndTime().toTimeString().slice(0,5);

  var eventDescription = "Details: "  + tomorrowEventList[i].getDescription();

   message += "\n" + eventTitle + "\n" + eventTime + "\n" + eventDescription + "\n";
 
  }

  if (message === "") {
   return;
  }


  Logger.log(message);
 sendMessage(message);
  }

The problem I found is variable eventime, it show on 12 hr format . Ex. 03.00-04.00 but actually time in google calendar I set at 15.00-16.00

Could anyone suggest on how to change it to 24 hr format. Thks

TheMaster
  • 45,448
  • 6
  • 62
  • 85

1 Answers1

3

Your code will be cleaner if you use date formatter. By using toTimeString() and slice(0,5) your code will broke sometime.

In Intl.DateTimeFormat you can set hour12 config to false. It will give you 24-hour format.

const startTime = new Date(2010, 11, 12, 13, 14);
const endTime = new Date(2010, 11, 12, 16, 17);

const formatter = new Intl.DateTimeFormat('en', {
    hour: 'numeric',
    minute: 'numeric',
    hour12: false,
});

console.log(`${formatter.format(startTime)} - ${formatter.format(endTime)}`);

here is some reference: How to format a JavaScript date

ibrohimislam
  • 717
  • 7
  • 21