@pipedream/microsoft_outlook_calendar 0.2.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Overview
2
2
 
3
- With the Microsoft Outlook API, you can build a wide range of applications and
4
- services that work with Outlook. The Microsoft Outlook Calendar app helps you
5
- manage your calendar and schedule appointments.
3
+ The Microsoft Outlook Calendar API provides programmatic access to a user's calendar events, allowing for the creation, retrieval, update, and deletion of events within Outlook calendars. With Pipedream, you can integrate these calendar operations into workflows that automate tasks involving scheduling, event management, and coordination with other services. Whether it's triggering actions when new events are created, syncing calendar events with other scheduling tools, or managing attendees, Pipedream's serverless platform enables you to build custom automations with minimal overhead.
4
+
5
+ # Example Use Cases
6
+
7
+ - **Automated Event Reminder Emails**: Trigger a Pipedream workflow whenever a new event is added to an Outlook Calendar. The workflow could send a reminder email via a service like SendGrid or Gmail to all the attendees a day before the event occurs, ensuring everyone is prepped and on time.
8
+
9
+ - **Cross-Platform Calendar Sync**: Sync events between Microsoft Outlook Calendar and Google Calendar. When an event is created or updated in Outlook, a Pipedream workflow can create or update a corresponding event in Google Calendar. This ensures that users who operate across different platforms have unified schedules.
10
+
11
+ - **Meeting Room Availability Checker**: Monitor your Outlook Calendar for new meetings and automatically check the availability of meeting rooms using a service like Google's G Suite Admin SDK. If a room is available, the workflow reserves it and updates the event with the room's details. If not, it could notify the organizer to select a different room or time.
@@ -0,0 +1,71 @@
1
+ import microsoftOutlook from "../../microsoft_outlook_calendar.app.mjs";
2
+
3
+ export default {
4
+ key: "microsoft_outlook_calendar-get-schedule",
5
+ name: "Get Free/Busy Schedule",
6
+ description: "Get the free/busy availability information for a collection of users, distributions lists, or resources (rooms or equipment) for a specified time period. [See the documentation](https://learn.microsoft.com/en-us/graph/api/calendar-getschedule)",
7
+ version: "0.0.2",
8
+ type: "action",
9
+ props: {
10
+ microsoftOutlook,
11
+ schedules: {
12
+ type: "string[]",
13
+ label: "Emails",
14
+ description: "A list of emails of users, distribution lists, or resources. For example: `[ \"adelev@contoso.com\" , \"meganb@contoso.com\" ]`",
15
+ },
16
+ start: {
17
+ propDefinition: [
18
+ microsoftOutlook,
19
+ "start",
20
+ ],
21
+ },
22
+ end: {
23
+ propDefinition: [
24
+ microsoftOutlook,
25
+ "end",
26
+ ],
27
+ },
28
+ timeZone: {
29
+ propDefinition: [
30
+ microsoftOutlook,
31
+ "timeZone",
32
+ ],
33
+ },
34
+ availabilityViewInterval: {
35
+ type: "integer",
36
+ label: "Availability View Interval",
37
+ description: "Represents the duration of a time slot in minutes in an availabilityView in the response. The default is 30 minutes, minimum is 5, maximum is 1440.",
38
+ optional: true,
39
+ },
40
+ },
41
+ methods: {
42
+ getSchedule(opts = {}) {
43
+ return this.microsoftOutlook._makeRequest({
44
+ method: "POST",
45
+ path: "/me/calendar/getSchedule",
46
+ ...opts,
47
+ });
48
+ },
49
+ },
50
+ async run({ $ }) {
51
+ const { value } = await this.getSchedule({
52
+ $,
53
+ data: {
54
+ schedules: this.schedules,
55
+ startTime: {
56
+ dateTime: this.start,
57
+ timeZone: this.timeZone,
58
+ },
59
+ endTime: {
60
+ dateTime: this.end,
61
+ timeZone: this.timeZone,
62
+ },
63
+ availabilityViewInterval: this.availabilityViewInterval,
64
+ },
65
+ });
66
+
67
+ $.export("$summary", `Successfully retrieved schedules for \`${this.schedules.join("`, `")}\``);
68
+
69
+ return value;
70
+ },
71
+ };
@@ -0,0 +1,47 @@
1
+ import microsoftOutlook from "../../microsoft_outlook_calendar.app.mjs";
2
+
3
+ export default {
4
+ key: "microsoft_outlook_calendar-list-events",
5
+ name: "List Events",
6
+ description: "Get a list of event objects in the user's mailbox. [See the documentation](https://learn.microsoft.com/en-us/graph/api/user-list-events)",
7
+ version: "0.0.2",
8
+ type: "action",
9
+ props: {
10
+ microsoftOutlook,
11
+ filter: {
12
+ type: "string",
13
+ label: "Filter",
14
+ description: "Filters results. For example, `contains(subject, 'meet for lunch?')` will include events whose title contains ‘meet for lunch?’. [See documentation](https://learn.microsoft.com/en-us/graph/filter-query-parameter) for the full list of operations.",
15
+ optional: true,
16
+ },
17
+ orderBy: {
18
+ type: "string",
19
+ label: "Order By",
20
+ description: "Orders results. For example, `displayName desc` will sort the results by Display Name in decending order.",
21
+ default: "createdDateTime desc",
22
+ optional: true,
23
+ },
24
+ maxResults: {
25
+ type: "integer",
26
+ label: "Max Results",
27
+ description: "The maximum number of results to return",
28
+ optional: true,
29
+ },
30
+ },
31
+ async run({ $ }) {
32
+ const { value = [] } = await this.microsoftOutlook.listCalendarEvents({
33
+ $,
34
+ params: {
35
+ "$orderby": this.orderBy,
36
+ "$filter": this.filter,
37
+ "$top": this.maxResults,
38
+ },
39
+ });
40
+
41
+ $.export("$summary", `Successfully retrieved ${value.length} event${value.length === 1
42
+ ? ""
43
+ : "s"}`);
44
+
45
+ return value;
46
+ },
47
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pipedream/microsoft_outlook_calendar",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "Pipedream Microsoft Outlook Calendar Components",
5
5
  "main": "microsoft_outlook_calendar.app.mjs",
6
6
  "keywords": [
@@ -11,10 +11,10 @@
11
11
  ],
12
12
  "homepage": "https://pipedream.com/apps/microsoft_outlook_calendar",
13
13
  "author": "Pipedream <support@pipedream.com> (https://pipedream.com/)",
14
- "dependencies": {
15
- "@pipedream/platform": "^1.5.1"
16
- },
17
14
  "publishConfig": {
18
15
  "access": "public"
16
+ },
17
+ "dependencies": {
18
+ "@pipedream/platform": "^3.0.3"
19
19
  }
20
20
  }