nextcloud / nextcloud/integration_zammad

Calendar Integration

Open
#90 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
JavaScript
Stars
27
Forks
4
Avg merge
15d 21h
Merged PRs (30d)
1

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reviewing the existing Zammad integration and Nextcloud Calendar capabilities against the proposed calendars, configuration options, and VTODO fields; confirm the mergeable scope and acceptance criteria before implementing.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.