c34f7862创建于 1月15日历史提交
README.md

Google Calendar API Integration

This handler integrates with the Google Calendar API to make event data available to use for model training and predictions.

Example: Automate your Calendar

To see how the Google Calendar handler is used, let's walk through a simple example to create a model to predict future events in your calendar.

Connect to the Google Calendar API

We start by creating a database to connect to the Google Calendar API. Currently, there is no need for an API key:

However, you will need to have a Google account and have enabled the Google Calendar API. Also, you will need to have a calendar created in your Google account and the credentials for that calendar in a json file. You can find more information on how to do this here.

Optional: The credentials file can be stored in the google_calendar handler folder in the mindsdb/integrations/google_calendar_handler directory.

CREATE
DATABASE my_calendar
WITH  ENGINE = 'google_calendar',
parameters = {
    'credentials': 'C:\\Users\\panagiotis\\Desktop\\GitHub\\mindsdb\\mindsdb\\integrations\\handlers\\google_calendar_handler\\credentials.json'
};    

This creates a database called my_calendar. This database ships with a table called events that we can use to search for events as well as to process events.

Searching for events in SQL

Let's get a list of events in our calendar.

SELECT id,
       created,
       creator,
       summary
FROM my_calendar.events
WHERE start_time > '2023-02-16'
  AND end_time < '2023-04-09' LIMIT 20;

Creating Events using SQL

Let's test by creating an event in our calendar.

INSERT INTO my_calendar.calendar (start_time, end_time, summary, description, location, attendees, reminders)
VALUES ('2023-02-16 10:00:00', '2023-02-16 11:00:00', 'MindsDB Meeting', 'Discussing the future of MindsDB',
        'MindsDB HQ', '')

Updating Events using SQL

Let's update the event we just created.

UPDATE my_calendar.events
SET summary     = 'MindsDB Meeting',
    description = 'Discussing the future of MindsDB',
    location    = 'MindsDB HQ',
    attendees   = '',
    reminders   = ''

Or you can update all events in a given id range.

UPDATE my_calendar.events
SET summary     = 'MindsDB Meeting',
    description = 'Discussing the future of MindsDB',
    location    = 'MindsDB HQ',
    attendees   = '',
    reminders   = ''
WHERE event_id > 1
  AND event_id < 10

If you have specified only one aspect of the comparison (> or <), then the start_id will be end_id - 10 ( if start_id is not defined) and the end_id will be start_id + 10 (if end_id is defined).

Deleting Events using SQL

Let's delete the event we just created.

DELETE
FROM my_calendar.events
WHERE id = '1'

Or you can delete all events in a given id range.

DELETE
FROM my_calendar.events
WHERE event_id > 1
  AND event_id < 10

If you have specified only one aspect of the comparison (> or <), then the start_id will be end_id - 10 ( if start_id is not defined) and the end_id will be start_id + 10 (if end_id is defined).

Creating a model to predict future events

Now that we have some data in our calendar, we can do smarter scheduling, event recommendations, and other automations.

CREATE
PREDICTOR predict_future_events
FROM my_calendar.events
PREDICT start_time, end_time, summary, description, location, attendees, reminders
WHERE timeMin = '2023-02-16'
  AND timeMax = '2023-04-09'