VISCAL is a Google Apps Script that enables bi-directional synchronization between Google Sheets and Google Calendar. It allows you to pull data from a Google Calendar to a Google Sheet for editing and then push the edited data back to the calendar.
- Pull events from Google Calendar to Google Sheets
- Edit events in Google Sheets
- Push updated events back to Google Calendar
- Add, update, and delete events
- Filter events
- Synchronize specific event fields
- Open a new Google Sheet.
- Click on
Extensions
>Apps Script
. - Delete the default
Code.gs
file. - Click on
File
>New
>Script
and name the fileVISCAL
. - Copy the entire script from the VISCAL GitHub repository and paste it into the
VISCAL.gs
file. - Save the script by clicking on the floppy disk icon or pressing
Ctrl + S
(orCmd + S
on macOS). - Close the Apps Script editor.
- After setting up the script, go back to your Google Sheet and refresh the page via the browser.
- Click on
Google Calendar Sync
in the menu bar. - Click on
Refresh
to pull the events from your calendar into the sheet. - Authorize the script - This is a one time only item.
- Click on
Google Calendar Sync
in the menu bar. - Click on
Refresh
to pull the events from your calendar into the sheet. - Three should now be an
Options
Sheet available. See below for confuration details. - Edit the events in the
Google Calendar
sheet as needed.- Update events by changing the
ACTION
column toUPDATE
. - Delete events by changing the
ACTION
column toDELETE
.
- Update events by changing the
- Add new rows for new events.
- Add new events by changing the
ACTION
column toADD
.
- Add new events by changing the
- Click on
Google Calendar Sync
>Synchronize
to push the changes back to your calendar.
- Calendar ID: Specifies the calendar to be synced with the Google Sheets document.
- Start Date: Sets the start date for the range of events to be fetched from the Google Calendar.
- End Date: Sets the end date for the range of events to be fetched from the Google Calendar.
- Search Query: Allows users to filter events by a specific search term or phrase. Only events containing the specified query will be imported into the Google Sheets document.
- Filter Variable: This can be used to implement custom filtering logic based on specific event properties.
- Sync Fields: This setting specifies the event properties to be synced between the Google Calendar and the Google Sheets document.
To modify the configuration settings, simply change the value in the second column of the corresponding row in the Options
sheet. After making the necessary changes, Refresh
under the Google Calendar Sync
menu to update the Google Calendar
sheet based on the new settings.
- This script is designed for use with Google Sheets and Google Calendar. It may not work with other spreadsheet or calendar applications.
- The script only supports bi-directional synchronization between a single calendar and a single sheet.
- The script may not work as expected if there are too many events or if the calendar has a large number of recurring events.
- The script does not support event attendees or reminders.
- The synchronization process may take some time depending on the number of events and the complexity of the data.
Contributions to the VISCAL project are welcome! If you have improvements, bug fixes, or new features you'd like to see added, please submit a Pull Request.
If you find VISCAL helpful and would like to support its development, consider making a donation to the project. Every little bit helps!
This project is licensed under the MIT License. See the LICENSE file for details.