• Stars
    star
    100
  • Rank 333,482 (Top 7 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 7 years ago
  • Updated almost 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sync Multiple Google Calendars into One

Sync Multiple Google Calendars into One

Sync Multiple Google Calendars into One

When you want to sync multiple Google Calendars into one. Currently Google Calendar doesn't have this option and IFTTT/Zapier don't allow an easy way to do this.

This is useful for a collective Busy/Free Calendar or Google Home integration.

Getting Starting

  1. Make sure every calendar you want sync is shared with the account that holds the shared calendar.

  2. Log into the account that holds the shared calendar and go to the Google Apps Scripts website.

  3. Click on "New Project".

  4. Replace everything in Code.gs with the contents of SyncCalendarsIntoOne.gs.

  5. Create a new script file called BatchRequests.gs with the contents of BatchRequests.gs

  6. Update calendarsToMerge, calendarToMergeInto, SYNC_DAYS_IN_PAST, and SYNC_DAYS_IN_FUTURE variables. Be sure to save.

  7. Click the Project Settings Gear icon on the left panel. Check the Show "appsscript.json" manifest file in editor. Go back to code editor on the left, and update its content with appsscript.json.

  8. Click Run. This will load the Authorization required window since it's your first time running the script. Click on Review permissions and give it permission to your account.

  9. Click on Triggers clock icon on the left panel to add a trigger. Click on Add Trigger.

    • You have two choices, "Time-driven" or "From calendar".

    • Time-driven will run every X minutes/hours/etc. Use this if you have calendars that update frequently (more than 5-10 times in a 15 minute timespan)

    • "From calendar" will run when a given calendar updates. Use this if you want instant merging.

      a. Time-driven

      • "Choose which function to run": SyncCalendarsIntoOne
      • "Choose which deployment should run": Head
      • "Select event source": Time-driven
      • "Select type of time based trigger": choose what works for you.
      • Click "Save"

      b. From calendar

      • "Choose which function to run": SyncCalendarsIntoOne
      • "Choose which deployment should run": Head
      • "Select event source": From calendar
      • "Enter calendar details": enter one of the calendars you are merging from.
      • Click "Save"
      • Repeat these steps for every calendar you're merging from.
  10. Enjoy!

Notes

  • Google App Scripts has a daily quote of 5k events created per day. See Quotas for Google Services
  • Be sure to turn off "notifications".

Icon Attributions

event favorite, event unknown, and event warning by arjuazka from the Noun Project Merge by Travis Avery from the Noun Project

License

MIT Š Ali Karbassi

More Repositories

1

netatmo

A node.js module to hook into the netatmo API.
JavaScript
54
star
2

Custom-Form-Elements

A lightweight custom form styler for radio, checkbox and select elements.
JavaScript
16
star
3

todotxt-birdseye

TODO.TXT Bird's Eye View Reporter
Python
7
star
4

PHP-Metacritic

Extracts scores from metacritic.com.
PHP
6
star
5

alfred-toggle-do-not-disturb

Shell
6
star
6

imageoptim

Objective-C
4
star
7

week-09

JavaScript
3
star
8

Firebug.tmbundle

A firebug textmate bundle
3
star
9

flot

A git-svn clone of flot. Let's hope they move over to git / github.
JavaScript
2
star
10

vscode-quickstart

2
star
11

macos-wallpaper-changer

Change macOS wallpaper every hour
Shell
2
star
12

mHTML

SublimeText2 port of minimaldesign's mHTML.tmbundle.
2
star
13

gitstats

An unofficial fork of http://gitstats.sourceforge.net/
JavaScript
2
star
14

Canvas-Animation-Frame

Standalone canvas frame limiter. Set the frames per second (FPS) and let it run.
JavaScript
2
star
15

random-projects

JavaScript
2
star
16

frontend-extention-pack

2
star
17

nerdstream

Shell
2
star
18

typora-easy-writing-theme

CSS
2
star
19

Page-Manager

Wordpress Plugin: Allow users to order pages easily in the page overview and also add some clarity to the overview. Also includes the Show more pages plugin.
JavaScript
2
star
20

stormdb

🌩ī¸ StormDB is a tiny, lightweight, 0 dependency, easy-to-use JSON-based database for NodeJS, the browser or Electron.
JavaScript
2
star
21

Name-That-Quote

1
star
22

grid

JavaScript
1
star
23

cleanmouth

1
star
24

TOSdiff

Shows the diffs of Terms Of Service
PHP
1
star
25

ircjsbot-plugins

Plugins for IRC bot
JavaScript
1
star
26

zip-code-neighborhood

Python
1
star
27

Page-Management

JavaScript
1
star
28

The-Phlog

1
star
29

practice-2

1
star
30

Karbassi.tmbundle

1
star
31

instagram-full-image

Find the large version of instagram photos.
JavaScript
1
star
32

cron

Shell
1
star
33

Overnight-Website-Challenge-Stats

1
star
34

practice-1

1
star
35

twitterCounter

1
star
36

ml5-doodle

JavaScript
1
star
37

apps-script-getNeighborhood

JavaScript
1
star
38

imageinfo

Load an image via drag & drop or URL. Information includes image color and x/y coordinates.
JavaScript
1
star
39

week-04

HTML
1
star
40

vimrc

karbassi's vim
Vim Script
1
star
41

wnaii.com

What Neighborhood Am I In?
JavaScript
1
star
42

email-tracker-filter-list

1
star
43

style-transfer

JavaScript
1
star
44

karbassi.github.io

HTML
1
star
45

test-timer

Swift
1
star
46

git-config

Git Config
1
star
47

canvas-sprite

JavaScript
1
star
48

ircjsbot

IRC bot built on my experimental branch of IRC-js
JavaScript
1
star
49

karbassi

1
star
50

week-03

This is not a real project and shouldn't be used for anything other than a demo.
HTML
1
star
51

simple-configs

Vim Script
1
star
52

color

RGB Color Picker
JavaScript
1
star
53

zsh-config

Shell
1
star
54

nerd.mn

1
star
55

pdf-convert-to-jpg

1
star
56

tmux-config

Tmux config
1
star
57

_

1
star
58

AliArik

What you should know...
1
star
59

today-fm

TodayFM Show Podcast
JavaScript
1
star
60

calculator

JavaScript
1
star
61

dvd

JavaScript
1
star
62

timer

⏰ A simple timer ⏰
JavaScript
1
star
63

node-flower-power-api

A node.js module to hook into the Parrot Flower Power API
JavaScript
1
star
64

Multiple-Content-Blocks

Lets you use more than one content "block" on a template. You only have to insert one tag inside the template, so it's easy to use.
PHP
1
star
65

blog

Ali Karbassi's Blog
CSS
1
star