This is about the development of this repository.
Feel free to open an issue for bugs, feature requests or any other question.
- Node.js and NPM installed
- Command Line Apps Script Projects installed globally
-
Clone this repository:
git clone https://github.com/scriptPilot/google-calendar-synchronization.git
-
Login to Google Apps Script CLI:
clasp login
-
Create a new Google Apps Script project:
clasp create --type standalone --rootDir src --title "Google Calendar Synchronization"
-
Move the hidden
.clasp.json
file to the project root:mv src/.clasp.json .clasp.json
-
Create a file
src/onStart.js
:function onStart() { sync('Family', 'Work', 0, 2, (targetEvent, sourceEvent) => { targetEvent.summary = sourceEvent.summary return targetEvent }) }
-
Create two Google Calendar
Work
andFamily
.
-
Apply changes to the code and documentation.
-
Push the changes to the Cloud IDE and open the project:
clasp push && clasp open
-
Test the changes in the Cloud IDE according to the documentation.
-
Build the
dist/Code.gs
file:npm run build
-
Update the changelog.
-
Set a new version tag in GitHub Desktop.
-
Commit and push the changes to GitHub.
- Initial release
onCalendarUpdate
function removed from theCode.gs
file.clasp.json
file removed from the repository
- Simplified algorithm to avoid issues
cleanCalendar
function added
resetScript
function removed
- synchronize modified events only
- consider hidden calendars
- do not log skipped events
resetScript
function added
- lock script to prevent parallel execution
- limit requests to avoid to exceed the quota
- added many helper functions
- use default arguments for previous days, next days, correction function
- improved documentation
- forgot the Code.gs update in v3
- add date and source to build file
- highly improved performance for event series
- simplified installation and configuration
- new functions
sync()
,stop()
andclean()
- time-based synchronization to overcome race conditions
- calculate recurring instances instead of requesting them from the Google Calendar API
- fix issue with re-creation of recurring events on every sync run
- fix issue where synchronization continues after stop() was called
- added helper functions for pastDays / nextDays
- external libraries included in the source code
- fix issue where a sync error prevent the creation of the next trigger
- fix issue where script fails with timeout and no trigger is set