Calendar --ask at end of day to reschedule events?

I know this might seem more like a plug-in, but…

How hard would it be to script Calendar, so that a certain time each each evening, would

~ show me that day’s events in a dialogue
~ let me click on any that I would want rescheduled for tomorrow

The reason I ask is I’ve been scheduling my To-Do’s – otherwise they tend to pile up and get Never-Done.

But its too easy for events to slip by, even with alarms, so, the need for a catchall that would make sure they don’t.

Excited for any thoughts / suggestions.

Hi AutoFetishist,

That’s a good idea. Because, you can’t mark events as done like you can in Reminders.

What you want to do is not too hard unless you have hundreds of events in one day. :slight_smile: Although, it might be a little harder if you’re considering repeating events.


Hi AutoFetishist,

Here’s a quick script to get you started. It only checks the Home calendar.

-- Event rescheduler.
-- Covers only the Home calendar.
set todayMidnight to date (short date string of (current date))
set tomorrowMidnight to todayMidnight + 24 * hours
tell application "Calendar"
	set todayEvents to every event of calendar "Home" whose (start date) ≥ todayMidnight and (start date) < tomorrowMidnight
	set eventCount to count todayEvents
	if eventCount is 0 then return
	set eventSummaries to {}
	repeat with i from 1 to eventCount
		set thisEvent to item i of todayEvents
		set thisSummary to summary of thisEvent
		set end of eventSummaries to ((i as string) & "." & tab & thisSummary)
	end repeat
end tell
choose from list eventSummaries with title "Calendar Rescheduler" with prompt "Select events to reschedule:" with multiple selections allowed
set userSelection to result
if userSelection is false then
end if
set eventIndices to {}
set tids to AppleScript's text item delimiters
set AppleScript's text item delimiters to {tab}
repeat with thisSel in userSelection
	set thisIndex to text item 1 of thisSel
	set end of eventIndices to thisIndex as integer
end repeat
set AppleScript's text item delimiters to tids
-- From here eschedule events with eventIndices  and todayEvents.
-- You could use same properties for each event except that the start date will be for the next day.
-- You could prompt the user for a new start date.
-- You could open the info window for the event.
-- There are many ways to reschedule.
-- Also, repeating events are very hard to include.

It only covers the Home calendar and doesn’t actually reschedule for obvious reasons. It should be harmless because it doesn’t change anything.

Edited: also, you might include the start date in the choose from list dialog. Events can have the same summary which is confusing.



Infintely grateful.

(btw, why isn’t it “greatful”?