Reputation: 57
I'm modifying a Google-apps-script to create meeting minutes(google doc) from google calendar events. For reasons, rather than importing the name of participants, I have to import their emails and modify the text to make it appear as names. Here is a link to the result (can't post images yet) : Both the first name and last name are completely in lowercase I have no idea how to capitalize the first letter of the First and Last name. Here are the relevant parts of my code:
function createMeetingNotesNextTimePeriod() {
// variables for text format
var emailString = '@companyname';
var deleteString = '';
var repEmail = 'test';
var dot = '\[.]';
var spaceString = ' ';
var repDot = 'test2';
// retrieve all calendar events for time period with @notes string
var events = CalendarApp.getDefaultCalendar().getEvents(now, period_from_now, {search: '@notes'}) ;
// loop through each event an get meeting attributes,
for (var i=0;i<events.length;i++) {
var title = events[i].getTitle();
var eventstart = events[i].getStartTime();
var eventend = events[i].getEndTime();
var location = events[i].getLocation();
var owner = events[i].getCreators();
var ordredujour = events[i].getDescription();
var guestlist = events[i].getGuestList();
// create a google doc with the meeting name as the title
var doc = DocumentApp.create(title);
//write the description of the meeting
doc.getBody().editAsText()
.insertText(0, '\n' + 'Ordre du jour: ' + ordredujour + '\n\n');
//writes the email adresses of the guests
for (var j=0;j<guestlist.length;j++) {
var name = guestlist[j].getEmail();
var guestStatus = guestlist[j].getGuestStatus();
doc.getBody().editAsText()
.insertText(0, name + ': ' + guestStatus +'\n')
}
//Write Guests
doc.getBody().editAsText()
.insertText(0, 'Invités:\n');
//Write the name of the organiser
doc.getBody().editAsText()
.insertText(0, 'Organisateur: ' + owner + '\n\n' );
//writes the location of the meeting
doc.getBody().editAsText()
.insertText(0, 'Location: ' + location + '\n\n');
//writes the meeting ending time
doc.getBody().editAsText()
.insertText(0, 'Fin: ' + eventend + '\n\n');
//writes the meeting starting time
doc.getBody().editAsText()
.insertText(0, 'Début: ' + eventstart + '\n');
//writes the title of the meeting
doc.getBody().editAsText()
.insertText(0, '\n\n' + title + '\n\n')
.setFontSize(0, title.length+1, 14)
.setBold(0, title.length+1, true)
.setForegroundColor(0, title.length+1, '#cc0000');
//replacement of "@companyname.com" and "."
Logger.log(repEmail.replace(emailString, deleteString));
Logger.log(repEmail.replace(new RegExp(emailString), deleteString));
doc.replaceText(emailString,deleteString);
Logger.log(doc.getText());
Logger.log(repDot.replace(dot, spaceString));
Logger.log(repDot.replace(new RegExp(dot), spaceString));
doc.replaceText(dot,spaceString);
} // for loop for each event
} // functionCreateMeetingNotesNextTimePeriod
Upvotes: 1
Views: 231
Reputation: 362
Plese try below code
doc.getBody().editAsText()
.insertText(0, name.split(" ")[0].charAt(0).toUpperCase() + name.split(" ")[0].slice(1) + ' ' + name.split(" ")[1].charAt(0).toUpperCase() + name.split(" ")[1].slice(1) + ': ' + guestStatus +'\n')
}
instead of
doc.getBody().editAsText()
.insertText(0, name + ': ' + guestStatus +'\n')
}
it may work for you.
Upvotes: 1