1
+ /**
2
+ * Formats the date and time according to the format specified in the configuration.
3
+ *
4
+ * @param {string } date The date to be formatted.
5
+ * @return {string } The formatted date string.
6
+ */
7
+ function formatDate ( date ) {
8
+ const year = date . slice ( 0 , 4 ) ;
9
+ const month = date . slice ( 5 , 7 ) ;
10
+ const day = date . slice ( 8 , 10 ) ;
11
+ let formattedDate ;
12
+
13
+ if ( dateFormat == "YYYY/MM/DD" ) {
14
+ formattedDate = year + "/" + month + "/" + day
15
+ }
16
+ else if ( dateFormat == "DD/MM/YYYY" ) {
17
+ formattedDate = day + "/" + month + "/" + year
18
+ }
19
+ else if ( dateFormat == "MM/DD/YYYY" ) {
20
+ formattedDate = month + "/" + day + "/" + year
21
+ }
22
+ else if ( dateFormat == "YYYY-MM-DD" ) {
23
+ formattedDate = year + "-" + month + "-" + day
24
+ }
25
+ else if ( dateFormat == "DD-MM-YYYY" ) {
26
+ formattedDate = day + "-" + month + "-" + year
27
+ }
28
+ else if ( dateFormat == "MM-DD-YYYY" ) {
29
+ formattedDate = month + "-" + day + "-" + year
30
+ }
31
+ else if ( dateFormat == "YYYY.MM.DD" ) {
32
+ formattedDate = year + "." + month + "." + day
33
+ }
34
+ else if ( dateFormat == "DD.MM.YYYY" ) {
35
+ formattedDate = day + "." + month + "." + year
36
+ }
37
+ else if ( dateFormat == "MM.DD.YYYY" ) {
38
+ formattedDate = month + "." + day + "." + year
39
+ }
40
+
41
+ if ( date . length < 11 ) {
42
+ return formattedDate
43
+ }
44
+
45
+ const time = date . slice ( 11 , 16 )
46
+ const timeZone = date . slice ( 19 )
47
+
48
+ return formattedDate + " at " + time + " (UTC" + ( timeZone == "Z" ? "" : timeZone ) + ")"
49
+ }
50
+
51
+
1
52
/**
2
53
* Takes an intended frequency in minutes and adjusts it to be the closest
3
54
* acceptable value to use Google "everyMinutes" trigger setting (i.e. one of
@@ -486,12 +537,13 @@ function processEvent(event, calendarTz){
486
537
//------------------------ Send event object to gcal ------------------------
487
538
if ( needsUpdate ) {
488
539
if ( modifyExistingEvents ) {
540
+ oldEvent = calendarEvents [ index ]
489
541
Logger . log ( "Updating existing event " + newEvent . extendedProperties . private [ "id" ] ) ;
490
542
newEvent = callWithBackoff ( function ( ) {
491
543
return Calendar . Events . update ( newEvent , targetCalendarId , calendarEvents [ index ] . id ) ;
492
544
} , defaultMaxRetries ) ;
493
545
if ( newEvent != null && emailSummary ) {
494
- modifiedEvents . push ( [ [ newEvent . summary , newEvent . start . date || newEvent . start . dateTime ] , targetCalendarName ] ) ;
546
+ modifiedEvents . push ( [ [ oldEvent . summary , newEvent . summary , oldEvent . start . date || oldEvent . start . dateTime , newEvent . start . date || newEvent . start . dateTime , oldEvent . end . date || oldEvent . end . dateTime , newEvent . end . date || newEvent . end . dateTime , oldEvent . location , newEvent . location , oldEvent . description , newEvent . description ] , targetCalendarName ] ) ;
495
547
}
496
548
}
497
549
}
@@ -502,7 +554,7 @@ function processEvent(event, calendarTz){
502
554
return Calendar . Events . insert ( newEvent , targetCalendarId ) ;
503
555
} , defaultMaxRetries ) ;
504
556
if ( newEvent != null && emailSummary ) {
505
- addedEvents . push ( [ [ newEvent . summary , newEvent . start . date || newEvent . start . dateTime ] , targetCalendarName ] ) ;
557
+ addedEvents . push ( [ [ newEvent . summary , newEvent . start . date || newEvent . start . dateTime , newEvent . end . date || newEvent . end . dateTime , newEvent . location , newEvent . description ] , targetCalendarName ] ) ;
506
558
}
507
559
}
508
560
}
@@ -943,7 +995,7 @@ function processEventCleanup(){
943
995
} , defaultMaxRetries ) ;
944
996
945
997
if ( emailSummary ) {
946
- removedEvents . push ( [ [ calendarEvents [ i ] . summary , calendarEvents [ i ] . start . date || calendarEvents [ i ] . start . dateTime ] , targetCalendarName ] ) ;
998
+ removedEvents . push ( [ [ calendarEvents [ i ] . summary , calendarEvents [ i ] . start . date || calendarEvents [ i ] . start . dateTime , calendarEvents [ i ] . end . date || calendarEvents [ i ] . end . dateTime , calendarEvents [ i ] . location , calendarEvents [ i ] . description ] , targetCalendarName ] ) ;
947
999
}
948
1000
}
949
1001
}
@@ -1161,7 +1213,7 @@ function sendSummary() {
1161
1213
var subject ;
1162
1214
var body ;
1163
1215
1164
- var subject = `GAS-ICS-Sync Execution Summary: ${ addedEvents . length } new, ${ modifiedEvents . length } modified, ${ removedEvents . length } deleted` ;
1216
+ var subject = `${ customEmailSubject ? customEmailSubject : " GAS-ICS-Sync Execution Summary" } : ${ addedEvents . length } new, ${ modifiedEvents . length } modified, ${ removedEvents . length } deleted` ;
1165
1217
addedEvents = condenseCalendarMap ( addedEvents ) ;
1166
1218
modifiedEvents = condenseCalendarMap ( modifiedEvents ) ;
1167
1219
removedEvents = condenseCalendarMap ( removedEvents ) ;
@@ -1170,23 +1222,46 @@ function sendSummary() {
1170
1222
for ( var tgtCal of addedEvents ) {
1171
1223
body += `<br/>${ tgtCal [ 0 ] } : ${ tgtCal [ 1 ] . length } added events<br/><ul>` ;
1172
1224
for ( var addedEvent of tgtCal [ 1 ] ) {
1173
- body += "<li>" + addedEvent [ 0 ] [ 0 ] + " at " + addedEvent [ 0 ] [ 1 ] + "</li>" ;
1225
+ body += "<li>"
1226
+ + "Name: " + addedEvent [ 0 ] [ 0 ] + "<br/>"
1227
+ + "Start: " + formatDate ( addedEvent [ 0 ] [ 1 ] ) + "<br/>"
1228
+ + "End: " + formatDate ( addedEvent [ 0 ] [ 2 ] ) + "<br/>"
1229
+ + ( addedEvent [ 0 ] [ 3 ] ? ( "Location: " + addedEvent [ 0 ] [ 3 ] + "<br/>" ) : "" )
1230
+ + ( addedEvent [ 0 ] [ 4 ] ? ( "Description: " + addedEvent [ 0 ] [ 4 ] + "<br/>" ) : "" )
1231
+ + "</li>" ;
1174
1232
}
1175
1233
body += "</ul>" ;
1176
1234
}
1177
1235
1178
1236
for ( var tgtCal of modifiedEvents ) {
1179
1237
body += `<br/>${ tgtCal [ 0 ] } : ${ tgtCal [ 1 ] . length } modified events<br/><ul>` ;
1180
1238
for ( var modifiedEvent of tgtCal [ 1 ] ) {
1181
- body += "<li>" + modifiedEvent [ 0 ] [ 0 ] + " at " + modifiedEvent [ 0 ] [ 1 ] + "</li>" ;
1239
+ body += "<li>"
1240
+ + ( modifiedEvent [ 0 ] [ 0 ] != modifiedEvent [ 0 ] [ 1 ] ? ( "<del>Name: " + modifiedEvent [ 0 ] [ 0 ] + "</del><br/>" ) : "" )
1241
+ + "Name: " + modifiedEvent [ 0 ] [ 1 ] + "<br/>"
1242
+ + ( modifiedEvent [ 0 ] [ 2 ] != modifiedEvent [ 0 ] [ 3 ] ? ( "<del>Start: " + formatDate ( modifiedEvent [ 0 ] [ 2 ] ) + "</del><br/>" ) : "" )
1243
+ + " Start: " + formatDate ( modifiedEvent [ 0 ] [ 3 ] ) + "<br/>"
1244
+ + ( modifiedEvent [ 0 ] [ 4 ] != modifiedEvent [ 0 ] [ 5 ] ? ( "<del>End: " + formatDate ( modifiedEvent [ 0 ] [ 4 ] ) + "</del><br/>" ) : "" )
1245
+ + " End: " + formatDate ( modifiedEvent [ 0 ] [ 5 ] ) + "<br/>"
1246
+ + ( modifiedEvent [ 0 ] [ 6 ] != modifiedEvent [ 0 ] [ 7 ] ? ( "<del>Location: " + ( modifiedEvent [ 0 ] [ 6 ] ? modifiedEvent [ 0 ] [ 6 ] : "" ) + "</del><br/>" ) : "" )
1247
+ + ( modifiedEvent [ 0 ] [ 7 ] ? ( " Location: " + modifiedEvent [ 0 ] [ 7 ] + "<br/>" ) : "" )
1248
+ + ( modifiedEvent [ 0 ] [ 8 ] != modifiedEvent [ 0 ] [ 9 ] ? ( "<del>Description: " + ( modifiedEvent [ 0 ] [ 8 ] ? modifiedEvent [ 0 ] [ 8 ] : "" ) + "</del><br/>" ) : "" )
1249
+ + ( modifiedEvent [ 0 ] [ 9 ] ? ( " Description: " + modifiedEvent [ 0 ] [ 9 ] + "<br/>" ) : "" )
1250
+ + "</li>" ;
1182
1251
}
1183
1252
body += "</ul>" ;
1184
1253
}
1185
1254
1186
1255
for ( var tgtCal of removedEvents ) {
1187
1256
body += `<br/>${ tgtCal [ 0 ] } : ${ tgtCal [ 1 ] . length } removed events<br/><ul>` ;
1188
1257
for ( var removedEvent of tgtCal [ 1 ] ) {
1189
- body += "<li>" + removedEvent [ 0 ] [ 0 ] + " at " + removedEvent [ 0 ] [ 1 ] + "</li>" ;
1258
+ body += "<li>"
1259
+ + "<del>Name: " + removedEvent [ 0 ] [ 0 ] + "</del><br/>"
1260
+ + "<del>Start: " + formatDate ( removedEvent [ 0 ] [ 1 ] ) + "</del><br/>"
1261
+ + "<del>End: " + formatDate ( removedEvent [ 0 ] [ 2 ] ) + "</del><br/>"
1262
+ + ( removedEvent [ 0 ] [ 3 ] ? ( "<del>Location: " + removedEvent [ 0 ] [ 3 ] + "</del><br/>" ) : "" )
1263
+ + ( removedEvent [ 0 ] [ 4 ] ? ( "<del>Description: " + removedEvent [ 0 ] [ 4 ] + "</del><br/>" ) : "" )
1264
+ + "</li>" ;
1190
1265
}
1191
1266
body += "</ul>" ;
1192
1267
}
0 commit comments