Last active
August 29, 2015 14:15
-
-
Save beezly/84c6300982d9ec0cf53d to your computer and use it in GitHub Desktop.
Create Calendar Events when I get parking receipt messages. Depends on receiving an email in the right format from the parking payment provider.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function processParkingMessages() { | |
// get all unread messages labelled as Parking | |
var parkingThreads = GmailApp.getUserLabelByName('Parking').getThreads(); | |
var parkingThreadMessages = parkingThreads.map(function(thread) { return thread.getMessages(); }); | |
var parkingMessages = []; | |
var parkingMessages = parkingMessages.concat.apply(parkingMessages, parkingThreadMessages); | |
var unreadParkingMessages = parkingMessages.filter(function(message) { return message.isUnread(); }); | |
// Map through all the unread parking messages and search for a date/time in the appropriate format. | |
unreadParkingMessages.map(function(message) { | |
// Stop Parking messages are in the following format | |
// Stop Parking: 2015/02/15 3:04PM | |
// /Stop\ Parking:\ (\d+)\/(\d+)\/(\d+)\ (\d+):(\d+)([AP]M)/ | |
var body = message.getBody(); | |
var res = body.match(/Stop\ Parking:\ (\d+)\/(\d+)\/(\d+)\ (\d+):(\d+)([AP]M)/); | |
if (res) { | |
var year = parseInt(res[1]); | |
var month = parseInt(res[2]); | |
var day = parseInt(res[3]); | |
var hour = parseInt(res[4]); | |
var minute = parseInt(res[5]); | |
if (res[6] == 'PM') { | |
hour+=12; | |
} | |
// Curse the person who decided the month was zero-indexed | |
var startTime = new Date(year, month-1, day, hour, minute); | |
Logger.log("Creating a Calendar Entry at "+ startTime); | |
var event = CalendarApp.getDefaultCalendar().createEvent('Parking Expires',startTime,startTime); | |
event.addPopupReminder(10); | |
Logger.log('Event ID: ' + event.getId()); | |
Logger.log('Created at: ' + event.getStartTime()); | |
message.markRead(); | |
} | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment