teleren/devto huggingface dataset:
Google Calendar - Usage Limits Exceeded
Tags: google, calendar, spam
Published: 2024-01-24 19:59:16

---
title: Google Calendar - Usage Limits Exceeded
published: true
date: 2024-01-24 00:00:00 UTC
tags: Google, calendar, spam
canonical_url: https://justin.poehnelt.com/posts/calendar-api-usage-limits-exceeded/
---

When creating events in Google Calendar, many developers come across the error message: **Calendar usage limits exceeded**. This happens even when they are not exceeding the API quota.

## Error - usage limits exceeded

The full error response is the following:

```js
{
      domain: 'usageLimits',
      reason: 'quotaExceeded',
      message: 'Calendar usage limits exceeded.'
}
```

The corresponding Calendar API request might look like the following:

```http
POST https://www.googleapis.com/calendar/v3/calendars/primary/events
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json
Content-Type: application/json
{
  "attendees": [
    {
      "email": "foo@example.com"
    },
    {
      "email": "bar@example.com"
    }
  ],
  "end": {
    "date": "2024-01-02"
  },
  "start": {
    "date": "2024-01-01"
  },
  "summary": "A Calendar Event"
}
```

## Cause - spam prevention

**The reason for this is to prevent spam** and is triggered by the following:

- Sending notifications to attendees
- Including attendees that are external to the Google Workspace domain, e.g. inviting `someone@example.com` from `someone@example.org`.

## Solution - remove attendees

The problem is only fixed by removing the attendees and using an alternative approach. In the case of external domains, and sending notifications, the following are some alternatives:

- Provide a template link for users to create an event in their Google Calendar.
- Use `.ics` files to create events in any calendar application.
- Use OAuth to modify the user’s calendar directly.
- Share a public Google Calendar and add events to it.
- Use the [publish event feature](https://support.google.com/calendar/answer/41207) in Google Calendar to embed HTML.

Google Calendar template links look like the following:

```http
https://calendar.google.com/calendar/r/eventedit
  ?action=TEMPLATE
  &dates=20230325T224500Z%2F20230326T001500Z
  &stz=Europe/Brussels
  &etz=Europe/Brussels
  &details=EVENT_DESCRIPTION_HERE
  &location=EVENT_LOCATION_HERE
  &text=EVENT_TITLE_HERE
```

## Resources

- [Avoid Calendar use limits](https://support.google.com/a/answer/2905486)
- [Google Calendar API public issue tracker](https://issuetracker.google.com/issues?q=status:open%20componentid:191627%2B%20%22Calendar%20usage%20limits%20exceeded%22)
- [Calendar sharing through the API](https://developers.google.com/calendar/api/concepts/sharing)
- [Inviting attendees to an event](https://developers.google.com/calendar/api/concepts/inviting-attendees-to-events)
- [Google Calendar template link](https://support.google.com/calendar/answer/41207?hl=en)
Setup Portainer for Server App
Tags: webdev, aws, devops, javascript
Published: 2024-01-24 00:00:00

In this section, we will add Portainer to help us in managing our Docker containers. You can find more details about it [here](https://www.portainer.io/). To integrate Portainer into our EC2 project, we can follow these steps:


# Install Portainer Container

First, let’s connect to our EC2 instance.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o4c2a0rqws4gmy91k4gc.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jauwzaxg4wgpskaugeq8.png)

Next, create a new Docker volume for Portainer:

```bash
docker volume create portainer_data
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/klydik0j525wk7qmsefq.png)

Now, let’s run the Portainer container:

```bash
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
```


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s9zwbecowvmvu7oj2scm.png)

Then, verify if the container is running.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lzb6x5j9lcwkqq00abmn.png)

# Open Port for Portainer

Portainer is running on port `9443`, so we need to add new port inside our security groups.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sxkoranx18f0vjk9fj06.png)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ut9my8tae2ge69ynoaq8.png)


Let’s select `Custom TCP` and set the port range to `9443`, and for the source set to  `Anywhere-IPv4`, then click `Save rules` button to finish the configuration.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/14evncwa082duwtlfdmq.png)

# Login to Portainer

To log in to Portainer, open the public IP of our EC2 then add `9443` port. If we are connecting for the first time, your browser might block access. Click the `Show advanced` button or a similar option depending on your browser, then click the link bellow.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3nknbwzjnl26nqxm0rvx.png)



Then, in Portainer page, we need to add username and password.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fqgdnpvuirx4743nbwca.png)



After you finish the previous process, we can look around inside the dasboard. In `Home` section we can click `local` environments to see the currently running containers.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tz14l2rbo3s2cmlw14g3.png)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ba4ff6kzla81ktmeudcl.png)


When you open the `Stacks` page, we can see that we have limited control to our project. For the next part, we will migrate our project inside Portainer so we can manage it easily.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wuc31sks9b5ufq7ckbqu.png)
Day 900 : Hour Glass
Tags: hiphop, code, coding, lifelongdev
Published: 2024-01-23 23:10:57

_liner notes_:
- Professional : Had a couple of meetings. Got to show a demo to the team to show them what I'm seeing. Got to meet with my manager to plan out what I'll be doing this week and some other stuff. Worked on converting Angular, React and Vue sample apps to use new credentials. Luckily they are using Web Components so it was quick to do. Writing up the new documentation and taking screenshots is taking longer. haha It's like watching sand slip through an hour glass.

- Personal : Last night, I went through tracks for the radio show and looked at lots of land. Definitely went down a rabbit hole trying to find property where they are not guaranteed to be flooded in a few years. haha. Emailed some realtors. Realized it was super late and went right to bed.

![A night sky full of stars with a large dead tree in the foreground on the left side. There is a mountain in the background.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sl34vueegnrn99zo4h20.jpg)

Going to go through more tracks and look at more land. I want to do a quick test of something to see if it makes sense to build on top of. I kind of did it a couple of years ago, but the app I used changed and I have no clue where anything is. haha. I'll see how far I can get.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube 1NZZcBKgivU %}
AI-Enhanced Architecture Design with Bob
Tags: ai, gpt3, cloud, terraform
Published: 2024-01-23 23:00:00

🔍 **Challenge:** Creating a new cloud architecture and generating the corresponding Terraform code can be intricate and time-consuming.

✅ **Solution:** Brainboard's AI assistant, Bob, revolutionizes this process, guiding you from prompt creation to high-level design and code generation.

👣 **Steps to Success:**


![generate AWS cloud architecture with AI](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zjaxyumtma63gij9c7a4.png)

1. **Prompt:** Craft the ideal ChatGPT prompt for Bob to conceptualize a new architecture.
2. **Architect:** Bob generates Terraform code, offering feedback for any adjustments needed.
3. **Generate:** Bob creates a detailed design diagram and corresponding Terraform code.
4. **Configure:** Seamlessly transition to configuring and deploying your infrastructure with Brainboard.

🔗 **Watch it Happen:** See Bob in action [here](https://www.youtube.com/watch?t=42&v=D9py5JhzWAo&embeds_widget_referrer=https%3A%2F%2Fwww.brainboard.co%2F&embeds_referring_euri=https%3A%2F%2Fcdn.embedly.com%2F&embeds_referring_origin=https%3A%2F%2Fcdn.embedly.com&feature=emb_imp_woyt) or [register to the waiting list](https://share.hsforms.com/1SvYIzG0pSOSCkSy3Y3-xtQ4545n).
Top 5 resources for design inspiration
Tags: webdev, design, beginners, programming
Published: 2024-01-23 23:00:00

Hey guys 👋, In this article, I'm excited to present a thoughtfully curated compilation of design resources that I am using to get inspiration for my next project. These are a must-know for developers seeking inspiration to create stunning websites. Special thanks to @huyng for featuring a video on this topic—I'll include the link at the end. Let’s dive right in 😉

## 1. [minimal.gallery](https://minimal.gallery/)


![Minimal gallery](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/itjhhrxpd3qrlzmnhknw.png)

Minimal Gallery is a platform that curates a collection of simple, clean, and impactful designs. It serves as an excellent resource for individuals who seek inspiration in minimalism for their web design projects.

## 2. [darkmodedesign.com](https://www.darkmodedesign.com/)


![dark mode design](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r9qrqoaxgj3sbvytsla4.png)

Dark Mode Design is a destination for websites that embrace dark-themed aesthetics. Explore here for inspiration on how to implement dark modes, adding depth and sophistication to your web projects.

## 3. [awwwards.com](https://www.awwwards.com/)


![awwwards](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y892oze7w8ljpb9dvu3n.png)

Awwwards is a prestigious platform where web designers showcase their award-winning websites. It's an invaluable resource for learning from the best in the industry and pushing the boundaries of your own creativity.

## 4. [refero.design](https://refero.design/)


![refero](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8dc4jnwndu2cop6a439.png)

At Refero Design, discover innovative and groundbreaking design inspirations that challenge traditional norms. It's a go-to resource for those looking to infuse creativity and uniqueness into their projects.

## 5. [stacksorted.com](https://stacksorted.com/buttons)


![stacksorted](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1krzao985ewiap2txrch.png)

StackSorted Buttons focuses on simplifying the development process and refining button and other  design skills. This resource is tailored for individuals who want to master the art of creating compelling and effective buttons, cards, grids for engaging website interactions.

## Conclusion

That’s all guys, and I appreciate you taking the time to read it 🙏. I trust it has provided you with fresh destinations to explore!

Feel free to share any additional useful websites by leaving a comment 📩.

Here is also a link to the video if you want more details about each resource 👇🏽

[The ONLY resources you need to design award winning websites](https://youtu.be/CEWQIzjKvoE?si=F7JoS60Ax16BMSKN)

Alright, guys. Till next time 🙂
Telegram Mini App: все возможности веб-приложения прямо у вашего бота
Published: 2024-01-23 22:25:51

Как сделать telegram бота сопоставимым по функционалу с полноценным веб-приложением? Просто запихнуть веб-приложение прямиком внутрь бота! Сегодня посмотрим на технологию Telegram Mini App и её использование с опорой на 1С

[https://infostart.ru/1c/articles/1999597/](https://infostart.ru/1c/articles/1999597/)
Насколько глубок 1С-ный GitHub?
Published: 2024-01-23 22:10:11

Open-source проекты - важная часть мира программного обеспечения. 1С привычно держится немного в стороне от глобальных трендов, но бросить холодный статистический взгляд на положение дел мне показалось небезынтересным.

[https://infostart.ru/1c/articles/2018459/](https://infostart.ru/1c/articles/2018459/)
Task 1
Published: 2024-01-23 22:01:51

**1. What is Software Testing?**
Checking the software created by the developer is working as per required specification for the customer is called Software Testing and also it should be a bug free software.

**2. What we need to know about Software Testing?**
1. The developed software, met all the required specification for the customer.
2. It should be a bug/defect free software.
3. To increase our confidence level at customer place.
4. Also it has some process need to follow in software testing, they are

- Planning
- Analyze
- Design
- Implementation
- Report

**3. What is relevance of software testing?**
- Software should be developed in good Quality
- Customer Satisfaction
- Cost Effectiveness
- Early deliverables
- Highly Secured
- Increasing Confidence level
Amazone Polly Overview
Tags: aws, deeplearning, cloud, ai
Published: 2024-01-23 20:32:00

## What is Polly
Polly is the opposite of Transcribe, because it **generates an audio**.
You turn text into speech using deep learning.
This allows you to create applications that will talk.

## What Amazon Polly can do
It can use **Lexicon** and **SSML**.

_Lexicon_ is to customize the pronunciation of words with Pronunciation lexicons.
For example, if there is a _stylized word_ such as Ayad but the "A" is a "3", the Amazon Polly image might say "3yad" which is not how it should be pronounced; it should be pronounced "Ayad", and you can create a lexicon for this.

Or for example, for _acronyms_, for example, any time it sees AWS, instead of saying "A-W-S" it should say the full "Amazon Web Services."
So then you upload the lexicons and you use them in the Synthesize Speech operation.

The second feature you need to know about is the _SSML_ feature, which is called **Speech Synthesis Markup Language**, and this enables more customization to how speech is made.
So you can, for example, _emphasize on specific words_ or phrases, or you use _phonetic pronunciation_, or you want to include _breathing sounds or whispering_, or you want to use the _Newscaster speaking style_.

So all of it can be used using this Markup Language, and so instead of generating the speech from plain text you can include a whisper and it will start whispering, and so on, okay?

So, remember, for pronunciation of stylized words or acronyms, use Pronunciation lexicons, and for more customization on how words are being pronounced, for example, whispering or phonetic pronunciation, and so on, then use the SSML Markup Language.


[GitHub](https://github.com/a00ayad00)
[LinkedIn](https://www.linkedin.com/in/a00ayad00)
[Facebook](https://m.facebook.com/a00ayad00)
[Medium](https://a00ayad00.medium.com/)
Props: Comunicação entre Componentes Pai e Filho no React
Tags: react, programming, beginners, frontend
Published: 2024-01-23 21:46:45



No desenvolvimento de aplicações React, uma das funcionalidades chave é a comunicação entre componentes. A principal maneira de um componente interagir com outro é através das suas propriedades, conhecidas como `props`.

💬 **Comunicação através de Props**

- As `props` são a forma primária de passagem de dados entre componentes, permitindo que um componente pai envie dados para um componente filho.
- Além de dados, é possível passar funções como `props`, facilitando a comunicação bidirecional entre componentes.

👨‍💻 **Exemplo com Componente Pai: `Post`**

```javascript
export const Post = ({ author, publishedAt, content, deleteComment }: PostProps) => {
  const [comments, setComments] = useState([
    "Lembre-se, cada truque merece um petisco! 🍖",
    // outros comentários
  ]);

  return (
    <div>
      {/* detalhes do post */}
      {comments.map((comment, index) => (
        <Comment
          key={index}
          content={comment}
          onDeleteComment={() => deleteComment(index)}
        />
      ))}
    </div>
  );
};
```

Neste exemplo, `Post` é o componente pai que mantém o estado dos comentários e passa uma função `onDeleteComment` como `prop` para o componente filho `Comment`.

✅ **Boas Práticas com Props**

Ao passar funções como `props`, é uma boa prática nomeá-las iniciando com `on`, indicando que são eventos ou callbacks. Por exemplo, `onDeleteComment`.

🧒 **Exemplo com Componente Filho: `Comment`**

```javascript
export const Comment = ({ content, onDeleteComment }: CommentProps) => {
  return (
    <div>
      {content}
      <button onClick={onDeleteComment}>Excluir</button>
    </div>
  );
};
```

O componente `Comment` recebe a `prop` `onDeleteComment` e a utiliza para permitir que um usuário exclua um comentário.

🔗 **Repositórios dos Componentes:**

- Comment: [GitHub - Comment](https://github.com/RayzaOliveira/feed/blob/main/src/components/Comment.tsx)
- Post: [GitHub - Post](https://github.com/RayzaOliveira/feed/blob/main/src/components/Post.tsx)

🎯 **Conclusão**

Entender como as `props` funcionam é fundamental para criar aplicações React eficientes e manuteníveis. Elas permitem uma comunicação clara e direta entre componentes, facilitando o gerenciamento de estados e a execução de ações específicas. Ao adotar boas práticas na nomeação e uso de `props`, desenvolvedores podem garantir um código mais legível e fácil de manter. Assim, as `props` se tornam uma ferramenta poderosa no kit de ferramentas de qualquer desenvolvedor React, permitindo a construção de aplicações interativas e dinâmicas.
Chaingateway.io - Power your apps with our blockchain API
Tags: cryptocurrency, blockchain, api
Published: 2024-01-23 21:27:55

Chaingateway-io is a REST Blockchain API that allows you to automate interacting with the Ethereum, Polygon, Bitcoin, Binance Smart CHain, and Tron Blockchain. So, instead of using a wallet to manually send coins to many addresses, you can automate this process with our solution. You can also use Chaingateway-io to securely store and manage the funds of your users. In addition, Chaingateway-io offers live notifications for deposits and access to a wide range of Blockchain Data.

[https://chaingateway.io](https://chaingateway.io)
FIRMWALL CYBER SECURITY - RELIABLE CRYPTO RECOVERY TEAM
Published: 2024-01-23 21:27:26

I was unaware of the many conmen in the crypto world when I invested a huge amount of my savings into a crypto trading platform to make profits from my investments, little did I know that I was being cheated on my investments. The fake crypto platform refused to let me withdraw my money and insisted I pay a chunk of my money for insurance and other ridiculous fees. I thought I had lost everything until I was told about Firmwall Cyber Security Service, a well-known crypto recovery company and data security company, I contacted Firmwall Cyber Security immediately and provided them with the necessary information, and within a few hours, my crypto was released and I got back access to my account. I was truly amazed and I’m here to recommend their services to everyone who needs to recover crypto or has any issues with their crypto wallet.
Their team can contacted via the following: E-mail(Firmwallcyber@techie.com) Web(https://firmwallcyber.wixsite.com/firmwall) What sapp(+  1 937 542  0667)
Demystifying Promise.all and Promise.allSettled in JavaScript
Published: 2024-01-23 21:25:11

Promises have become an integral part of asynchronous JavaScript, offering elegant ways to handle multiple asynchronous operations. Today, let's unravel the mysteries of `Promise.all` and `Promise.allSettled`.

**The first: `Promise.all`**
Consider a scenario where you have multiple promises, and you want to know when they all fulfill successfully. Enter `Promise.all`. This method takes an array of promises and returns a new promise that fulfills with an array of results when all input promises have fulfilled. If any promise rejects, the entire operation is rejected.
Example:
```js
const promise1 = Promise.resolve('One');
const promise2 = Promise.resolve('Two');
const promise3 = Promise.resolve('Three');

Promise.all([promise1, promise2, promise3])
  .then(values => console.log(values))
  .catch(error => console.error(error));

/*
In this example, the then block logs ['One', 'Two', 'Three'] since all promises fulfill successfully.
*/
```



**The second: `Promise.allSettled`**
Now, what if you want to know the outcome of every promise, regardless of whether it fulfills or rejects? That's where `Promise.allSettled` shines. This method also takes an array of promises but doesn't short-circuit on the first rejection. Instead, it waits for all promises to settle (fulfill or reject) and then provides an array of result objects.
Example:
```js
const promise1 = Promise.resolve('One');
const promise2 = Promise.reject('Two failed');
const promise3 = Promise.resolve('Three');

Promise.allSettled([promise1, promise2, promise3])
  .then(results => console.log(results))
  .catch(error => console.error(error));


/* In this example, the then block logs an array of result objects:
[
  { status: 'fulfilled', value: 'One' },
  { status: 'rejected', reason: 'Two failed' },
  { status: 'fulfilled', value: 'Three' }
]
*/

```


In summary, `Promise.all` is your go-to for a race scenario where all promises must fulfill successfully, while `Promise.allSettled` is your ally when you want to gracefully handle both fulfillment and rejection, providing insights into every promise's outcome.

Next time you're juggling multiple promises, choose the tool that aligns with your desired behavior.

**Console You Later!**
New webinar available - Getting Started with Okta Workflows
Tags: okta, oktaworkflows, nocode, automation
Published: 2024-01-23 20:46:01

Many thanks to @maxkatz for having me on today to deliver a webinar for folks who are getting started with Okta Workflows.


![Webinar overview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wztwo70ux2er6jv0mme.jpg) 

You can check out the recording here: [Getting Started - User Activated Notification Flow](https://www.crowdcast.io/c/getting-started-okta-workflows-notify-user-activated-flow) - I also encourage you to follow our [Crowdcast](https://www.crowdcast.io/@oktaworkflows) page to view replays of past events and join us again as we cover other topics in the future. 

---

I covered how you can integrate Slack (or another messaging service such as MS Teams) with Okta and Okta Workflows to deliver real-time, dynamic notifications based on events happening in your Okta tenant. 

Notification flows are an easy win and a great way to ease into using Okta Workflows - they're quick to configure and can deliver a lot of value to your teams. 

We built a flow that welcomes users who have been activated in Okta, as well as notifying their manager that they're on board and encouraging them to say hello. 

To show how easy it is to customize or extend these use cases, we also built a quick example that shows how you could alert your security team if an end user reports suspicious activity and were able to easily extend the flow to clear the user's Okta sessions and add them to a group with tight controls.

---

As always, feel free to join us for future webinars, or join a session of our [Community Office Hours](https://calendly.com/oktaworkflows) to see what other people are working on, ask questions about something you're building, or just say hi.