# data[].attributes.body
Users
- käyttäjätunnus
- salasana
- sähköposti
- id
Google
- api
- sen käyttäjän id

# data[].attributes.body
- äppi lataa Google kalenterin tiedot
- äpin kautta voi lisätä merkintöjä kalenteriin

# data[].attributes.body
1. Laaditaan suunnitelma, vaatimusmäärittelyt ja proto
2. Työ:
- Luodaan perus toiminnat (MVP)
- bäkki (ray)
- Testataan toiminnat (jefu)
- UI:ta (kaikki)
Yleistä:
- Keskustelut käyttämällä GH Issuet.

# data[].attributes.body
F1. Kirjautuminen
F2. Rekisteröityminen
F3. home page:
- synkronisoi kalenteri
- toiminnallisuus tulee perustamaan kalenterin tietoihin, mutta me laaditaan niille erilliset näkymät
- muistuttaa käyttäjää:
- tauoista
- ruokailut
- työteosta
- omat aktiviteetit
- Viestien vastaanotin (esim Discord & Slack)??

# data[].attributes.body
https://developers.google.com/calendar/api/guides/create-events#node.js

# data[].attributes.attachment_link.readable_text
Imagine an app that helps users find the best hiking routes. By adding the hiking plan as a calendar event, the users get a lot of help in staying organized automatically. Google Calendar helps them to share the plan and reminds them about it so they can get prepared with no stress. Also, thanks to seamless integration of Google products, Google Now pings them about the time to leave and Google Maps direct them to the meeting spot on time.

This article explains how to create calendar events and add them to your users' calendars.

Add an event

To create an event, call the events.insert() method providing at least these parameters:

calendarId is the calendar identifier and can either be the email address of the calendar on which to create the event or a special keyword'primary' which will use the primary calendar of the logged in user. If you don't know the email address of the calendar you would like to use, you can check it either in the calendar's settings of the Google Calendar web UI (in the section "Calendar Address") or you can look for it in the result of thecalendarList.list() call.

Specify timed events using the event is the event to create with all the necessary details such as start and end. The only two required fields are thestart and end times. See theevent reference for the full set of event fields.start.dateTime andend.dateTime fields. For all-day events, usestart.date and end.date instead.

In order to successfully create events, you need to:

set your OAuth scope to https://www.googleapis.com/auth/calendar.

ensure the authenticated user has write access to the calendar with the calendarId you provided (for example by callingcalendarList.get() for thecalendarId and checking the accessRole).

You can optionally add event metadata when you create a calendar event. If you choose not to add metadata during creation, you can update many fields using the events.update(); however, some fields, such as the event ID, can only be set during anevents.insert() operation.

Location

Adding an address into the location field enables features such as "time to leave" or displaying a map with the directions.

Event ID

When creating an event, you can choose to generate your own event ID that conforms to our format requirements. This enables you to keep entities in your local database in sync with events in Google Calendar. It also prevents duplicate event creation if the operation fails at some point after it is successfully executed in the Calendar backend. If no event ID is provided, the server generates one for you. See the event ID reference for more information.

Attendees

The event you create appears on all the primary Google Calendars of the attendees you included with the same event ID. If you set sendNotifications to true on your insert request, the attendees will also receive an email notification for your event. See theevents with multiple attendees guide for more information.

The following examples demonstrate creating an event and setting its metadata:

Add Drive attachments to events

You can attach Google Drive files such as meeting notes in Docs, budgets in Sheets, presentations in Slides, or any other relevant Google Drive files to your calendar events. You can add the attachment when you create an event withevents.insert() or later as part of an update such as withevents.patch()

The two parts of attaching a Google Drive file to an event are:

1. Get the file alternateLink URL, title, and mimeType from theDrive API Files resource, typically with the method.

2. Create or update an event with the attachments fields set in the request body and thesupportsAttachments parameter set to true.

The following code example demonstrates how to update an existing event to add an attachment:

You must perform a Important: full sync of all events before enabling the supportsAttachments parameter for event modifications when adding attachments support into your existing app that stores events locally. If you do not perform a sync first, you may inadvertently remove existing attachments from user's events.

Add video and phone conferences to events

You can associate events with Hangouts and Google Meet conferences to allow your users to meet remotely via a phone call or a video call.

The conferenceData field can be used to read, copy, and clear existing conference details; it can also be used to request generation of new conferences. To allow creation and modification of conference details, set the conferenceDataVersion request parameter to 1.

There are three types of conferenceData currently supported, as denoted by the conferenceData.conferenceSolution.key.type:

1. Hangouts for consumers (eventHangout)

2. Classic Hangouts for Google Workspace users (deprecated; eventNamedHangout)

3. Google Meet (hangoutsMeet)

You can learn which conference type is supported for any given calendar of a user by looking at the conferenceProperties.allowedConferenceSolutionTypes in the andcalendarList collections. You can also learn whether the user prefers to have Hangouts created for all their newly created events by checking the autoAddHangouts setting in the collection.

Besides the type, the conferenceSolution also provides the name and the iconUri fields that you can use to represent the conference solution as shown below:

You can create a new conference for an event by providing a createRequest with a newly generated requestId which can be a random string. Conferences are created asynchronously, but you can always check the status of your request to let your users know what's happening.

For example, to request conference generation for an existing event:

The immediate response to this call might not yet contain the fully-populated conferenceData; this is indicated by a status code of pending in the status field. The status code changes to success after the conference information is populated. The entryPoints field contains information about which video and phone URIs are available for your users to dial in.

If you wish to schedule multiple Calendar events with the same conference details, you can copy the entire conferenceData from one event to another.

Copying is useful in certain situations. For example, suppose you are developing a recruiting application that sets up separate events for the candidate and the interviewer-you want to protect the interviewer's identity, but you also want to make sure all participants join the same conference call.

You must perform a Important: full sync of all events before enabling the conference data support (by setting of the conferenceDataVersion request parameter to 1 for event modifications) when adding conference support into your existing app that stores events locally. If you do not perform a sync first, you may inadvertently remove existing conferences from users' events.

# data[].attributes.attachment_link.title
Create Events | Google Calendar API | Google Developers

# data[].attributes.attachment_link.description
Imagine an app that helps users find the best hiking routes. By adding the hiking plan as a calendar event, the users get a lot of help in staying organized automatically. Google Calendar helps them to share the plan and reminds them about it so they can get prepared with no stress.

# data[].attributes.body
nextjs(react), mongodb, express, typescript

# data[].attributes.body
Dynaaminen visualisaatio

# data[].attributes.body
Keskustelu Rajapinnan kanssa. (MongoDB)

# data[].attributes.body
- Äppi, joka auttaisi käyttäjäänsä työpäivän organisaatiossa ja keskittymisessä.
- Verkkoversio
- tietokannallinen
-