@pipedream/microsoft_outlook_calendar 0.0.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
 - package/actions/create-calendar-event/create-calendar-event.mjs +111 -0
 - package/actions/delete-calendar-event/delete-calendar-event.mjs +28 -0
 - package/actions/update-calendar-event/update-calendar-event.mjs +142 -0
 - package/microsoft_outlook_calendar.app.mjs +184 -0
 - package/package.json +8 -6
 - package/sources/common.mjs +10 -0
 - package/sources/new-calendar-event/new-calendar-event.mjs +56 -0
 - package/sources/new-upcoming-event/new-upcoming-event.mjs +92 -0
 - package/sources/updated-calendar-event/updated-calendar-event.mjs +56 -0
 
    
        package/README.md
    ADDED
    
    
| 
         @@ -0,0 +1,111 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import microsoftOutlook from "../../microsoft_outlook_calendar.app.mjs";
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            export default {
         
     | 
| 
      
 4 
     | 
    
         
            +
              type: "action",
         
     | 
| 
      
 5 
     | 
    
         
            +
              key: "microsoft_outlook_calendar-create-calendar-event",
         
     | 
| 
      
 6 
     | 
    
         
            +
              version: "0.0.6",
         
     | 
| 
      
 7 
     | 
    
         
            +
              name: "Create Calendar Event",
         
     | 
| 
      
 8 
     | 
    
         
            +
              description: "Create an event in the user's default calendar. [See the documentation](https://docs.microsoft.com/en-us/graph/api/user-post-events)",
         
     | 
| 
      
 9 
     | 
    
         
            +
              props: {
         
     | 
| 
      
 10 
     | 
    
         
            +
                microsoftOutlook,
         
     | 
| 
      
 11 
     | 
    
         
            +
                subject: {
         
     | 
| 
      
 12 
     | 
    
         
            +
                  label: "Subject",
         
     | 
| 
      
 13 
     | 
    
         
            +
                  description: "Subject of the event",
         
     | 
| 
      
 14 
     | 
    
         
            +
                  type: "string",
         
     | 
| 
      
 15 
     | 
    
         
            +
                },
         
     | 
| 
      
 16 
     | 
    
         
            +
                contentType: {
         
     | 
| 
      
 17 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 18 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 19 
     | 
    
         
            +
                    "contentType",
         
     | 
| 
      
 20 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 21 
     | 
    
         
            +
                },
         
     | 
| 
      
 22 
     | 
    
         
            +
                content: {
         
     | 
| 
      
 23 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 24 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 25 
     | 
    
         
            +
                    "content",
         
     | 
| 
      
 26 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 27 
     | 
    
         
            +
                  description: "Content",
         
     | 
| 
      
 28 
     | 
    
         
            +
                },
         
     | 
| 
      
 29 
     | 
    
         
            +
                timeZone: {
         
     | 
| 
      
 30 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 31 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 32 
     | 
    
         
            +
                    "timeZone",
         
     | 
| 
      
 33 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 34 
     | 
    
         
            +
                },
         
     | 
| 
      
 35 
     | 
    
         
            +
                start: {
         
     | 
| 
      
 36 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 37 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 38 
     | 
    
         
            +
                    "start",
         
     | 
| 
      
 39 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 40 
     | 
    
         
            +
                },
         
     | 
| 
      
 41 
     | 
    
         
            +
                end: {
         
     | 
| 
      
 42 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 43 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 44 
     | 
    
         
            +
                    "end",
         
     | 
| 
      
 45 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 46 
     | 
    
         
            +
                },
         
     | 
| 
      
 47 
     | 
    
         
            +
                attendees: {
         
     | 
| 
      
 48 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 49 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 50 
     | 
    
         
            +
                    "attendees",
         
     | 
| 
      
 51 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 52 
     | 
    
         
            +
                },
         
     | 
| 
      
 53 
     | 
    
         
            +
                location: {
         
     | 
| 
      
 54 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 55 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 56 
     | 
    
         
            +
                    "location",
         
     | 
| 
      
 57 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 58 
     | 
    
         
            +
                },
         
     | 
| 
      
 59 
     | 
    
         
            +
                isOnlineMeeting: {
         
     | 
| 
      
 60 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 61 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 62 
     | 
    
         
            +
                    "isOnlineMeeting",
         
     | 
| 
      
 63 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 64 
     | 
    
         
            +
                },
         
     | 
| 
      
 65 
     | 
    
         
            +
                expand: {
         
     | 
| 
      
 66 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 67 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 68 
     | 
    
         
            +
                    "expand",
         
     | 
| 
      
 69 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 70 
     | 
    
         
            +
                  description: "Additional event details, [See object definition](https://docs.microsoft.com/en-us/graph/api/resources/event)",
         
     | 
| 
      
 71 
     | 
    
         
            +
                },
         
     | 
| 
      
 72 
     | 
    
         
            +
              },
         
     | 
| 
      
 73 
     | 
    
         
            +
              async run({ $ }) {
         
     | 
| 
      
 74 
     | 
    
         
            +
                //RegExp to check time strings(yyyy-MM-ddThh:mm:ss)
         
     | 
| 
      
 75 
     | 
    
         
            +
                const re = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)$/;
         
     | 
| 
      
 76 
     | 
    
         
            +
                if (!re.test(this.start) || !re.test(this.start)) {
         
     | 
| 
      
 77 
     | 
    
         
            +
                  throw new Error("Please provide both start and end props in 'yyyy-MM-ddThh:mm:ss'");
         
     | 
| 
      
 78 
     | 
    
         
            +
                }
         
     | 
| 
      
 79 
     | 
    
         
            +
                const data = {
         
     | 
| 
      
 80 
     | 
    
         
            +
                  subject: this.subject,
         
     | 
| 
      
 81 
     | 
    
         
            +
                  body: {
         
     | 
| 
      
 82 
     | 
    
         
            +
                    contentType: this.contentType ?? "HTML",
         
     | 
| 
      
 83 
     | 
    
         
            +
                    content: this.content,
         
     | 
| 
      
 84 
     | 
    
         
            +
                  },
         
     | 
| 
      
 85 
     | 
    
         
            +
                  start: {
         
     | 
| 
      
 86 
     | 
    
         
            +
                    dateTime: this.start,
         
     | 
| 
      
 87 
     | 
    
         
            +
                    timeZone: this.timeZone,
         
     | 
| 
      
 88 
     | 
    
         
            +
                  },
         
     | 
| 
      
 89 
     | 
    
         
            +
                  end: {
         
     | 
| 
      
 90 
     | 
    
         
            +
                    dateTime: this.end,
         
     | 
| 
      
 91 
     | 
    
         
            +
                    timeZone: this.timeZone,
         
     | 
| 
      
 92 
     | 
    
         
            +
                  },
         
     | 
| 
      
 93 
     | 
    
         
            +
                  location: {
         
     | 
| 
      
 94 
     | 
    
         
            +
                    displayName: this.location,
         
     | 
| 
      
 95 
     | 
    
         
            +
                  },
         
     | 
| 
      
 96 
     | 
    
         
            +
                  attendees: this.attendees.map((at) => ({
         
     | 
| 
      
 97 
     | 
    
         
            +
                    emailAddress: {
         
     | 
| 
      
 98 
     | 
    
         
            +
                      address: at,
         
     | 
| 
      
 99 
     | 
    
         
            +
                    },
         
     | 
| 
      
 100 
     | 
    
         
            +
                  })),
         
     | 
| 
      
 101 
     | 
    
         
            +
                  isOnlineMeeting: this.isOnlineMeeting,
         
     | 
| 
      
 102 
     | 
    
         
            +
                  ...this.expand,
         
     | 
| 
      
 103 
     | 
    
         
            +
                };
         
     | 
| 
      
 104 
     | 
    
         
            +
                const response = await this.microsoftOutlook.createCalendarEvent({
         
     | 
| 
      
 105 
     | 
    
         
            +
                  $,
         
     | 
| 
      
 106 
     | 
    
         
            +
                  data,
         
     | 
| 
      
 107 
     | 
    
         
            +
                });
         
     | 
| 
      
 108 
     | 
    
         
            +
                $.export("$summary", "Calendar event has been created.");
         
     | 
| 
      
 109 
     | 
    
         
            +
                return response;
         
     | 
| 
      
 110 
     | 
    
         
            +
              },
         
     | 
| 
      
 111 
     | 
    
         
            +
            };
         
     | 
| 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import microsoftOutlook from "../../microsoft_outlook_calendar.app.mjs";
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            export default {
         
     | 
| 
      
 4 
     | 
    
         
            +
              type: "action",
         
     | 
| 
      
 5 
     | 
    
         
            +
              key: "microsoft_outlook_calendar-delete-calendar-event",
         
     | 
| 
      
 6 
     | 
    
         
            +
              version: "0.0.1",
         
     | 
| 
      
 7 
     | 
    
         
            +
              name: "Delete Calendar Event",
         
     | 
| 
      
 8 
     | 
    
         
            +
              description: "Delete an event in the user's default calendar. [See the documentation](https://learn.microsoft.com/en-us/graph/api/event-delete?view=graph-rest-1.0&tabs=http)",
         
     | 
| 
      
 9 
     | 
    
         
            +
              props: {
         
     | 
| 
      
 10 
     | 
    
         
            +
                microsoftOutlook,
         
     | 
| 
      
 11 
     | 
    
         
            +
                eventId: {
         
     | 
| 
      
 12 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 13 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 14 
     | 
    
         
            +
                    "eventId",
         
     | 
| 
      
 15 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 16 
     | 
    
         
            +
                },
         
     | 
| 
      
 17 
     | 
    
         
            +
              },
         
     | 
| 
      
 18 
     | 
    
         
            +
              async run({ $ }) {
         
     | 
| 
      
 19 
     | 
    
         
            +
                const response = await this.microsoftOutlook.deleteCalendarEvent({
         
     | 
| 
      
 20 
     | 
    
         
            +
                  $,
         
     | 
| 
      
 21 
     | 
    
         
            +
                  eventId: this.eventId,
         
     | 
| 
      
 22 
     | 
    
         
            +
                });
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                $.export("$summary", `Successfully deleted calendar event with ID ${this.eventId}`);
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                return response;
         
     | 
| 
      
 27 
     | 
    
         
            +
              },
         
     | 
| 
      
 28 
     | 
    
         
            +
            };
         
     | 
| 
         @@ -0,0 +1,142 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import microsoftOutlook from "../../microsoft_outlook_calendar.app.mjs";
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            export default {
         
     | 
| 
      
 4 
     | 
    
         
            +
              type: "action",
         
     | 
| 
      
 5 
     | 
    
         
            +
              key: "microsoft_outlook_calendar-update-calendar-event",
         
     | 
| 
      
 6 
     | 
    
         
            +
              version: "0.0.1",
         
     | 
| 
      
 7 
     | 
    
         
            +
              name: "Update Calendar Event",
         
     | 
| 
      
 8 
     | 
    
         
            +
              description: "Update an event in the user's default calendar. [See the documentation](https://learn.microsoft.com/en-us/graph/api/event-update?view=graph-rest-1.0&tabs=http)",
         
     | 
| 
      
 9 
     | 
    
         
            +
              props: {
         
     | 
| 
      
 10 
     | 
    
         
            +
                microsoftOutlook,
         
     | 
| 
      
 11 
     | 
    
         
            +
                eventId: {
         
     | 
| 
      
 12 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 13 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 14 
     | 
    
         
            +
                    "eventId",
         
     | 
| 
      
 15 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 16 
     | 
    
         
            +
                },
         
     | 
| 
      
 17 
     | 
    
         
            +
                subject: {
         
     | 
| 
      
 18 
     | 
    
         
            +
                  label: "Subject",
         
     | 
| 
      
 19 
     | 
    
         
            +
                  description: "Subject of the event",
         
     | 
| 
      
 20 
     | 
    
         
            +
                  type: "string",
         
     | 
| 
      
 21 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                },
         
     | 
| 
      
 24 
     | 
    
         
            +
                contentType: {
         
     | 
| 
      
 25 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 26 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 27 
     | 
    
         
            +
                    "contentType",
         
     | 
| 
      
 28 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 29 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 30 
     | 
    
         
            +
                },
         
     | 
| 
      
 31 
     | 
    
         
            +
                content: {
         
     | 
| 
      
 32 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 33 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 34 
     | 
    
         
            +
                    "content",
         
     | 
| 
      
 35 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 36 
     | 
    
         
            +
                  description: "Content",
         
     | 
| 
      
 37 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 38 
     | 
    
         
            +
                },
         
     | 
| 
      
 39 
     | 
    
         
            +
                timeZone: {
         
     | 
| 
      
 40 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 41 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 42 
     | 
    
         
            +
                    "timeZone",
         
     | 
| 
      
 43 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 44 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 45 
     | 
    
         
            +
                },
         
     | 
| 
      
 46 
     | 
    
         
            +
                start: {
         
     | 
| 
      
 47 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 48 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 49 
     | 
    
         
            +
                    "start",
         
     | 
| 
      
 50 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 51 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 52 
     | 
    
         
            +
                },
         
     | 
| 
      
 53 
     | 
    
         
            +
                end: {
         
     | 
| 
      
 54 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 55 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 56 
     | 
    
         
            +
                    "end",
         
     | 
| 
      
 57 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 58 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 59 
     | 
    
         
            +
                },
         
     | 
| 
      
 60 
     | 
    
         
            +
                attendees: {
         
     | 
| 
      
 61 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 62 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 63 
     | 
    
         
            +
                    "attendees",
         
     | 
| 
      
 64 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 65 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 66 
     | 
    
         
            +
                },
         
     | 
| 
      
 67 
     | 
    
         
            +
                location: {
         
     | 
| 
      
 68 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 69 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 70 
     | 
    
         
            +
                    "location",
         
     | 
| 
      
 71 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 72 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 73 
     | 
    
         
            +
                },
         
     | 
| 
      
 74 
     | 
    
         
            +
                isOnlineMeeting: {
         
     | 
| 
      
 75 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 76 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 77 
     | 
    
         
            +
                    "isOnlineMeeting",
         
     | 
| 
      
 78 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 79 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 80 
     | 
    
         
            +
                },
         
     | 
| 
      
 81 
     | 
    
         
            +
                expand: {
         
     | 
| 
      
 82 
     | 
    
         
            +
                  propDefinition: [
         
     | 
| 
      
 83 
     | 
    
         
            +
                    microsoftOutlook,
         
     | 
| 
      
 84 
     | 
    
         
            +
                    "expand",
         
     | 
| 
      
 85 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 86 
     | 
    
         
            +
                  description: "Additional event details, [See object definition](https://docs.microsoft.com/en-us/graph/api/resources/event)",
         
     | 
| 
      
 87 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 88 
     | 
    
         
            +
                },
         
     | 
| 
      
 89 
     | 
    
         
            +
              },
         
     | 
| 
      
 90 
     | 
    
         
            +
              async run({ $ }) {
         
     | 
| 
      
 91 
     | 
    
         
            +
                const data = {
         
     | 
| 
      
 92 
     | 
    
         
            +
                  subject: this.subject,
         
     | 
| 
      
 93 
     | 
    
         
            +
                  isOnlineMeeting: this.isOnlineMeeting,
         
     | 
| 
      
 94 
     | 
    
         
            +
                  ...this.expand,
         
     | 
| 
      
 95 
     | 
    
         
            +
                };
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
                if (this.location) {
         
     | 
| 
      
 98 
     | 
    
         
            +
                  data.location = {
         
     | 
| 
      
 99 
     | 
    
         
            +
                    displayName: this.location,
         
     | 
| 
      
 100 
     | 
    
         
            +
                  };
         
     | 
| 
      
 101 
     | 
    
         
            +
                }
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
                if (this.contentType && this.content) {
         
     | 
| 
      
 104 
     | 
    
         
            +
                  data.body = {
         
     | 
| 
      
 105 
     | 
    
         
            +
                    contentType: this.contentType ?? "HTML",
         
     | 
| 
      
 106 
     | 
    
         
            +
                    content: this.content,
         
     | 
| 
      
 107 
     | 
    
         
            +
                  };
         
     | 
| 
      
 108 
     | 
    
         
            +
                }
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
                if (this.start && this.timeZone) {
         
     | 
| 
      
 111 
     | 
    
         
            +
                  data.start = {
         
     | 
| 
      
 112 
     | 
    
         
            +
                    dateTime: this.start,
         
     | 
| 
      
 113 
     | 
    
         
            +
                    timeZone: this.timeZone,
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
                  };
         
     | 
| 
      
 116 
     | 
    
         
            +
                }
         
     | 
| 
      
 117 
     | 
    
         
            +
                if (this.end && this.timeZone) {
         
     | 
| 
      
 118 
     | 
    
         
            +
                  data.end = {
         
     | 
| 
      
 119 
     | 
    
         
            +
                    dateTime: this.end,
         
     | 
| 
      
 120 
     | 
    
         
            +
                    timeZone: this.timeZone,
         
     | 
| 
      
 121 
     | 
    
         
            +
                  };
         
     | 
| 
      
 122 
     | 
    
         
            +
                }
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
      
 124 
     | 
    
         
            +
                if (this.attendees) {
         
     | 
| 
      
 125 
     | 
    
         
            +
                  data.attendees = this.attendees.map((at) => ({
         
     | 
| 
      
 126 
     | 
    
         
            +
                    emailAddress: {
         
     | 
| 
      
 127 
     | 
    
         
            +
                      address: at,
         
     | 
| 
      
 128 
     | 
    
         
            +
                    },
         
     | 
| 
      
 129 
     | 
    
         
            +
                  }));
         
     | 
| 
      
 130 
     | 
    
         
            +
                }
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
                const response = await this.microsoftOutlook.updateCalendarEvent({
         
     | 
| 
      
 133 
     | 
    
         
            +
                  $,
         
     | 
| 
      
 134 
     | 
    
         
            +
                  eventId: this.eventId,
         
     | 
| 
      
 135 
     | 
    
         
            +
                  data,
         
     | 
| 
      
 136 
     | 
    
         
            +
                });
         
     | 
| 
      
 137 
     | 
    
         
            +
             
     | 
| 
      
 138 
     | 
    
         
            +
                $.export("$summary", `Successfully updated calendar event with ID ${response.id}`);
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
                return response;
         
     | 
| 
      
 141 
     | 
    
         
            +
              },
         
     | 
| 
      
 142 
     | 
    
         
            +
            };
         
     | 
| 
         @@ -0,0 +1,184 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { axios } from "@pipedream/platform";
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            export default {
         
     | 
| 
      
 4 
     | 
    
         
            +
              type: "app",
         
     | 
| 
      
 5 
     | 
    
         
            +
              app: "microsoft_outlook_calendar",
         
     | 
| 
      
 6 
     | 
    
         
            +
              propDefinitions: {
         
     | 
| 
      
 7 
     | 
    
         
            +
                eventId: {
         
     | 
| 
      
 8 
     | 
    
         
            +
                  label: "Event ID",
         
     | 
| 
      
 9 
     | 
    
         
            +
                  description: "The event ID",
         
     | 
| 
      
 10 
     | 
    
         
            +
                  type: "string",
         
     | 
| 
      
 11 
     | 
    
         
            +
                  async options() {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    const { value: events } = await this.listCalendarEvents();
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                    return events.map((event) => ({
         
     | 
| 
      
 15 
     | 
    
         
            +
                      label: event.subject,
         
     | 
| 
      
 16 
     | 
    
         
            +
                      value: event.id,
         
     | 
| 
      
 17 
     | 
    
         
            +
                    }));
         
     | 
| 
      
 18 
     | 
    
         
            +
                  },
         
     | 
| 
      
 19 
     | 
    
         
            +
                },
         
     | 
| 
      
 20 
     | 
    
         
            +
                contentType: {
         
     | 
| 
      
 21 
     | 
    
         
            +
                  label: "Content Type",
         
     | 
| 
      
 22 
     | 
    
         
            +
                  description: "Content type (default `text`)",
         
     | 
| 
      
 23 
     | 
    
         
            +
                  type: "string",
         
     | 
| 
      
 24 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 25 
     | 
    
         
            +
                  options: [
         
     | 
| 
      
 26 
     | 
    
         
            +
                    "text",
         
     | 
| 
      
 27 
     | 
    
         
            +
                    "html",
         
     | 
| 
      
 28 
     | 
    
         
            +
                  ],
         
     | 
| 
      
 29 
     | 
    
         
            +
                  default: "text",
         
     | 
| 
      
 30 
     | 
    
         
            +
                },
         
     | 
| 
      
 31 
     | 
    
         
            +
                content: {
         
     | 
| 
      
 32 
     | 
    
         
            +
                  label: "Content",
         
     | 
| 
      
 33 
     | 
    
         
            +
                  description: "Content of the email in text or html format",
         
     | 
| 
      
 34 
     | 
    
         
            +
                  type: "string",
         
     | 
| 
      
 35 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 36 
     | 
    
         
            +
                },
         
     | 
| 
      
 37 
     | 
    
         
            +
                timeZone: {
         
     | 
| 
      
 38 
     | 
    
         
            +
                  label: "Time Zone",
         
     | 
| 
      
 39 
     | 
    
         
            +
                  description: "Time zone of the event in supported time zones, [See the docs](https://docs.microsoft.com/en-us/graph/api/outlookuser-supportedtimezones)",
         
     | 
| 
      
 40 
     | 
    
         
            +
                  type: "string",
         
     | 
| 
      
 41 
     | 
    
         
            +
                  async options() {
         
     | 
| 
      
 42 
     | 
    
         
            +
                    const timeZonesResponse = await this.getSupportedTimeZones();
         
     | 
| 
      
 43 
     | 
    
         
            +
                    return timeZonesResponse.value.map((tz) => ({
         
     | 
| 
      
 44 
     | 
    
         
            +
                      label: tz.displayName,
         
     | 
| 
      
 45 
     | 
    
         
            +
                      value: tz.alias,
         
     | 
| 
      
 46 
     | 
    
         
            +
                    }));
         
     | 
| 
      
 47 
     | 
    
         
            +
                  },
         
     | 
| 
      
 48 
     | 
    
         
            +
                },
         
     | 
| 
      
 49 
     | 
    
         
            +
                start: {
         
     | 
| 
      
 50 
     | 
    
         
            +
                  label: "Start",
         
     | 
| 
      
 51 
     | 
    
         
            +
                  description: "Start date-time (yyyy-MM-ddThh:mm:ss) e.g. '2022-04-15T11:20:00'",
         
     | 
| 
      
 52 
     | 
    
         
            +
                  type: "string",
         
     | 
| 
      
 53 
     | 
    
         
            +
                },
         
     | 
| 
      
 54 
     | 
    
         
            +
                end: {
         
     | 
| 
      
 55 
     | 
    
         
            +
                  label: "End",
         
     | 
| 
      
 56 
     | 
    
         
            +
                  description: "End date-time (yyyy-MM-ddThh:mm:ss) e.g. '2022-04-15T13:30:00'",
         
     | 
| 
      
 57 
     | 
    
         
            +
                  type: "string",
         
     | 
| 
      
 58 
     | 
    
         
            +
                },
         
     | 
| 
      
 59 
     | 
    
         
            +
                attendees: {
         
     | 
| 
      
 60 
     | 
    
         
            +
                  label: "Attendees",
         
     | 
| 
      
 61 
     | 
    
         
            +
                  description: "Array of email addresses",
         
     | 
| 
      
 62 
     | 
    
         
            +
                  type: "string[]",
         
     | 
| 
      
 63 
     | 
    
         
            +
                },
         
     | 
| 
      
 64 
     | 
    
         
            +
                location: {
         
     | 
| 
      
 65 
     | 
    
         
            +
                  label: "Location",
         
     | 
| 
      
 66 
     | 
    
         
            +
                  description: "Location of the event",
         
     | 
| 
      
 67 
     | 
    
         
            +
                  type: "string",
         
     | 
| 
      
 68 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 69 
     | 
    
         
            +
                },
         
     | 
| 
      
 70 
     | 
    
         
            +
                isOnlineMeeting: {
         
     | 
| 
      
 71 
     | 
    
         
            +
                  label: "Is Online Meeting",
         
     | 
| 
      
 72 
     | 
    
         
            +
                  description: "If it is online meeting or not",
         
     | 
| 
      
 73 
     | 
    
         
            +
                  type: "boolean",
         
     | 
| 
      
 74 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 75 
     | 
    
         
            +
                },
         
     | 
| 
      
 76 
     | 
    
         
            +
                expand: {
         
     | 
| 
      
 77 
     | 
    
         
            +
                  label: "Expand",
         
     | 
| 
      
 78 
     | 
    
         
            +
                  description: "Additional properties",
         
     | 
| 
      
 79 
     | 
    
         
            +
                  type: "object",
         
     | 
| 
      
 80 
     | 
    
         
            +
                  optional: true,
         
     | 
| 
      
 81 
     | 
    
         
            +
                },
         
     | 
| 
      
 82 
     | 
    
         
            +
              },
         
     | 
| 
      
 83 
     | 
    
         
            +
              methods: {
         
     | 
| 
      
 84 
     | 
    
         
            +
                _getUrl(path) {
         
     | 
| 
      
 85 
     | 
    
         
            +
                  return `https://graph.microsoft.com/v1.0${path}`;
         
     | 
| 
      
 86 
     | 
    
         
            +
                },
         
     | 
| 
      
 87 
     | 
    
         
            +
                _getHeaders() {
         
     | 
| 
      
 88 
     | 
    
         
            +
                  return {
         
     | 
| 
      
 89 
     | 
    
         
            +
                    "Authorization": `Bearer ${this.$auth.oauth_access_token}`,
         
     | 
| 
      
 90 
     | 
    
         
            +
                    "accept": "application/json",
         
     | 
| 
      
 91 
     | 
    
         
            +
                    "Content-Type": "application/json",
         
     | 
| 
      
 92 
     | 
    
         
            +
                  };
         
     | 
| 
      
 93 
     | 
    
         
            +
                },
         
     | 
| 
      
 94 
     | 
    
         
            +
                async _makeRequest({
         
     | 
| 
      
 95 
     | 
    
         
            +
                  $,
         
     | 
| 
      
 96 
     | 
    
         
            +
                  path,
         
     | 
| 
      
 97 
     | 
    
         
            +
                  headers,
         
     | 
| 
      
 98 
     | 
    
         
            +
                  ...otherConfig
         
     | 
| 
      
 99 
     | 
    
         
            +
                } = {}) {
         
     | 
| 
      
 100 
     | 
    
         
            +
                  const config = {
         
     | 
| 
      
 101 
     | 
    
         
            +
                    url: this._getUrl(path),
         
     | 
| 
      
 102 
     | 
    
         
            +
                    headers: this._getHeaders(headers),
         
     | 
| 
      
 103 
     | 
    
         
            +
                    ...otherConfig,
         
     | 
| 
      
 104 
     | 
    
         
            +
                  };
         
     | 
| 
      
 105 
     | 
    
         
            +
                  return axios($ ?? this, config);
         
     | 
| 
      
 106 
     | 
    
         
            +
                },
         
     | 
| 
      
 107 
     | 
    
         
            +
                async createHook(args = {}) {
         
     | 
| 
      
 108 
     | 
    
         
            +
                  const response = await this._makeRequest({
         
     | 
| 
      
 109 
     | 
    
         
            +
                    method: "POST",
         
     | 
| 
      
 110 
     | 
    
         
            +
                    path: "/subscriptions",
         
     | 
| 
      
 111 
     | 
    
         
            +
                    ...args,
         
     | 
| 
      
 112 
     | 
    
         
            +
                  });
         
     | 
| 
      
 113 
     | 
    
         
            +
                  return response;
         
     | 
| 
      
 114 
     | 
    
         
            +
                },
         
     | 
| 
      
 115 
     | 
    
         
            +
                async renewHook({
         
     | 
| 
      
 116 
     | 
    
         
            +
                  hookId,
         
     | 
| 
      
 117 
     | 
    
         
            +
                  ...args
         
     | 
| 
      
 118 
     | 
    
         
            +
                } = {}) {
         
     | 
| 
      
 119 
     | 
    
         
            +
                  return this._makeRequest({
         
     | 
| 
      
 120 
     | 
    
         
            +
                    method: "PATCH",
         
     | 
| 
      
 121 
     | 
    
         
            +
                    path: `/subscriptions/${hookId}`,
         
     | 
| 
      
 122 
     | 
    
         
            +
                    ...args,
         
     | 
| 
      
 123 
     | 
    
         
            +
                  });
         
     | 
| 
      
 124 
     | 
    
         
            +
                },
         
     | 
| 
      
 125 
     | 
    
         
            +
                async deleteHook({
         
     | 
| 
      
 126 
     | 
    
         
            +
                  hookId,
         
     | 
| 
      
 127 
     | 
    
         
            +
                  ...args
         
     | 
| 
      
 128 
     | 
    
         
            +
                } = {}) {
         
     | 
| 
      
 129 
     | 
    
         
            +
                  return this._makeRequest({
         
     | 
| 
      
 130 
     | 
    
         
            +
                    method: "DELETE",
         
     | 
| 
      
 131 
     | 
    
         
            +
                    path: `/subscriptions/${hookId}`,
         
     | 
| 
      
 132 
     | 
    
         
            +
                    ...args,
         
     | 
| 
      
 133 
     | 
    
         
            +
                  });
         
     | 
| 
      
 134 
     | 
    
         
            +
                },
         
     | 
| 
      
 135 
     | 
    
         
            +
                async getSupportedTimeZones() {
         
     | 
| 
      
 136 
     | 
    
         
            +
                  return this._makeRequest({
         
     | 
| 
      
 137 
     | 
    
         
            +
                    method: "GET",
         
     | 
| 
      
 138 
     | 
    
         
            +
                    path: "/me/outlook/supportedTimeZones",
         
     | 
| 
      
 139 
     | 
    
         
            +
                  });
         
     | 
| 
      
 140 
     | 
    
         
            +
                },
         
     | 
| 
      
 141 
     | 
    
         
            +
                async createCalendarEvent(args = {}) {
         
     | 
| 
      
 142 
     | 
    
         
            +
                  return this._makeRequest({
         
     | 
| 
      
 143 
     | 
    
         
            +
                    method: "POST",
         
     | 
| 
      
 144 
     | 
    
         
            +
                    path: "/me/events",
         
     | 
| 
      
 145 
     | 
    
         
            +
                    ...args,
         
     | 
| 
      
 146 
     | 
    
         
            +
                  });
         
     | 
| 
      
 147 
     | 
    
         
            +
                },
         
     | 
| 
      
 148 
     | 
    
         
            +
                async updateCalendarEvent({
         
     | 
| 
      
 149 
     | 
    
         
            +
                  eventId, ...args
         
     | 
| 
      
 150 
     | 
    
         
            +
                }) {
         
     | 
| 
      
 151 
     | 
    
         
            +
                  return this._makeRequest({
         
     | 
| 
      
 152 
     | 
    
         
            +
                    method: "PATCH",
         
     | 
| 
      
 153 
     | 
    
         
            +
                    path: `/me/events/${eventId}`,
         
     | 
| 
      
 154 
     | 
    
         
            +
                    ...args,
         
     | 
| 
      
 155 
     | 
    
         
            +
                  });
         
     | 
| 
      
 156 
     | 
    
         
            +
                },
         
     | 
| 
      
 157 
     | 
    
         
            +
                async deleteCalendarEvent({
         
     | 
| 
      
 158 
     | 
    
         
            +
                  eventId, ...args
         
     | 
| 
      
 159 
     | 
    
         
            +
                }) {
         
     | 
| 
      
 160 
     | 
    
         
            +
                  return this._makeRequest({
         
     | 
| 
      
 161 
     | 
    
         
            +
                    method: "DELETE",
         
     | 
| 
      
 162 
     | 
    
         
            +
                    path: `/me/events/${eventId}`,
         
     | 
| 
      
 163 
     | 
    
         
            +
                    ...args,
         
     | 
| 
      
 164 
     | 
    
         
            +
                  });
         
     | 
| 
      
 165 
     | 
    
         
            +
                },
         
     | 
| 
      
 166 
     | 
    
         
            +
                async listCalendarEvents(args = {}) {
         
     | 
| 
      
 167 
     | 
    
         
            +
                  return this._makeRequest({
         
     | 
| 
      
 168 
     | 
    
         
            +
                    method: "GET",
         
     | 
| 
      
 169 
     | 
    
         
            +
                    path: "/me/events",
         
     | 
| 
      
 170 
     | 
    
         
            +
                    ...args,
         
     | 
| 
      
 171 
     | 
    
         
            +
                  });
         
     | 
| 
      
 172 
     | 
    
         
            +
                },
         
     | 
| 
      
 173 
     | 
    
         
            +
                async getCalendarEvent({
         
     | 
| 
      
 174 
     | 
    
         
            +
                  eventId,
         
     | 
| 
      
 175 
     | 
    
         
            +
                  ...args
         
     | 
| 
      
 176 
     | 
    
         
            +
                } = {}) {
         
     | 
| 
      
 177 
     | 
    
         
            +
                  return this._makeRequest({
         
     | 
| 
      
 178 
     | 
    
         
            +
                    method: "GET",
         
     | 
| 
      
 179 
     | 
    
         
            +
                    path: `/me/events/${eventId}`,
         
     | 
| 
      
 180 
     | 
    
         
            +
                    ...args,
         
     | 
| 
      
 181 
     | 
    
         
            +
                  });
         
     | 
| 
      
 182 
     | 
    
         
            +
                },
         
     | 
| 
      
 183 
     | 
    
         
            +
              },
         
     | 
| 
      
 184 
     | 
    
         
            +
            };
         
     | 
    
        package/package.json
    CHANGED
    
    | 
         @@ -1,17 +1,19 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "@pipedream/microsoft_outlook_calendar",
         
     | 
| 
       3 
     | 
    
         
            -
              "version": "0.0 
     | 
| 
      
 3 
     | 
    
         
            +
              "version": "0.2.0",
         
     | 
| 
       4 
4 
     | 
    
         
             
              "description": "Pipedream Microsoft Outlook Calendar Components",
         
     | 
| 
       5 
     | 
    
         
            -
              "main": " 
     | 
| 
      
 5 
     | 
    
         
            +
              "main": "microsoft_outlook_calendar.app.mjs",
         
     | 
| 
       6 
6 
     | 
    
         
             
              "keywords": [
         
     | 
| 
       7 
7 
     | 
    
         
             
                "pipedream",
         
     | 
| 
       8 
     | 
    
         
            -
                "microsoft_outlook_calendar"
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                "dist"
         
     | 
| 
      
 8 
     | 
    
         
            +
                "microsoft_outlook_calendar",
         
     | 
| 
      
 9 
     | 
    
         
            +
                "microsoft",
         
     | 
| 
      
 10 
     | 
    
         
            +
                "outlook"
         
     | 
| 
       12 
11 
     | 
    
         
             
              ],
         
     | 
| 
       13 
12 
     | 
    
         
             
              "homepage": "https://pipedream.com/apps/microsoft_outlook_calendar",
         
     | 
| 
       14 
13 
     | 
    
         
             
              "author": "Pipedream <support@pipedream.com> (https://pipedream.com/)",
         
     | 
| 
      
 14 
     | 
    
         
            +
              "dependencies": {
         
     | 
| 
      
 15 
     | 
    
         
            +
                "@pipedream/platform": "^1.5.1"
         
     | 
| 
      
 16 
     | 
    
         
            +
              },
         
     | 
| 
       15 
17 
     | 
    
         
             
              "publishConfig": {
         
     | 
| 
       16 
18 
     | 
    
         
             
                "access": "public"
         
     | 
| 
       17 
19 
     | 
    
         
             
              }
         
     | 
| 
         @@ -0,0 +1,56 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import common from "../common.mjs";
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            export default {
         
     | 
| 
      
 4 
     | 
    
         
            +
              ...common,
         
     | 
| 
      
 5 
     | 
    
         
            +
              key: "microsoft_outlook_calendar-new-calendar-event",
         
     | 
| 
      
 6 
     | 
    
         
            +
              name: "New Calendar Event (Instant)",
         
     | 
| 
      
 7 
     | 
    
         
            +
              description: "Emit new event when a new Calendar event is created",
         
     | 
| 
      
 8 
     | 
    
         
            +
              version: "0.0.7",
         
     | 
| 
      
 9 
     | 
    
         
            +
              type: "source",
         
     | 
| 
      
 10 
     | 
    
         
            +
              hooks: {
         
     | 
| 
      
 11 
     | 
    
         
            +
                ...common.hooks,
         
     | 
| 
      
 12 
     | 
    
         
            +
                async activate() {
         
     | 
| 
      
 13 
     | 
    
         
            +
                  await this.activate({
         
     | 
| 
      
 14 
     | 
    
         
            +
                    changeType: "created",
         
     | 
| 
      
 15 
     | 
    
         
            +
                    resource: "/me/events",
         
     | 
| 
      
 16 
     | 
    
         
            +
                  });
         
     | 
| 
      
 17 
     | 
    
         
            +
                },
         
     | 
| 
      
 18 
     | 
    
         
            +
                async deactivate() {
         
     | 
| 
      
 19 
     | 
    
         
            +
                  await this.deactivate();
         
     | 
| 
      
 20 
     | 
    
         
            +
                },
         
     | 
| 
      
 21 
     | 
    
         
            +
              },
         
     | 
| 
      
 22 
     | 
    
         
            +
              methods: {
         
     | 
| 
      
 23 
     | 
    
         
            +
                ...common.methods,
         
     | 
| 
      
 24 
     | 
    
         
            +
                async getSampleEvents({ pageSize }) {
         
     | 
| 
      
 25 
     | 
    
         
            +
                  return this.microsoftOutlook.listCalendarEvents({
         
     | 
| 
      
 26 
     | 
    
         
            +
                    params: {
         
     | 
| 
      
 27 
     | 
    
         
            +
                      $top: pageSize,
         
     | 
| 
      
 28 
     | 
    
         
            +
                      $orderby: "createdDateTime desc",
         
     | 
| 
      
 29 
     | 
    
         
            +
                    },
         
     | 
| 
      
 30 
     | 
    
         
            +
                  });
         
     | 
| 
      
 31 
     | 
    
         
            +
                },
         
     | 
| 
      
 32 
     | 
    
         
            +
                emitEvent(item) {
         
     | 
| 
      
 33 
     | 
    
         
            +
                  this.$emit({
         
     | 
| 
      
 34 
     | 
    
         
            +
                    message: item,
         
     | 
| 
      
 35 
     | 
    
         
            +
                  }, this.generateMeta(item));
         
     | 
| 
      
 36 
     | 
    
         
            +
                },
         
     | 
| 
      
 37 
     | 
    
         
            +
                generateMeta(item) {
         
     | 
| 
      
 38 
     | 
    
         
            +
                  return {
         
     | 
| 
      
 39 
     | 
    
         
            +
                    id: item.id,
         
     | 
| 
      
 40 
     | 
    
         
            +
                    summary: `New calendar event (ID:${item.id})`,
         
     | 
| 
      
 41 
     | 
    
         
            +
                    ts: Date.parse(item.createdDateTime),
         
     | 
| 
      
 42 
     | 
    
         
            +
                  };
         
     | 
| 
      
 43 
     | 
    
         
            +
                },
         
     | 
| 
      
 44 
     | 
    
         
            +
              },
         
     | 
| 
      
 45 
     | 
    
         
            +
              async run(event) {
         
     | 
| 
      
 46 
     | 
    
         
            +
                await this.run({
         
     | 
| 
      
 47 
     | 
    
         
            +
                  event,
         
     | 
| 
      
 48 
     | 
    
         
            +
                  emitFn: async ({ resourceId } = {}) => {
         
     | 
| 
      
 49 
     | 
    
         
            +
                    const item = await this.microsoftOutlook.getCalendarEvent({
         
     | 
| 
      
 50 
     | 
    
         
            +
                      eventId: resourceId,
         
     | 
| 
      
 51 
     | 
    
         
            +
                    });
         
     | 
| 
      
 52 
     | 
    
         
            +
                    this.emitEvent(item);
         
     | 
| 
      
 53 
     | 
    
         
            +
                  },
         
     | 
| 
      
 54 
     | 
    
         
            +
                });
         
     | 
| 
      
 55 
     | 
    
         
            +
              },
         
     | 
| 
      
 56 
     | 
    
         
            +
            };
         
     | 
| 
         @@ -0,0 +1,92 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import common from "../common.mjs";
         
     | 
| 
      
 2 
     | 
    
         
            +
            import taskScheduler from "../../../pipedream/sources/new-scheduled-tasks/new-scheduled-tasks.mjs";
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            export default {
         
     | 
| 
      
 5 
     | 
    
         
            +
              ...common,
         
     | 
| 
      
 6 
     | 
    
         
            +
              key: "microsoft_outlook_calendar-new-upcoming-event",
         
     | 
| 
      
 7 
     | 
    
         
            +
              name: "New Upcoming Calendar Event",
         
     | 
| 
      
 8 
     | 
    
         
            +
              description: "Emit new event when a Calendar event is upcoming, this source is using `reminderMinutesBeforeStart` property of the event to determine the time it should emit.",
         
     | 
| 
      
 9 
     | 
    
         
            +
              version: "0.0.3",
         
     | 
| 
      
 10 
     | 
    
         
            +
              type: "source",
         
     | 
| 
      
 11 
     | 
    
         
            +
              props: {
         
     | 
| 
      
 12 
     | 
    
         
            +
                ...common.props,
         
     | 
| 
      
 13 
     | 
    
         
            +
                pipedream: taskScheduler.props.pipedream,
         
     | 
| 
      
 14 
     | 
    
         
            +
              },
         
     | 
| 
      
 15 
     | 
    
         
            +
              hooks: {
         
     | 
| 
      
 16 
     | 
    
         
            +
                ...common.hooks,
         
     | 
| 
      
 17 
     | 
    
         
            +
                async activate() {
         
     | 
| 
      
 18 
     | 
    
         
            +
                  await this.activate({
         
     | 
| 
      
 19 
     | 
    
         
            +
                    changeType: "updated",
         
     | 
| 
      
 20 
     | 
    
         
            +
                    resource: "/me/events",
         
     | 
| 
      
 21 
     | 
    
         
            +
                  });
         
     | 
| 
      
 22 
     | 
    
         
            +
                },
         
     | 
| 
      
 23 
     | 
    
         
            +
                async deactivate() {
         
     | 
| 
      
 24 
     | 
    
         
            +
                  await this.deactivate();
         
     | 
| 
      
 25 
     | 
    
         
            +
                },
         
     | 
| 
      
 26 
     | 
    
         
            +
              },
         
     | 
| 
      
 27 
     | 
    
         
            +
              methods: {
         
     | 
| 
      
 28 
     | 
    
         
            +
                ...taskScheduler.methods,
         
     | 
| 
      
 29 
     | 
    
         
            +
                ...common.methods,
         
     | 
| 
      
 30 
     | 
    
         
            +
                _hasDeployed() {
         
     | 
| 
      
 31 
     | 
    
         
            +
                  const result = this.db.get("hasDeployed");
         
     | 
| 
      
 32 
     | 
    
         
            +
                  this.db.set("hasDeployed", true);
         
     | 
| 
      
 33 
     | 
    
         
            +
                  return result;
         
     | 
| 
      
 34 
     | 
    
         
            +
                },
         
     | 
| 
      
 35 
     | 
    
         
            +
                subtractMinutes(date, minutes) {
         
     | 
| 
      
 36 
     | 
    
         
            +
                  return date.getTime() - minutes * 60000;
         
     | 
| 
      
 37 
     | 
    
         
            +
                },
         
     | 
| 
      
 38 
     | 
    
         
            +
                async getSampleEvents({ pageSize }) {
         
     | 
| 
      
 39 
     | 
    
         
            +
                  return this.microsoftOutlook.listCalendarEvents({
         
     | 
| 
      
 40 
     | 
    
         
            +
                    params: {
         
     | 
| 
      
 41 
     | 
    
         
            +
                      $top: pageSize,
         
     | 
| 
      
 42 
     | 
    
         
            +
                      $orderby: "lastModifiedDateTime desc",
         
     | 
| 
      
 43 
     | 
    
         
            +
                    },
         
     | 
| 
      
 44 
     | 
    
         
            +
                  });
         
     | 
| 
      
 45 
     | 
    
         
            +
                },
         
     | 
| 
      
 46 
     | 
    
         
            +
                emitEvent(item) {
         
     | 
| 
      
 47 
     | 
    
         
            +
                  this.$emit({
         
     | 
| 
      
 48 
     | 
    
         
            +
                    message: item,
         
     | 
| 
      
 49 
     | 
    
         
            +
                  }, this.generateMeta(item));
         
     | 
| 
      
 50 
     | 
    
         
            +
                },
         
     | 
| 
      
 51 
     | 
    
         
            +
                generateMeta(item) {
         
     | 
| 
      
 52 
     | 
    
         
            +
                  return {
         
     | 
| 
      
 53 
     | 
    
         
            +
                    id: item.id,
         
     | 
| 
      
 54 
     | 
    
         
            +
                    summary: `Upcoming event - ${item.subject}`,
         
     | 
| 
      
 55 
     | 
    
         
            +
                    ts: +Date.parse(item.createdDateTime),
         
     | 
| 
      
 56 
     | 
    
         
            +
                  };
         
     | 
| 
      
 57 
     | 
    
         
            +
                },
         
     | 
| 
      
 58 
     | 
    
         
            +
              },
         
     | 
| 
      
 59 
     | 
    
         
            +
              async run(event) {
         
     | 
| 
      
 60 
     | 
    
         
            +
                if (event.$channel === this.selfChannel()) {
         
     | 
| 
      
 61 
     | 
    
         
            +
                  const item = await this.microsoftOutlook.getCalendarEvent({
         
     | 
| 
      
 62 
     | 
    
         
            +
                    eventId: event.eventId,
         
     | 
| 
      
 63 
     | 
    
         
            +
                  });
         
     | 
| 
      
 64 
     | 
    
         
            +
                  // checking if the event was modified after this scheduling
         
     | 
| 
      
 65 
     | 
    
         
            +
                  if (item.lastModifiedDateTime === event.lastModifiedControl) {
         
     | 
| 
      
 66 
     | 
    
         
            +
                    this.emitEvent(item);
         
     | 
| 
      
 67 
     | 
    
         
            +
                  }
         
     | 
| 
      
 68 
     | 
    
         
            +
                  return;
         
     | 
| 
      
 69 
     | 
    
         
            +
                }
         
     | 
| 
      
 70 
     | 
    
         
            +
                await this.run({
         
     | 
| 
      
 71 
     | 
    
         
            +
                  event,
         
     | 
| 
      
 72 
     | 
    
         
            +
                  emitFn: async ({ resourceId } = {}) => {
         
     | 
| 
      
 73 
     | 
    
         
            +
                    if (!this._hasDeployed()) {
         
     | 
| 
      
 74 
     | 
    
         
            +
                      await this.selfSubscribe();
         
     | 
| 
      
 75 
     | 
    
         
            +
                    }
         
     | 
| 
      
 76 
     | 
    
         
            +
                    const item = await this.microsoftOutlook.getCalendarEvent({
         
     | 
| 
      
 77 
     | 
    
         
            +
                      eventId: resourceId,
         
     | 
| 
      
 78 
     | 
    
         
            +
                    });
         
     | 
| 
      
 79 
     | 
    
         
            +
                    if (event.$channel !== this.selfChannel()) {
         
     | 
| 
      
 80 
     | 
    
         
            +
                      const startTime = new Date(item.start.dateTime || item.start.date);
         
     | 
| 
      
 81 
     | 
    
         
            +
                      const reminderMinutesBeforeStart = item.reminderMinutesBeforeStart || 15;
         
     | 
| 
      
 82 
     | 
    
         
            +
                      const later = new Date(this.subtractMinutes(startTime, reminderMinutesBeforeStart));
         
     | 
| 
      
 83 
     | 
    
         
            +
                      const newEvent = {
         
     | 
| 
      
 84 
     | 
    
         
            +
                        lastModifiedControl: item.lastModifiedDateTime,
         
     | 
| 
      
 85 
     | 
    
         
            +
                        eventId: resourceId,
         
     | 
| 
      
 86 
     | 
    
         
            +
                      };
         
     | 
| 
      
 87 
     | 
    
         
            +
                      this.emitScheduleEvent(newEvent, later);
         
     | 
| 
      
 88 
     | 
    
         
            +
                    }
         
     | 
| 
      
 89 
     | 
    
         
            +
                  },
         
     | 
| 
      
 90 
     | 
    
         
            +
                });
         
     | 
| 
      
 91 
     | 
    
         
            +
              },
         
     | 
| 
      
 92 
     | 
    
         
            +
            };
         
     | 
| 
         @@ -0,0 +1,56 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import common from "../common.mjs";
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            export default {
         
     | 
| 
      
 4 
     | 
    
         
            +
              ...common,
         
     | 
| 
      
 5 
     | 
    
         
            +
              key: "microsoft_outlook_calendar-updated-calendar-event",
         
     | 
| 
      
 6 
     | 
    
         
            +
              name: "New Calendar Event Update (Instant)",
         
     | 
| 
      
 7 
     | 
    
         
            +
              description: "Emit new event when a Calendar event is updated",
         
     | 
| 
      
 8 
     | 
    
         
            +
              version: "0.0.7",
         
     | 
| 
      
 9 
     | 
    
         
            +
              type: "source",
         
     | 
| 
      
 10 
     | 
    
         
            +
              hooks: {
         
     | 
| 
      
 11 
     | 
    
         
            +
                ...common.hooks,
         
     | 
| 
      
 12 
     | 
    
         
            +
                async activate() {
         
     | 
| 
      
 13 
     | 
    
         
            +
                  await this.activate({
         
     | 
| 
      
 14 
     | 
    
         
            +
                    changeType: "updated",
         
     | 
| 
      
 15 
     | 
    
         
            +
                    resource: "/me/events",
         
     | 
| 
      
 16 
     | 
    
         
            +
                  });
         
     | 
| 
      
 17 
     | 
    
         
            +
                },
         
     | 
| 
      
 18 
     | 
    
         
            +
                async deactivate() {
         
     | 
| 
      
 19 
     | 
    
         
            +
                  await this.deactivate();
         
     | 
| 
      
 20 
     | 
    
         
            +
                },
         
     | 
| 
      
 21 
     | 
    
         
            +
              },
         
     | 
| 
      
 22 
     | 
    
         
            +
              methods: {
         
     | 
| 
      
 23 
     | 
    
         
            +
                ...common.methods,
         
     | 
| 
      
 24 
     | 
    
         
            +
                async getSampleEvents({ pageSize }) {
         
     | 
| 
      
 25 
     | 
    
         
            +
                  return this.microsoftOutlook.listCalendarEvents({
         
     | 
| 
      
 26 
     | 
    
         
            +
                    params: {
         
     | 
| 
      
 27 
     | 
    
         
            +
                      $top: pageSize,
         
     | 
| 
      
 28 
     | 
    
         
            +
                      $orderby: "lastModifiedDateTime desc",
         
     | 
| 
      
 29 
     | 
    
         
            +
                    },
         
     | 
| 
      
 30 
     | 
    
         
            +
                  });
         
     | 
| 
      
 31 
     | 
    
         
            +
                },
         
     | 
| 
      
 32 
     | 
    
         
            +
                emitEvent(item) {
         
     | 
| 
      
 33 
     | 
    
         
            +
                  this.$emit({
         
     | 
| 
      
 34 
     | 
    
         
            +
                    message: item,
         
     | 
| 
      
 35 
     | 
    
         
            +
                  }, this.generateMeta(item));
         
     | 
| 
      
 36 
     | 
    
         
            +
                },
         
     | 
| 
      
 37 
     | 
    
         
            +
                generateMeta(item) {
         
     | 
| 
      
 38 
     | 
    
         
            +
                  return {
         
     | 
| 
      
 39 
     | 
    
         
            +
                    id: item.id,
         
     | 
| 
      
 40 
     | 
    
         
            +
                    summary: `Calendar event updated (ID:${item.id})`,
         
     | 
| 
      
 41 
     | 
    
         
            +
                    ts: Date.parse(item.createdDateTime),
         
     | 
| 
      
 42 
     | 
    
         
            +
                  };
         
     | 
| 
      
 43 
     | 
    
         
            +
                },
         
     | 
| 
      
 44 
     | 
    
         
            +
              },
         
     | 
| 
      
 45 
     | 
    
         
            +
              async run(event) {
         
     | 
| 
      
 46 
     | 
    
         
            +
                await this.run({
         
     | 
| 
      
 47 
     | 
    
         
            +
                  event,
         
     | 
| 
      
 48 
     | 
    
         
            +
                  emitFn: async ({ resourceId } = {}) => {
         
     | 
| 
      
 49 
     | 
    
         
            +
                    const item = await this.microsoftOutlook.getCalendarEvent({
         
     | 
| 
      
 50 
     | 
    
         
            +
                      eventId: resourceId,
         
     | 
| 
      
 51 
     | 
    
         
            +
                    });
         
     | 
| 
      
 52 
     | 
    
         
            +
                    this.emitEvent(item);
         
     | 
| 
      
 53 
     | 
    
         
            +
                  },
         
     | 
| 
      
 54 
     | 
    
         
            +
                });
         
     | 
| 
      
 55 
     | 
    
         
            +
              },
         
     | 
| 
      
 56 
     | 
    
         
            +
            };
         
     |