Skip to content

Calendar Integration #90

@rallisf1

Description

@rallisf1

How to use GitHub

  • Please use the 👍 reaction to show that you are interested into the same feature.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Feature request

Which Nextcloud Version are you currently using: (see administration page)

Nextcloud Hub 9 (30.0.8)

Is your feature request related to a problem? Please describe.
It would be beneficial to view tickets in the Nextcloud Calendar.

Describe the solution you'd like

Dynamically create calendars

Agent Calendars

  • My Open Tickets
  • My Closed Tickets

Manager Calendars

  • Agent's/Organization's/Group's Open Tickets
  • Agent's/Organization's/Group's Closed Tickets

Configuration Options

Admin

  • NEEDS-ACTION status match: Fetch statuses from zammad in a multiple select
  • COMPLETED status match: Fetch statuses from zammad in a multiple select
  • IN-PROCESS status match: Fetch statuses from zammad in a multiple select
  • CANCELLED status match: Fetch statuses from zammad in a multiple select
  • Ticket Date Field: input for custom ticket object attribute (e.g. we have set up a Due Date)

Show an error if status matching has overlaps

User

Manager Options

[ ] Create Calendars per Agent
[ ] Create Calendars per Group
[ ] Create Calendars per Organization
[ ] Add Accounted Time table in the DESCRIPTION

Calendar Event (fetched & generated)

  • Type: VTODO
  • UID: zammad-ticket-#{ticket.id}
  • STATUS: Switch #{ticket.status} per the status matching in the configuration
  • SUMMARY: #{ticket.title}
  • DESCRIPTION: #{article.body} (latest)
  • CREATED: #{ticket.created_at}
  • LAST-MODIFIED: #{ticket.updated_at}
  • LOCATION: #{config.http_type}://#{config.fqdn}/#ticket/zoom/#{ticket.id} (the correct field would be URL, but Nextcloud only uses LOCATION)
  • DUE: Ticket Date Field OR #{ticket.closed_at} OR #{ticket.updated_at} (VTODO needs a due date in order to show up in the Calendar)
  • ORGANIZER: mailto:#{ticket.owner.email}
  • ATTENDEE: [mailto:#{ticket.customer.email}]
  • PRIORITY: #{ticket.priority.name} (parseInt and switch 1->9, 2->5, 3->1)
  • COMPLETED: #{ticket.closed_at}

I use Zammad Variable formatting #{} to differentiate API response values

Describe alternatives you've considered
Inject a middleware in the Calendar that checks if a subscribed calendar is from the connected Zammad's url. If true add the appropriate Authorization headers with the configured token.

Pros

  • Way less code required

Cons

Additional context
Managers are defined in the Nextcloud Accounts. I'm up for implementing this, but not for another month due to existing deadlines. I just wanted to share my specs first so that we agree on a mergeable version first.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions